diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 1999-10-07 04:23:24 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 1999-10-07 04:23:24 +0000 |
commit | 3eb1c8227751aecede58e742a13b07127a7e2652 (patch) | |
tree | c2f606088b1536e385811667c7f032552b89afa6 /src/backend/executor/execMain.c | |
parent | 4040fcfa78065882aa16895906ff8398aaaf1c23 (diff) | |
download | postgresql-3eb1c8227751aecede58e742a13b07127a7e2652.tar.gz postgresql-3eb1c8227751aecede58e742a13b07127a7e2652.zip |
Fix planner and rewriter to follow SQL semantics for tables that are
mentioned in FROM but not elsewhere in the query: such tables should be
joined over anyway. Aside from being more standards-compliant, this allows
removal of some very ugly hacks for COUNT(*) processing. Also, allow
HAVING clause without aggregate functions, since SQL does. Clean up
CREATE RULE statement-list syntax the same way Bruce just fixed the
main stmtmulti production.
CAUTION: addition of a field to RangeTblEntry nodes breaks stored rules;
you will have to initdb if you have any rules.
Diffstat (limited to 'src/backend/executor/execMain.c')
-rw-r--r-- | src/backend/executor/execMain.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 0943e4085be..fed4666aeed 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.96 1999/09/29 16:06:02 wieck Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.97 1999/10/07 04:23:01 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1514,8 +1514,7 @@ ExecRelCheck(Relation rel, HeapTuple tuple, EState *estate) rte->relname = nameout(&(rel->rd_rel->relname)); rte->refname = rte->relname; rte->relid = RelationGetRelid(rel); - rte->inh = false; - rte->inFromCl = true; + /* inh, inFromCl, inJoinSet, skipAcl won't be used, leave them zero */ rtlist = lcons(rte, NIL); econtext->ecxt_scantuple = slot; /* scan tuple slot */ econtext->ecxt_innertuple = NULL; /* inner tuple slot */ |