postgresql/src/backend
Tom Lane b541e9accb Refactor parser's generation of Var nodes.
Instead of passing around a pointer to the RangeTblEntry that
provides the desired column, pass a pointer to the associated
ParseNamespaceItem.  The RTE is trivially reachable from the nsitem,
and having the ParseNamespaceItem allows access to additional
information.  As proof of concept for that, add the rangetable index
to ParseNamespaceItem, and use that to get rid of RTERangeTablePosn
searches.

(I have in mind to teach the parser to generate some different
representation for Vars that are nullable by outer joins, and
keeping the necessary information in ParseNamespaceItems seems
like a reasonable approach to that.  But whether that ever
happens or not, this seems like good cleanup.)

Also refactor the code around scanRTEForColumn so that the
"fuzzy match" stuff does not leak out of parse_relation.c.

Discussion: https://postgr.es/m/26144.1576858373@sss.pgh.pa.us
2019-12-26 11:16:42 -05:00
..
access Refactor code dedicated to index vacuuming in vacuumlazy.c 2019-12-26 17:01:23 +09:00
bootstrap Rename files and headers related to index AM 2019-12-25 10:23:39 +09:00
catalog Allow whole-row Vars to be used in partitioning expressions. 2019-12-25 15:44:15 -05:00
commands Allow whole-row Vars to be used in partitioning expressions. 2019-12-25 15:44:15 -05:00
executor Load relcache entries' partitioning data on-demand, not immediately. 2019-12-25 14:43:13 -05:00
foreign Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
jit Refactor attribute mappings used in logical tuple conversion 2019-12-18 16:23:02 +09:00
lib Make StringInfo available to frontend code. 2019-11-05 14:56:40 -08:00
libpq Avoid splitting C string literals with \-newline 2019-12-24 12:44:12 -03:00
main Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
nodes Prevent overly-aggressive collapsing of joins to RTE_RESULT relations. 2019-12-14 13:49:15 -05:00
optimizer Rename files and headers related to index AM 2019-12-25 10:23:39 +09:00
parser Refactor parser's generation of Var nodes. 2019-12-26 11:16:42 -05:00
partitioning Allow whole-row Vars to be used in partitioning expressions. 2019-12-25 15:44:15 -05:00
po Translation updates 2019-06-17 15:30:20 +02:00
port Use only one thread to handle incoming signals on Windows. 2019-12-11 15:09:54 -05:00
postmaster Extend the ProcSignal mechanism to support barriers. 2019-12-19 14:56:20 -05:00
regex Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
replication Fix some comments related to logical repslot advancing 2019-12-26 22:26:09 +09:00
rewrite Rename files and headers related to index AM 2019-12-25 10:23:39 +09:00
snowball Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
statistics Rename files and headers related to index AM 2019-12-25 10:23:39 +09:00
storage Rename files and headers related to index AM 2019-12-25 10:23:39 +09:00
tcop Extend the ProcSignal mechanism to support barriers. 2019-12-19 14:56:20 -05:00
tsearch Fix some OBJS lists in two Makefiles to be ordered alphabetically 2019-12-18 10:42:40 +09:00
utils Allow whole-row Vars to be used in partitioning expressions. 2019-12-25 15:44:15 -05:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
Makefile Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
nls.mk Translation updates 2019-05-20 16:00:53 +02:00