Add a relkind field to RangeTblEntry to avoid some syscache lookups.
Tom Lane <tgl@sss.pgh.pa.us>
Add a relkind field to RangeTblEntry to avoid some syscache lookups. The recent additions for FDW support required checking foreign-table-ness in several places in the parse/plan chain. While it's not clear whether that would really result in a noticeable slowdown, it seems best to avoid any performance risk by keeping a copy of the relation's relkind in RangeTblEntry. That might have some other uses later, anyway. Per discussion.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/catalog/dependency.c | modified | +1 −0 |
| src/backend/commands/copy.c | modified | +1 −0 |
| src/backend/nodes/copyfuncs.c | modified | +1 −0 |
| src/backend/nodes/equalfuncs.c | modified | +1 −0 |
| src/backend/nodes/nodeFuncs.c | modified | +0 −2 |
| src/backend/nodes/outfuncs.c | modified | +1 −1 |
| src/backend/nodes/print.c | modified | +2 −6 |
| src/backend/nodes/readfuncs.c | modified | +1 −1 |
| src/backend/optimizer/path/allpaths.c | modified | +35 −32 |
| src/backend/optimizer/plan/planner.c | modified | +2 −1 |
| src/backend/parser/analyze.c | modified | +7 −16 |
| src/backend/parser/parse_relation.c | modified | +2 −0 |
| src/backend/parser/parse_target.c | modified | +0 −2 |
| src/backend/rewrite/rewriteHandler.c | modified | +8 −1 |
| src/backend/utils/adt/ri_triggers.c | modified | +2 −0 |
| src/backend/utils/adt/ruleutils.c | modified | +6 −1 |
| src/include/catalog/catversion.h | modified | +1 −1 |
| src/include/catalog/pg_class.h | modified | +9 −8 |
| src/include/nodes/parsenodes.h | modified | +5 −2 |