TOAST table created for partitioned tables
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-01-16T10:13:41Z
Lists: pgsql-hackers
Attachments
- v1-0001-Do-not-create-TOAST-table-for-partitioned-tables.patch (text/plain) patch v1-0001
Hi.
I used to think that $subject didn't happen, but it actually does and ends
up consuming a fixed 8192 bytes on the disk.
create table p (a int[]) partition by list (a);
CREATE TABLE
select pg_table_size('p');
pg_table_size
---------------
8192
(1 row)
select pg_relation_size(c1.oid) as p_size,
pg_relation_size(c1.reltoastrelid) as p_toast_heap_size,
pg_relation_size(c2.oid) as p_toast_index_size
from pg_class c1, pg_class c2, pg_index i
where c1.relname = 'p' and
c1.reltoastrelid = i.indrelid and
c2.oid = i.indexrelid;
p_size | p_toast_heap_size | p_toast_index_size
--------+-------------------+--------------------
0 | 0 | 8192
(1 row)
I think we should prevent this, a fix for which is implemented by the
attached patch.
Thanks,
Amit
Commits
-
Avoid creating a TOAST table for a partitioned table.
- 2fe6336e2d48 11.0 landed