attislocal value changed with dump
| От | elein |
|---|---|
| Тема | attislocal value changed with dump |
| Дата | |
| Msg-id | 20051103175917.GQ26501@varlena.com обсуждение исходный текст |
| Ответы |
Re: attislocal value changed with dump
|
| Список | pgsql-bugs |
The problem is that after a dump and reload of
a table hierarchy there are different values in
pg_attribute.attislocal.
A quick grep shows few references to attislocal.
But I cannot say for sure it is unused since it is
documented. However, I'm looking at a db diff
tool and there it does matter.
This is the setup:
I've got an inheritance hierarchy, answer_values
with a bunch of answer_[type] tables inheriting
from it.
tiny=# \d answer_values
Table "public.answer_values"
Column | Type | Modifiers
--------+---------+-----------------------------------------------------------------
orid | integer | not null
qid | integer | not null
avid | integer | not null default nextval('public.answer_values_avid_seq'::text)
atype | text |
ncols | integer |
Indexes:
"answer_values_pkey" PRIMARY KEY, btree (orid, qid, avid)
tiny=# \d answer_text
Table "public.answer_text"
Column | Type | Modifiers
--------+---------+----------------------------------------------------------
orid | integer | not null
qid | integer | not null
avid | integer | not null default nextval('answer_values_avid_seq'::text)
atype | text |
ncols | integer |
avalue | text |
Indexes:
"answer_text_pk" UNIQUE, btree (avid)
Inherits: answer_values
* In 8.0.4,
* created a clean db (tiny) and loaded the SQL to define the hierarchy.
* pg_dump tiny > tiny.dat
* createdb tiny2
* psql < tiny.dat
After this, looking at the 'avid' attribute in the
pg_attribute table all of tables loaded in the second
db have 't' for attislocal. This is different from
the original definition.
tiny=# select r.relname, attname, attislocal, attinhcount from pg_attribute a join pg_class r ON (a.attrelid = r.oid)
whereattname = 'avid' order by relname;
relname | attname | attislocal | attinhcount
----------------------+---------+------------+-------------
answer_addr | avid | f | 1
answer_addr_pk | avid | t | 0
answer_bool_pk | avid | t | 0
answer_boolean | avid | f | 1
answer_date | avid | f | 1
answer_date_pk | avid | t | 0
answer_date_range | avid | f | 1
answer_dater_pk | avid | t | 0
answer_float | avid | f | 1
answer_flt_pk | avid | t | 0
answer_num_pk | avid | t | 0
answer_numeric | avid | f | 1
answer_numeric_range | avid | f | 1
answer_numr_pk | avid | t | 0
answer_text | avid | f | 1
answer_text_pk | avid | t | 0
answer_values | avid | t | 0
answer_values_pkey | avid | t | 0
av_v | avid | t | 0
(19 rows)
tiny2=# select r.relname, attname, attislocal, attinhcount from pg_attribute a join pg_class r ON (a.attrelid = r.oid)
whereattname = 'avid' order by relname;
relname | attname | attislocal | attinhcount
----------------------+---------+------------+-------------
answer_addr | avid | t | 1
answer_addr_pk | avid | t | 0
answer_bool_pk | avid | t | 0
answer_boolean | avid | t | 1
answer_date | avid | t | 1
answer_date_pk | avid | t | 0
answer_date_range | avid | t | 1
answer_dater_pk | avid | t | 0
answer_float | avid | t | 1
answer_flt_pk | avid | t | 0
answer_num_pk | avid | t | 0
answer_numeric | avid | t | 1
answer_numeric_range | avid | t | 1
answer_numr_pk | avid | t | 0
answer_text | avid | t | 1
answer_text_pk | avid | t | 0
answer_values | avid | t | 0
answer_values_pkey | avid | t | 0
av_v | avid | t | 0
(19 rows)
----- End forwarded message -----
В списке pgsql-bugs по дате отправления: