diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-09-04 13:24:01 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-09-04 13:24:01 +0000 |
commit | 0badb77e73a6182bbc37e2cbb4f192dacb7d8c2a (patch) | |
tree | 44db325f57ed88a1f38399b11a8999da96020679 /src/backend/nodes/copyfuncs.c | |
parent | 78d74e32fbacf87e288b712de8e9c80f441b950b (diff) | |
download | postgresql-0badb77e73a6182bbc37e2cbb4f192dacb7d8c2a.tar.gz postgresql-0badb77e73a6182bbc37e2cbb4f192dacb7d8c2a.zip |
Fixed _copyRangeTblEntry
Diffstat (limited to 'src/backend/nodes/copyfuncs.c')
-rw-r--r-- | src/backend/nodes/copyfuncs.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index c7d53107e6a..e763b9cd7ce 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.5 1997/04/10 07:59:09 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.6 1997/09/04 13:24:01 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -22,6 +22,7 @@ #include "nodes/parsenodes.h" #include "nodes/primnodes.h" #include "nodes/relation.h" +#include "parser/parse_query.h" #include "utils/syscache.h" #include "utils/builtins.h" /* for namecpy */ @@ -1403,8 +1404,27 @@ static RangeTblEntry * _copyRangeTblEntry(RangeTblEntry *from) { RangeTblEntry *newnode = makeNode(RangeTblEntry); - - *newnode = *from; /* ??? quick hack, be careful */ + + memcpy (newnode, from, sizeof (RangeTblEntry)); + if ( from->relname ) + newnode->relname = pstrdup (from->relname); + if ( from->refname ) + newnode->refname = pstrdup (from->refname); + if ( from->timeRange ) + { + newnode->timeRange = makeNode (TimeRange); + if ( from->timeRange->startDate ) + newnode->timeRange->startDate = pstrdup (from->timeRange->startDate); + else + newnode->timeRange->startDate = NULL; + if ( from->timeRange->endDate ) + newnode->timeRange->endDate = pstrdup (from->timeRange->endDate); + else + newnode->timeRange->endDate = NULL; + newnode->timeQual = makeTimeRange (newnode->timeRange->startDate, + newnode->timeRange->endDate, + ((newnode->timeRange->endDate == NULL) ? 0 : 1)); + } return newnode; } |