mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-22 22:11:29 +08:00
DROP EXTENSION didn't properly reset caches and other saved state causing various errors related to bad state when the extension was dropped and/or recreated later. This patch adds functionality to track the state of the extension and also signals DROP EXTENSION to other backends that might be running, allowing them to reset their internal extension state.
42 lines
1.1 KiB
SQL
42 lines
1.1 KiB
SQL
\set ON_ERROR_STOP 1
|
|
\set VERBOSITY verbose
|
|
\set SHOW_CONTEXT never
|
|
|
|
\o /dev/null
|
|
\ir include/create_single_db.sql
|
|
\o
|
|
\set ECHO ALL
|
|
|
|
\c single
|
|
|
|
CREATE TABLE drop_test(time timestamp, temp float8, device text);
|
|
|
|
SELECT create_hypertable('drop_test', 'time', 'device', 2);
|
|
SELECT * FROM _timescaledb_catalog.hypertable;
|
|
INSERT INTO drop_test VALUES('Mon Mar 20 09:17:00.936242 2017', 23.4, 'dev1');
|
|
SELECT * FROM drop_test;
|
|
|
|
-- Drop the extension
|
|
DROP EXTENSION timescaledb CASCADE;
|
|
|
|
-- Querying the original table should not return any rows since all of
|
|
-- them actually existed in chunks that are now gone
|
|
SELECT * FROM drop_test;
|
|
|
|
-- Recreate the extension
|
|
CREATE EXTENSION timescaledb CASCADE;
|
|
|
|
-- Test that calling twice generates proper error
|
|
\set ON_ERROR_STOP 0
|
|
CREATE EXTENSION timescaledb CASCADE;
|
|
\set ON_ERROR_STOP 1
|
|
|
|
SELECT setup_timescaledb();
|
|
|
|
-- Make the table a hypertable again
|
|
SELECT create_hypertable('drop_test', 'time', 'device', 2);
|
|
|
|
SELECT * FROM _timescaledb_catalog.hypertable;
|
|
INSERT INTO drop_test VALUES('Mon Mar 20 09:18:19.100462 2017', 22.1, 'dev1');
|
|
SELECT * FROM drop_test;
|