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/optimizer/plan/planner.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/backend/optimizer/plan/planner.c') diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index b73b872b312..ee09673051f 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -1915,7 +1915,7 @@ preprocess_rowmarks(PlannerInfo *root) newrc->rowmarkId = ++(root->glob->lastRowMarkId); /* real tables support REFERENCE, anything else needs COPY */ if (rte->rtekind == RTE_RELATION && - get_rel_relkind(rte->relid) != RELKIND_FOREIGN_TABLE) + rte->relkind != RELKIND_FOREIGN_TABLE) newrc->markType = ROW_MARK_REFERENCE; else newrc->markType = ROW_MARK_COPY; @@ -3078,6 +3078,7 @@ plan_cluster_use_sort(Oid tableOid, Oid indexOid) rte = makeNode(RangeTblEntry); rte->rtekind = RTE_RELATION; rte->relid = tableOid; + rte->relkind = RELKIND_RELATION; rte->inh = false; rte->inFromCl = true; query->rtable = list_make1(rte); -- cgit v1.2.3