BUG #6635: TRUNCATE didn't recreate init fork.

Поиск
Список
Период
Сортировка
От kurosawa-akira@mxc.nes.nec.co.jp
Тема BUG #6635: TRUNCATE didn't recreate init fork.
Дата
Msg-id E1SSLzU-00027m-1w@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #6635: TRUNCATE didn't recreate init fork.
Список 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 по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: BUG #6633: PL/Python build does not honor PYTHON on Mac OS X
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #6634: pg_dump dumps cast after objects depending on it