From 4c5686e82f063d33864747e547767f9147dc7f1d Mon Sep 17 00:00:00 2001 From: Alexandr Date: Fri, 28 Aug 2026 10:17:29 +0300 Subject: [PATCH 1/3] fix(cfs): exclude non-physical relations --- mamonsu/plugins/pgsql/cfs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mamonsu/plugins/pgsql/cfs.py b/mamonsu/plugins/pgsql/cfs.py index 37329f7..6018f83 100644 --- a/mamonsu/plugins/pgsql/cfs.py +++ b/mamonsu/plugins/pgsql/cfs.py @@ -14,6 +14,7 @@ class Cfs(Plugin): } query_cfs_compressed_ratio = """ + WITH cfs_data AS ( SELECT n.nspname || '.' || c.relname AS table_name, cfs_compression_ratio(c.oid::regclass) AS ratio, @@ -22,8 +23,7 @@ class Cfs(Plugin): pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.reltablespace IN (SELECT oid FROM pg_catalog.pg_tablespace WHERE spcoptions::text ~ 'compression') - AND c.relkind IN ('r','v','m','S','f','p','') - AND cfs_compression_ratio(c.oid::regclass) <> 'NaN' + AND c.relkind IN ('r','m','S') -- only relkinds with physical storage UNION ALL @@ -36,7 +36,8 @@ class Cfs(Plugin): LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.reltablespace IN (SELECT oid FROM pg_catalog.pg_tablespace WHERE spcoptions::text ~ 'compression') AND c.relkind = 'i' - AND cfs_compression_ratio(c.oid::regclass) <> 'NaN'; + -- subquery + outer NaN filter prevent planner from calling cfs_compression_ratio() before reltablespace/relkind filters + ) SELECT table_name, ratio, compressed_size FROM cfs_data WHERE ratio <> 'NaN'; """ query_cfs_activity = """ From 62dbf99b4982ce6c2d68608528020547cd40a8a6 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Fri, 28 Aug 2026 11:15:59 +0300 Subject: [PATCH 2/3] fix(cfs): add materialized --- mamonsu/plugins/pgsql/cfs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamonsu/plugins/pgsql/cfs.py b/mamonsu/plugins/pgsql/cfs.py index 6018f83..5c1da99 100644 --- a/mamonsu/plugins/pgsql/cfs.py +++ b/mamonsu/plugins/pgsql/cfs.py @@ -14,7 +14,7 @@ class Cfs(Plugin): } query_cfs_compressed_ratio = """ - WITH cfs_data AS ( + WITH cfs_data AS MATERIALIZED ( SELECT n.nspname || '.' || c.relname AS table_name, cfs_compression_ratio(c.oid::regclass) AS ratio, From e2741e52758b5d274d048da14ceef57903d3b072 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Fri, 28 Aug 2026 13:29:56 +0300 Subject: [PATCH 3/3] fix(cfs): remove 'pg_default' and 'pg_global' --- mamonsu/plugins/pgsql/cfs.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mamonsu/plugins/pgsql/cfs.py b/mamonsu/plugins/pgsql/cfs.py index 5c1da99..302534c 100644 --- a/mamonsu/plugins/pgsql/cfs.py +++ b/mamonsu/plugins/pgsql/cfs.py @@ -22,8 +22,10 @@ class Cfs(Plugin): FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace - WHERE c.reltablespace IN (SELECT oid FROM pg_catalog.pg_tablespace WHERE spcoptions::text ~ 'compression') - AND c.relkind IN ('r','m','S') -- only relkinds with physical storage + WHERE c.reltablespace IN ( + SELECT oid FROM pg_catalog.pg_tablespace + WHERE spcoptions::text ~ 'compression' AND spcname NOT IN ('pg_default', 'pg_global') + ) AND c.relkind IN ('r','m','S') -- only relkinds with physical storage UNION ALL @@ -34,8 +36,10 @@ class Cfs(Plugin): FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace - WHERE c.reltablespace IN (SELECT oid FROM pg_catalog.pg_tablespace WHERE spcoptions::text ~ 'compression') - AND c.relkind = 'i' + WHERE c.reltablespace IN ( + SELECT oid FROM pg_catalog.pg_tablespace + WHERE spcoptions::text ~ 'compression' AND spcname NOT IN ('pg_default', 'pg_global') + ) AND c.relkind = 'i' -- subquery + outer NaN filter prevent planner from calling cfs_compression_ratio() before reltablespace/relkind filters ) SELECT table_name, ratio, compressed_size FROM cfs_data WHERE ratio <> 'NaN'; """