mirror of
https://github.com/postgres/postgres.git
synced 2026-01-05 23:38:41 +03:00
Allow pg_set_relation_stats() to set relpages to -1.
While the default value for relpages is 0, if a partitioned table with at least one child has been analyzed, then the partititoned table will have a relpages value of -1. Author: Corey Huinker Discussion: https://postgr.es/m/CADkLM=fajh1Lpcyr_XsMmq-9Z=SGk-u+_Zeac7Pt0RAN3uiVCg@mail.gmail.com
This commit is contained in:
@@ -95,4 +95,29 @@ SELECT
|
||||
pg_catalog.pg_clear_relation_stats(
|
||||
'stats_import.testview'::regclass);
|
||||
|
||||
-- relpages may be -1 for partitioned tables
|
||||
CREATE TABLE stats_import.part_parent ( i integer ) PARTITION BY RANGE(i);
|
||||
CREATE TABLE stats_import.part_child_1
|
||||
PARTITION OF stats_import.part_parent
|
||||
FOR VALUES FROM (0) TO (10);
|
||||
|
||||
ANALYZE stats_import.part_parent;
|
||||
|
||||
SELECT relpages
|
||||
FROM pg_class
|
||||
WHERE oid = 'stats_import.part_parent'::regclass;
|
||||
|
||||
-- although partitioned tables have no storage, setting relpages to a
|
||||
-- positive value is still allowed
|
||||
SELECT
|
||||
pg_catalog.pg_set_relation_stats(
|
||||
relation => 'stats_import.part_parent'::regclass,
|
||||
relpages => 2::integer);
|
||||
|
||||
-- nothing stops us from setting it to -1
|
||||
SELECT
|
||||
pg_catalog.pg_set_relation_stats(
|
||||
relation => 'stats_import.part_parent'::regclass,
|
||||
relpages => -1::integer);
|
||||
|
||||
DROP SCHEMA stats_import CASCADE;
|
||||
|
||||
Reference in New Issue
Block a user