diff options
author | Bruce Momjian <bruce@momjian.us> | 1999-02-09 03:51:42 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1999-02-09 03:51:42 +0000 |
commit | fe35ffe7e01a3607a3542bf1c638e7d4457fc4c9 (patch) | |
tree | 5bbb9d49a4089c493d54edddc1c062a34b2e4581 /src/backend/nodes/copyfuncs.c | |
parent | be948af2e81d44290a15a0b8614fdd209924f698 (diff) |
Major optimizer improvement for joining a large number of tables.
Diffstat (limited to 'src/backend/nodes/copyfuncs.c')
-rw-r--r-- | src/backend/nodes/copyfuncs.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 52ea65abfe1..23f9e424d14 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.63 1999/02/08 04:29:03 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.64 1999/02/09 03:51:12 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1093,25 +1093,26 @@ CopyPathFields(Path *from, Path *newnode) newnode->path_cost = from->path_cost; - newnode->path_order.ordtype = from->path_order.ordtype; - if (from->path_order.ordtype == SORTOP_ORDER) + newnode->path_order = makeNode(PathOrder); + newnode->path_order->ordtype = from->path_order->ordtype; + if (from->path_order->ordtype == SORTOP_ORDER) { int len, i; - Oid *ordering = from->path_order.ord.sortop; + Oid *ordering = from->path_order->ord.sortop; if (ordering) { for (len = 0; ordering[len] != 0; len++) ; - newnode->path_order.ord.sortop = (Oid *) palloc(sizeof(Oid) * (len + 1)); + newnode->path_order->ord.sortop = (Oid *) palloc(sizeof(Oid) * (len + 1)); for (i = 0; i < len; i++) - newnode->path_order.ord.sortop[i] = ordering[i]; - newnode->path_order.ord.sortop[len] = 0; + newnode->path_order->ord.sortop[i] = ordering[i]; + newnode->path_order->ord.sortop[len] = 0; } } else - Node_Copy(from, newnode, path_order.ord.merge); + Node_Copy(from, newnode, path_order->ord.merge); Node_Copy(from, newnode, keys); |