mirror of https://github.com/citusdata/citus.git
27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
-- columnar--10.2-2--10.2-3.sql
|
|
|
|
-- Since stripe_first_row_number_idx is required to scan a columnar table, we
|
|
-- need to make sure that it is created before doing anything with columnar
|
|
-- tables during pg upgrades.
|
|
--
|
|
-- However, a plain btree index is not a dependency of a table, so pg_upgrade
|
|
-- cannot guarantee that stripe_first_row_number_idx gets created when
|
|
-- creating columnar.stripe, unless we make it a unique "constraint".
|
|
--
|
|
-- To do that, drop stripe_first_row_number_idx and create a unique
|
|
-- constraint with the same name to keep the code change at minimum.
|
|
--
|
|
-- If we have a pg_depend entry for this index, we can not drop it as
|
|
-- the extension depends on it. Remove the pg_depend entry if it exists.
|
|
DELETE FROM pg_depend
|
|
WHERE classid = 'pg_am'::regclass::oid
|
|
AND objid IN (select oid from pg_am where amname = 'columnar')
|
|
AND objsubid = 0
|
|
AND refclassid = 'pg_class'::regclass::oid
|
|
AND refobjid = 'columnar.stripe_first_row_number_idx'::regclass::oid
|
|
AND refobjsubid = 0
|
|
AND deptype = 'n';
|
|
DROP INDEX columnar.stripe_first_row_number_idx;
|
|
ALTER TABLE columnar.stripe ADD CONSTRAINT stripe_first_row_number_idx
|
|
UNIQUE (storage_id, first_row_number);
|