|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.5 1997/04/10 07:59:09 vadim Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.6 1997/09/04 13:24:01 vadim Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
|
22 | 22 | #include"nodes/parsenodes.h"
|
23 | 23 | #include"nodes/primnodes.h"
|
24 | 24 | #include"nodes/relation.h"
|
| 25 | +#include"parser/parse_query.h" |
25 | 26 |
|
26 | 27 | #include"utils/syscache.h"
|
27 | 28 | #include"utils/builtins.h"/* for namecpy */
|
@@ -1403,8 +1404,27 @@ static RangeTblEntry *
|
1403 | 1404 | _copyRangeTblEntry(RangeTblEntry*from)
|
1404 | 1405 | {
|
1405 | 1406 | RangeTblEntry*newnode=makeNode(RangeTblEntry);
|
1406 |
| - |
1407 |
| -*newnode=*from;/* ??? quick hack, be careful */ |
| 1407 | + |
| 1408 | +memcpy (newnode,from,sizeof (RangeTblEntry)); |
| 1409 | +if (from->relname ) |
| 1410 | +newnode->relname=pstrdup (from->relname); |
| 1411 | +if (from->refname ) |
| 1412 | +newnode->refname=pstrdup (from->refname); |
| 1413 | +if (from->timeRange ) |
| 1414 | + { |
| 1415 | +newnode->timeRange=makeNode (TimeRange); |
| 1416 | +if (from->timeRange->startDate ) |
| 1417 | +newnode->timeRange->startDate=pstrdup (from->timeRange->startDate); |
| 1418 | +else |
| 1419 | +newnode->timeRange->startDate=NULL; |
| 1420 | +if (from->timeRange->endDate ) |
| 1421 | +newnode->timeRange->endDate=pstrdup (from->timeRange->endDate); |
| 1422 | +else |
| 1423 | +newnode->timeRange->endDate=NULL; |
| 1424 | +newnode->timeQual=makeTimeRange (newnode->timeRange->startDate, |
| 1425 | +newnode->timeRange->endDate, |
| 1426 | + ((newnode->timeRange->endDate==NULL) ?0 :1)); |
| 1427 | + } |
1408 | 1428 |
|
1409 | 1429 | returnnewnode;
|
1410 | 1430 | }
|
|