mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Fix handling of inherited check constraints in ALTER COLUMN TYPE.
This case got broken in 8.4 by the addition of an error check that complains if ALTER TABLE ONLY is used on a table that has children. We do use ONLY for this situation, but it's okay because the necessary recursion occurs at a higher level. So we need to have a separate flag to suppress recursion without making the error check. Reported and patched by Pavan Deolasee, with some editorial adjustments by me. Back-patch to 8.4, since this is a regression of functionality that worked in earlier branches.
This commit is contained in:
@ -1239,6 +1239,13 @@ select reltoastrelid <> 0 as has_toast_table
|
||||
from pg_class
|
||||
where oid = 'test_storage'::regclass;
|
||||
|
||||
-- ALTER TYPE with a check constraint and a child table (bug before Nov 2012)
|
||||
CREATE TABLE test_inh_check (a float check (a > 10.2));
|
||||
CREATE TABLE test_inh_check_child() INHERITS(test_inh_check);
|
||||
ALTER TABLE test_inh_check ALTER COLUMN a TYPE numeric;
|
||||
\d test_inh_check
|
||||
\d test_inh_check_child
|
||||
|
||||
--
|
||||
-- lock levels
|
||||
--
|
||||
|
Reference in New Issue
Block a user