mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-21 05:04:32 +08:00
Previously, an ALTER TABLE ADD COLUMN IF NOT EXISTS on a hypertable caused an error if the column already did exist. The reversed problem with DROP COLUMN is also fixed. Resolves issue #42.
34 lines
1.4 KiB
PL/PgSQL
34 lines
1.4 KiB
PL/PgSQL
ALTER TABLE PUBLIC."Hypertable_1" ADD COLUMN temp_f INTEGER NOT NULL DEFAULT 31;
|
|
ALTER TABLE PUBLIC."Hypertable_1" DROP COLUMN temp_c;
|
|
ALTER TABLE PUBLIC."Hypertable_1" DROP COLUMN sensor_4;
|
|
ALTER TABLE PUBLIC."Hypertable_1" ALTER COLUMN humidity SET DEFAULT 100;
|
|
ALTER TABLE PUBLIC."Hypertable_1" ALTER COLUMN sensor_1 DROP DEFAULT;
|
|
ALTER TABLE PUBLIC."Hypertable_1" ALTER COLUMN sensor_2 SET DEFAULT NULL;
|
|
ALTER TABLE PUBLIC."Hypertable_1" ALTER COLUMN sensor_1 SET NOT NULL;
|
|
ALTER TABLE PUBLIC."Hypertable_1" ALTER COLUMN sensor_2 DROP NOT NULL;
|
|
ALTER TABLE PUBLIC."Hypertable_1" RENAME COLUMN sensor_2 TO sensor_2_renamed;
|
|
ALTER TABLE PUBLIC."Hypertable_1" RENAME COLUMN sensor_3 TO sensor_3_renamed;
|
|
DROP INDEX "ind_sensor_1";
|
|
|
|
|
|
CREATE OR REPLACE FUNCTION empty_trigger_func()
|
|
RETURNS TRIGGER LANGUAGE PLPGSQL AS
|
|
$BODY$
|
|
BEGIN
|
|
END
|
|
$BODY$;
|
|
|
|
--expect error cases
|
|
\set ON_ERROR_STOP 0
|
|
ALTER TABLE PUBLIC."Hypertable_1" ALTER COLUMN sensor_2_renamed SET DATA TYPE int;
|
|
ALTER INDEX "ind_humidity" RENAME TO "ind_humdity2";
|
|
CREATE TRIGGER test_trigger BEFORE UPDATE OR DELETE ON PUBLIC."Hypertable_1"
|
|
FOR EACH STATEMENT EXECUTE PROCEDURE empty_trigger_func();
|
|
\set ON_ERROR_STOP 1
|
|
|
|
--create column with same name as previously renamed one
|
|
ALTER TABLE PUBLIC."Hypertable_1" ADD COLUMN sensor_3 BIGINT NOT NULL DEFAULT 131;
|
|
--create column with same name as previously dropped one
|
|
ALTER TABLE PUBLIC."Hypertable_1" ADD COLUMN sensor_4 BIGINT NOT NULL DEFAULT 131;
|
|
|