Bug(?) in pg_get_ruledef()
От | Zakkr |
---|---|
Тема | Bug(?) in pg_get_ruledef() |
Дата | |
Msg-id | Pine.LNX.3.96.991027123327.6743A-100000@ara.zf.jcu.cz обсуждение исходный текст |
Ответы |
view vs. inheritance hierarchy (was: Bug(?) in pg_get_ruledef())
|
Список | pgsql-hackers |
Hi, I try dump (via pg_dump) my database, but if I write dumped data back to DB, views (as select on ingerit table) not work. The bug is in routine pg_get_ruledef(pg_rewrite.rulename), which _not_ discern between select on standard table and select on inderit table. Select on inherit table is "SELECT * FROM table*", but pg_get_ruledef() return this view definition without asterisk: "SELECT * FROM table". See example: ----------- abil=> create table mother_tab (aaa int); CREATE abil=> create table son () inherits(mother_tab); CREATE abil=> create view v_mother as select * from mother_tab*; CREATE abil=> insert into son values (111); INSERT 4946878 1 abil=> select * from v_mother; aaa --- 111 (1 row) abil=> SELECT pg_get_ruledef(pg_rewrite.rulename) FROM pg_rewrite WHERE rulename ='_RETv_mother'; CREATE RULE "_RETv_mother" AS ON SELECT TO "v_mother" DO INSTEAD SELECT "mother_tab"."aaa" FROM "mother_tab"; (1 row) ^^^^^^^^^^^^ right is "mother_tab*" ----- Is it but? (It is probably fatal bug if somebody backup batabase via pg_dump and views from dump is unavailable.) Karel Z. ------------------------------------------------------------------------------ <zakkr@zf.jcu.cz> http://home.zf.jcu.cz/~zakkr/ Kim Project: http://home.zf.jcu.cz/~zakkr/kim/ (process manager) FTP: ftp://ftp2.zf.jcu.cz/users/zakkr/ (C/ncurses/PgSQL) ------------------------------------------------------------------------------ ...and cathedral dilapidate
В списке pgsql-hackers по дате отправления: