!!!TEST one scalar is normal, other is inline
scalar a = sql"TEXT" @check(_ != "bad");
scalar b = sql"TEXT" @inline @check(_ != "bad");
table Example {
field: a;
other_field: b;
};
!!!UPDATE inline scalar was dropped, and normal is converted to inline
scalar a = sql"TEXT" @inline @check(_ != "good");
table Example {
field: a;
};
!!!UPDATE inline scalar was converted back to normal again
scalar a = sql"TEXT" @check(_ != "average");
table Example {
field: a;
};
!!!RESULT
-- updated: one scalar is normal, other is inline --
CREATE DOMAIN a AS TEXT
CONSTRAINT a_check CHECK (VALUE <> 'bad');
CREATE TABLE examples (
field a NOT NULL
, other_field TEXT NOT NULL
, CONSTRAINT examples_other_field_check CHECK (other_field <> 'bad')
);
-- updated: inline scalar was dropped, and normal is converted to inline --
ALTER TABLE examples
DROP CONSTRAINT examples_other_field_check
, ALTER COLUMN field SET DATA TYPE TEXT
, ADD CONSTRAINT examples_field_check CHECK (field <> 'good')
;
ALTER TABLE examples DROP COLUMN other_field;
DROP DOMAIN a;
-- updated: inline scalar was converted back to normal again --
CREATE DOMAIN a AS TEXT
CONSTRAINT a_check CHECK (VALUE <> 'average');
ALTER TABLE examples
DROP CONSTRAINT examples_field_check
, ALTER COLUMN field SET DATA TYPE a
;
-- updated: cleanup schema changes --
DROP TABLE examples;
DROP DOMAIN a;