|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.98 1999/12/13 01:26:53 tgl Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.99 2000/01/09 00:26:22 tgl Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -75,9 +75,9 @@ static void
|
75 | 75 | CopyPlanFields(Plan *from, Plan *newnode)
|
76 | 76 | {
|
77 | 77 | newnode->cost = from->cost;
|
78 |
| - newnode->plan_size = from->plan_size; |
| 78 | + newnode->plan_rows = from->plan_rows; |
79 | 79 | newnode->plan_width = from->plan_width;
|
80 |
| - newnode->plan_tupperpage = from->plan_tupperpage; |
| 80 | + /* state is NOT copied */ |
81 | 81 | newnode->targetlist = copyObject(from->targetlist);
|
82 | 82 | newnode->qual = copyObject(from->qual);
|
83 | 83 | newnode->lefttree = copyObject(from->lefttree);
|
@@ -962,25 +962,44 @@ static RelOptInfo *
|
962 | 962 | _copyRelOptInfo(RelOptInfo *from)
|
963 | 963 | {
|
964 | 964 | RelOptInfo *newnode = makeNode(RelOptInfo);
|
965 |
| - int i, |
966 |
| - len; |
967 | 965 |
|
968 |
| - /* ---------------- |
969 |
| - * copy remainder of node |
970 |
| - * ---------------- |
971 |
| - */ |
972 | 966 | newnode->relids = listCopy(from->relids);
|
973 | 967 |
|
974 |
| - newnode->indexed = from->indexed; |
975 |
| - newnode->pages = from->pages; |
976 |
| - newnode->tuples = from->tuples; |
977 |
| - newnode->size = from->size; |
| 968 | + newnode->rows = from->rows; |
978 | 969 | newnode->width = from->width;
|
| 970 | + |
979 | 971 | Node_Copy(from, newnode, targetlist);
|
980 | 972 | Node_Copy(from, newnode, pathlist);
|
| 973 | + /* XXX cheapestpath should point to a member of pathlist? */ |
981 | 974 | Node_Copy(from, newnode, cheapestpath);
|
982 | 975 | newnode->pruneable = from->pruneable;
|
983 | 976 |
|
| 977 | + newnode->indexed = from->indexed; |
| 978 | + newnode->pages = from->pages; |
| 979 | + newnode->tuples = from->tuples; |
| 980 | + |
| 981 | + Node_Copy(from, newnode, restrictinfo); |
| 982 | + Node_Copy(from, newnode, joininfo); |
| 983 | + Node_Copy(from, newnode, innerjoin); |
| 984 | + |
| 985 | + return newnode; |
| 986 | +} |
| 987 | + |
| 988 | +/* ---------------- |
| 989 | + * _copyIndexOptInfo |
| 990 | + * ---------------- |
| 991 | + */ |
| 992 | +static IndexOptInfo * |
| 993 | +_copyIndexOptInfo(IndexOptInfo *from) |
| 994 | +{ |
| 995 | + IndexOptInfo *newnode = makeNode(IndexOptInfo); |
| 996 | + int i, |
| 997 | + len; |
| 998 | + |
| 999 | + newnode->indexoid = from->indexoid; |
| 1000 | + newnode->pages = from->pages; |
| 1001 | + newnode->tuples = from->tuples; |
| 1002 | + |
984 | 1003 | if (from->classlist)
|
985 | 1004 | {
|
986 | 1005 | for (len = 0; from->classlist[len] != 0; len++)
|
@@ -1015,10 +1034,6 @@ _copyRelOptInfo(RelOptInfo *from)
|
1015 | 1034 | newnode->indproc = from->indproc;
|
1016 | 1035 | Node_Copy(from, newnode, indpred);
|
1017 | 1036 |
|
1018 |
| - Node_Copy(from, newnode, restrictinfo); |
1019 |
| - Node_Copy(from, newnode, joininfo); |
1020 |
| - Node_Copy(from, newnode, innerjoin); |
1021 |
| - |
1022 | 1037 | return newnode;
|
1023 | 1038 | }
|
1024 | 1039 |
|
@@ -1120,7 +1135,6 @@ _copyTidPath(TidPath *from)
|
1120 | 1135 | static void
|
1121 | 1136 | CopyJoinPathFields(JoinPath *from, JoinPath *newnode)
|
1122 | 1137 | {
|
1123 |
| - Node_Copy(from, newnode, pathinfo); |
1124 | 1138 | Node_Copy(from, newnode, outerjoinpath);
|
1125 | 1139 | Node_Copy(from, newnode, innerjoinpath);
|
1126 | 1140 | }
|
@@ -1229,7 +1243,6 @@ _copyRestrictInfo(RestrictInfo *from)
|
1229 | 1243 | * ----------------
|
1230 | 1244 | */
|
1231 | 1245 | Node_Copy(from, newnode, clause);
|
1232 |
| - newnode->selectivity = from->selectivity; |
1233 | 1246 | Node_Copy(from, newnode, subclauseindices);
|
1234 | 1247 | newnode->mergejoinoperator = from->mergejoinoperator;
|
1235 | 1248 | newnode->left_sortop = from->left_sortop;
|
@@ -1617,6 +1630,9 @@ copyObject(void *from)
|
1617 | 1630 | case T_Stream:
|
1618 | 1631 | retval = _copyStream(from);
|
1619 | 1632 | break;
|
| 1633 | + case T_IndexOptInfo: |
| 1634 | + retval = _copyIndexOptInfo(from); |
| 1635 | + break; |
1620 | 1636 |
|
1621 | 1637 | /*
|
1622 | 1638 | * PARSE NODES
|
|
0 commit comments