summaryrefslogtreecommitdiff
path: root/src/include/optimizer
diff options
context:
space:
mode:
authorAndres Freund2019-03-30 23:40:33 +0000
committerAndres Freund2019-03-31 02:26:36 +0000
commit696d78469f3714a8159f7a145af1fe9179fe3291 (patch)
treed8fe6c5543a3b388d80e1ee087bd15035542ccff /src/include/optimizer
parent737a292b5de296615a715ddce2b2d83d1ee245c5 (diff)
tableam: Move heap specific logic from estimate_rel_size below tableam.
This just moves the table/matview[/toast] determination of relation size to a callback, and uses a copy of the existing logic to implement that callback for heap. It probably would make sense to also move the index specific logic into a callback, so the metapage handling (and probably more) can be index specific. But that's a separate task. Author: Andres Freund Discussion: https://postgr.es/m/20180703070645.wchpu5muyto5n647@alap3.anarazel.de
Diffstat (limited to 'src/include/optimizer')
-rw-r--r--src/include/optimizer/plancat.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/include/optimizer/plancat.h b/src/include/optimizer/plancat.h
index c556e0f2589..3254613e6e4 100644
--- a/src/include/optimizer/plancat.h
+++ b/src/include/optimizer/plancat.h
@@ -33,6 +33,7 @@ extern List *infer_arbiter_indexes(PlannerInfo *root);
extern void estimate_rel_size(Relation rel, int32 *attr_widths,
BlockNumber *pages, double *tuples, double *allvisfrac);
+extern int32 get_rel_data_width(Relation rel, int32 *attr_widths);
extern int32 get_relation_data_width(Oid relid, int32 *attr_widths);
extern bool relation_excluded_by_constraints(PlannerInfo *root,