From c303f0f135e95080eae31480d4881d6fa1b9c742 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Fri, 18 Sep 2020 12:06:58 -0700 Subject: [PATCH] improve rel size estimate --- cstore_tableam.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cstore_tableam.c b/cstore_tableam.c index aa92f48cf..5849fb5ed 100644 --- a/cstore_tableam.c +++ b/cstore_tableam.c @@ -549,11 +549,17 @@ cstore_estimate_rel_size(Relation rel, int32 *attr_widths, BlockNumber *pages, double *tuples, double *allvisfrac) { - /* TODO */ - *attr_widths = 12; - *tuples = 100; - *pages = 10; + RelationOpenSmgr(rel); + *pages = smgrnblocks(rel->rd_smgr, MAIN_FORKNUM); + *tuples = CStoreTableRowCount(rel); + + /* + * Append-only, so everything is visible except in-progress or rolled-back + * transactions. + */ *allvisfrac = 1.0; + + get_rel_data_width(rel, attr_widths); }