diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-06-05 00:38:11 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-06-05 00:38:11 +0000 |
commit | a4996a895399a4b0363c7dace71fc6ce8acbc196 (patch) | |
tree | 9fe26cb35badc6a7b0c86a9db1eaf2e7ca95b142 /src/include/nodes/parsenodes.h | |
parent | efe0d0808b055fb2f651dd3732bd770290eb2659 (diff) |
Replace the parser's namespace tree (which formerly had the same
representation as the jointree) with two lists of RTEs, one showing
the RTEs accessible by qualified names, and the other showing the RTEs
accessible by unqualified names. I think this is conceptually simpler
than what we did before, and it's sure a whole lot easier to search.
This seems to eliminate the parse-time bottleneck for deeply nested
JOIN structures that was exhibited by phil@vodafone.
Diffstat (limited to 'src/include/nodes/parsenodes.h')
-rw-r--r-- | src/include/nodes/parsenodes.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 1208def12ce..9a525eb1de0 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.279 2005/06/03 23:05:29 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.280 2005/06/05 00:38:10 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -479,10 +479,10 @@ typedef struct DefElem * FROM clause, but POSTQUEL allows you to refer to tables not listed, * in which case a range table entry will be generated. We still support * this POSTQUEL feature, although there is some doubt whether it's - * convenient or merely confusing. The flag is needed since an - * implicitly-added RTE shouldn't change the namespace for unqualified - * column names processed later, and it also shouldn't affect the - * expansion of '*'. + * convenient or merely confusing. The flag is not actually needed + * anymore during parsing, since the parser uses a separate "namespace" + * data structure to control visibility, but it is needed by ruleutils.c + * to determine whether RTEs should be included in decompiled queries. * * requiredPerms and checkAsUser specify run-time access permissions * checks to be performed at query startup. The user must have *all* @@ -552,7 +552,7 @@ typedef struct RangeTblEntry Alias *alias; /* user-written alias clause, if any */ Alias *eref; /* expanded reference names */ bool inh; /* inheritance requested? */ - bool inFromCl; /* present in FROM clause */ + bool inFromCl; /* present in FROM clause? */ AclMode requiredPerms; /* bitmask of required access permissions */ AclId checkAsUser; /* if not zero, check access as this user */ } RangeTblEntry; |