From bdca82f44d0e0168dece56cbd53b54ba142f328f Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 22 Feb 2011 19:23:23 -0500 Subject: 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. --- src/backend/parser/parse_relation.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/backend/parser/parse_relation.c') diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c index 497c726f314..033ed411fde 100644 --- a/src/backend/parser/parse_relation.c +++ b/src/backend/parser/parse_relation.c @@ -894,6 +894,7 @@ addRangeTableEntry(ParseState *pstate, lockmode = isLockedRefname(pstate, refname) ? RowShareLock : AccessShareLock; rel = parserOpenTable(pstate, relation, lockmode); rte->relid = RelationGetRelid(rel); + rte->relkind = rel->rd_rel->relkind; /* * Build the list of effective column names using user-supplied aliases @@ -956,6 +957,7 @@ addRangeTableEntryForRelation(ParseState *pstate, rte->rtekind = RTE_RELATION; rte->alias = alias; rte->relid = RelationGetRelid(rel); + rte->relkind = rel->rd_rel->relkind; /* * Build the list of effective column names using user-supplied aliases -- cgit v1.2.3