[SQL] TRUNCATE TABLE corrupts pg_class.relfilenode = pg_attrdef.pg_attrdef

Поиск
Список
Период
Сортировка
От Sebastien FLAESCH
Тема [SQL] TRUNCATE TABLE corrupts pg_class.relfilenode = pg_attrdef.pg_attrdef
Дата
Msg-id 66def74b-633e-65a0-cf44-4d486f15ebd9@4js.com
обсуждение исходный текст
Ответы Re: [SQL] TRUNCATE TABLE corrupts pg_class.relfilenode =pg_attrdef.pg_attrdef  (Sebastien FLAESCH <sf@4js.com>)
Re: [SQL] TRUNCATE TABLE corrupts pg_class.relfilenode =pg_attrdef.pg_attrdef  (Sebastien FLAESCH <sf@4js.com>)
Re: [SQL] TRUNCATE TABLE corrupts pg_class.relfilenode = pg_attrdef.pg_attrdef  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-sql
Hi all,

Testing with Postgresql 9.6rc1 (but also detected with prior versions):

It is normal that a TRUNCATE TABLE statement changes the table/sequence relation in pg_attrdef?

test1=> create table mytab ( pkey serial, name varchar(10) );
test1=> select a.adsrc from pg_class p join pg_attrdef a on (p.relfilenode = a.adrelid) where lower(p.relname) =
lower('mytab');               adsrc
 
------------------------------------- nextval('mytab_pkey_seq'::regclass)
(1 row)

test1=> truncate table mytab;
TRUNCATE TABLE
test1=> select a.adsrc from pg_class p join pg_attrdef a on (p.relfilenode = a.adrelid) where lower(p.relname) =
lower('mytab');adsrc
 
-------
(0 rows)

test1=> select adrelid, adsrc from pg_attrdef where adsrc like '%mytab%'; adrelid |                adsrc
---------+------------------------------------- 6904163 | nextval('mytab_pkey_seq'::regclass)
(1 row)


Are we mis-using the condition (p.relfilenode = a.adrelid) in the first SELECT?

How can we easily check if a table is defined with a SERIAL type?

Thanks!
Seb



В списке pgsql-sql по дате отправления:

Предыдущее
От: Thomas Kellerer
Дата:
Сообщение: Re: [SQL] SQL conversion help
Следующее
От: Sebastien FLAESCH
Дата:
Сообщение: Re: [SQL] TRUNCATE TABLE corrupts pg_class.relfilenode =pg_attrdef.pg_attrdef