fakepages.patch
text/x-patch
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/access/table/tableam.c | 3 | 2 |
| src/backend/utils/misc/guc.c | 11 | 0 |
| src/include/access/tableam.h | 2 | 0 |
diff --git a/src/backend/access/table/tableam.c b/src/backend/access/table/tableam.c
index c814733b22..d9ca9904e1 100644
--- a/src/backend/access/table/tableam.c
+++ b/src/backend/access/table/tableam.c
@@ -33,6 +33,7 @@
/* GUC variables */
char *default_table_access_method = DEFAULT_TABLE_ACCESS_METHOD;
bool synchronize_seqscans = true;
+int fake_pages = 10;
/* ----------------------------------------------------------------------------
@@ -591,10 +592,10 @@ table_block_relation_estimate_size(Relation rel, int32 *attr_widths,
* Totally empty parent tables are quite common, so we should be willing
* to believe that they are empty.
*/
- if (curpages < 10 &&
+ if (curpages < fake_pages &&
relpages == 0 &&
!rel->rd_rel->relhassubclass)
- curpages = 10;
+ curpages = fake_pages;
/* report estimated # pages */
*pages = curpages;
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 11b3f050bc..6954274c28 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2195,6 +2195,17 @@ static struct config_int ConfigureNamesInt[] =
NULL, NULL, NULL
},
+ {
+ {"fake_pages", PGC_USERSET, QUERY_TUNING_OTHER,
+ gettext_noop("Sets a number of pages for planner when relation has no pages."),
+ NULL,
+ GUC_UNIT_BLOCKS
+ },
+ &fake_pages,
+ 10, 0, INT_MAX,
+ NULL, NULL, NULL
+ },
+
{
{"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h
index eb18739c36..f997f9dbc4 100644
--- a/src/include/access/tableam.h
+++ b/src/include/access/tableam.h
@@ -30,6 +30,8 @@
extern char *default_table_access_method;
extern bool synchronize_seqscans;
+extern int fake_pages;
+
struct BulkInsertStateData;
struct IndexInfo;