diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 1999-08-18 04:15:16 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 1999-08-18 04:15:16 +0000 |
| commit | abee4c299fa18e3b2b8ed1e8b236f3d1f44fc58b (patch) | |
| tree | 47e9d9ffb3e7e193c518fc2c92c55aedcf603d63 /src/backend/optimizer/plan/createplan.c | |
| parent | 6defe4949e7cb6c8bf19edf042e27c262c2eed8d (diff) | |
| download | postgresql-abee4c299fa18e3b2b8ed1e8b236f3d1f44fc58b.tar.gz | |
Remove extraneous SeqScan node that make_noname was inserting
above a Sort or Materialize node. As far as I can tell, the only place
that actually needed that was set_tlist_references, which was being lazy
about checking to see if it had a noname node to fix or not...
Diffstat (limited to 'src/backend/optimizer/plan/createplan.c')
| -rw-r--r-- | src/backend/optimizer/plan/createplan.c | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index 3310bf5f92..40923fe27d 100644 --- a/src/backend/optimizer/plan/createplan.c +++ b/src/backend/optimizer/plan/createplan.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.72 1999/08/16 23:07:20 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.73 1999/08/18 04:15:16 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -895,9 +895,7 @@ copy_costsize(Plan *dest, Plan *src) /* * make_noname - * Create plan nodes to sort or materialize relations into noname. The - * result returned for a sort will look like (SEQSCAN(SORT(plan_node))) - * or (SEQSCAN(MATERIAL(plan_node))) + * Create plan node to sort or materialize relations into noname. * * 'tlist' is the target list of the scan to be sorted or materialized * 'pathkeys' is the list of pathkeys by which the result is to be sorted @@ -911,8 +909,7 @@ make_noname(List *tlist, { List *noname_tlist; int numsortkeys; - Plan *tmpplan; - Noname *retval; + Plan *retval; /* Create a new target list for the noname, with sort keys set. */ noname_tlist = new_unsorted_tlist(tlist); @@ -921,27 +918,21 @@ make_noname(List *tlist, if (numsortkeys > 0) { /* need to sort */ - tmpplan = (Plan *) make_sort(noname_tlist, - _NONAME_RELATION_ID_, - plan_node, - numsortkeys); + retval = (Plan *) make_sort(noname_tlist, + _NONAME_RELATION_ID_, + plan_node, + numsortkeys); } else { /* no sort */ - tmpplan = (Plan *) make_material(noname_tlist, - _NONAME_RELATION_ID_, - plan_node, - 0); + retval = (Plan *) make_material(noname_tlist, + _NONAME_RELATION_ID_, + plan_node, + 0); } - /* Return a seqscan using the original tlist */ - retval = (Noname *) make_seqscan(tlist, - NIL, - _NONAME_RELATION_ID_, - tmpplan); - - return retval; + return (Noname *) retval; } |
