BUG #6635: TRUNCATE didn't recreate init fork. - Mailing list pgsql-bugs
From | kurosawa-akira@mxc.nes.nec.co.jp |
---|---|
Subject | BUG #6635: TRUNCATE didn't recreate init fork. |
Date | |
Msg-id | E1SSLzU-00027m-1w@wrigleys.postgresql.org Whole thread Raw |
Responses |
Re: BUG #6635: TRUNCATE didn't recreate init fork.
(Robert Haas <robertmhaas@gmail.com>)
|
List | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 6635 Logged by: Akira Kurosawa Email address: kurosawa-akira@mxc.nes.nec.co.jp PostgreSQL version: 9.1.3 Operating system: Red Hat Enterprise Linux 5.5 Description:=20=20=20=20=20=20=20=20 When I executed TRUNCATE command to unlogged table, init fork of new relfilenode (include toast) wasn't created. It seems that ExecuteTruncate doesn't check relpersistence of table. (Index is OK.) Please see the following sample. [1] CREATE UNLOGGED TABLE [1-1] Oid and Relfilenode testdb=3D# CREATE UNLOGGED TABLE unlogged_table (c1 TEXT PRIMARY KEY); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "unlogged_table_pkey" for table "unlogged_table" CREATE TABLE testdb=3D# SELECT relname, oid, relfilenode FROM pg_class WHERE relname like 'unlogged%'; relname | oid | relfilenode ---------------------+-------+------------- unlogged_table | 49808 | 49808 unlogged_table_pkey | 49814 | 49814 (2 rows) testdb=3D# SELECT relname, oid, relfilenode FROM pg_class WHERE relname like 'pg_toast_49808%'; relname | oid | relfilenode ----------------------+-------+------------- pg_toast_49808 | 49811 | 49811 pg_toast_49808_index | 49813 | 49813 (2 rows) [1-2] Database Files -rw------- 1 postgres postgres 0 May 10 11:31 49808 -- table -rw------- 1 postgres postgres 0 May 10 11:31 49808_init -rw------- 1 postgres postgres 0 May 10 11:31 49811 -- toast table -rw------- 1 postgres postgres 0 May 10 11:31 49811_init -rw------- 1 postgres postgres 8192 May 10 11:31 49813 -- toast index -rw------- 1 postgres postgres 8192 May 10 11:31 49813_init -rw------- 1 postgres postgres 8192 May 10 11:31 49814 -- primary key -rw------- 1 postgres postgres 8192 May 10 11:31 49814_init [2] TRUNCATE [2-1] Oid and Relfilenode testdb=3D# TRUNCATE unlogged_table; TRUNCATE TABLE testdb=3D# SELECT relname, oid, relfilenode FROM pg_class WHERE relname like 'unlogged%'; relname | oid | relfilenode ---------------------+-------+------------- unlogged_table | 49808 | 49816 unlogged_table_pkey | 49814 | 49818 (2 rows) testdb=3D# SELECT relname, oid, relfilenode FROM pg_class WHERE relname like 'pg_toast_49808%'; relname | oid | relfilenode ----------------------+-------+------------- pg_toast_49808 | 49811 | 49817 pg_toast_49808_index | 49813 | 49819 (2 rows) [2-2] Database Files -rw------- 1 postgres postgres 0 May 10 11:41 49816 -- table -rw------- 1 postgres postgres 0 May 10 11:41 49817 -- toast table -rw------- 1 postgres postgres 8192 May 10 11:41 49818 -- primary key -rw------- 1 postgres postgres 8192 May 10 11:41 49818_init -rw------- 1 postgres postgres 8192 May 10 11:41 49819 -- toast index -rw------- 1 postgres postgres 8192 May 10 11:41 49819_init
pgsql-bugs by date: