influxdb/iox_catalog/migrations/20211229171744_initial_sche...

236 lines
6.4 KiB
MySQL
Raw Normal View History

2022-01-11 17:51:56 +00:00
-- Add migration script here
-- iox_shared schema
BEGIN;
CREATE SCHEMA IF NOT EXISTS iox_catalog;
CREATE TABLE IF NOT EXISTS iox_catalog.kafka_topic
2022-01-11 17:51:56 +00:00
(
id INT GENERATED ALWAYS AS IDENTITY,
name VARCHAR NOT NULL,
PRIMARY KEY (id),
CONSTRAINT kafka_topic_name_unique UNIQUE (name)
);
CREATE TABLE IF NOT EXISTS iox_catalog.query_pool
2022-01-11 17:51:56 +00:00
(
id SMALLINT GENERATED ALWAYS AS IDENTITY,
name VARCHAR NOT NULL,
PRIMARY KEY (id),
CONSTRAINT query_pool_name_unique UNIQUE (name)
);
CREATE TABLE IF NOT EXISTS iox_catalog.namespace
2022-01-11 17:51:56 +00:00
(
id INT GENERATED ALWAYS AS IDENTITY,
name VARCHAR NOT NULL,
retention_duration VARCHAR,
kafka_topic_id integer NOT NULL,
query_pool_id SMALLINT NOT NULL,
2022-01-11 17:51:56 +00:00
PRIMARY KEY (id),
CONSTRAINT namespace_name_unique UNIQUE (name)
);
CREATE TABLE IF NOT EXISTS iox_catalog.table_name
2022-01-11 17:51:56 +00:00
(
id INT GENERATED ALWAYS AS IDENTITY,
namespace_id integer NOT NULL,
name VARCHAR NOT NULL,
PRIMARY KEY (id),
CONSTRAINT table_name_unique UNIQUE (namespace_id, name)
);
CREATE TABLE IF NOT EXISTS iox_catalog.column_name
2022-01-11 17:51:56 +00:00
(
id INT GENERATED ALWAYS AS IDENTITY,
table_id INT NOT NULL,
name VARCHAR NOT NULL,
column_type SMALLINT NOT NULL,
2022-01-11 17:51:56 +00:00
PRIMARY KEY (id),
CONSTRAINT column_name_unique UNIQUE (table_id, name)
);
CREATE TABLE IF NOT EXISTS iox_catalog.sequencer
2022-01-11 17:51:56 +00:00
(
id SMALLINT GENERATED ALWAYS AS IDENTITY,
kafka_topic_id INT NOT NULL,
kafka_partition INT NOT NULL,
min_unpersisted_sequence_number BIGINT,
PRIMARY KEY (id),
CONSTRAINT sequencer_unique UNIQUE (kafka_topic_id, kafka_partition)
2022-01-11 17:51:56 +00:00
);
CREATE TABLE IF NOT EXISTS iox_catalog.sharding_rule_override
2022-01-11 17:51:56 +00:00
(
id INT GENERATED ALWAYS AS IDENTITY,
namespace_id INT NOT NULL,
table_id INT NOT NULL,
column_id INT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS iox_catalog.partition
2022-01-11 17:51:56 +00:00
(
id BIGINT GENERATED ALWAYS AS IDENTITY,
2022-01-11 17:51:56 +00:00
sequencer_id SMALLINT NOT NULL,
table_id INT NOT NULL,
partition_key VARCHAR NOT NULL,
PRIMARY KEY (id),
CONSTRAINT partition_key_unique UNIQUE (table_id, partition_key)
);
CREATE TABLE IF NOT EXISTS iox_catalog.parquet_file
2022-01-11 17:51:56 +00:00
(
id BIGINT GENERATED ALWAYS AS IDENTITY,
sequencer_id SMALLINT NOT NULL,
table_id INT NOT NULL,
partition_id INT NOT NULL,
file_location VARCHAR NOT NULL,
min_sequence_number BIGINT,
max_sequence_number BIGINT,
min_time BIGINT,
max_time BIGINT,
2022-01-11 17:51:56 +00:00
to_delete BOOLEAN,
PRIMARY KEY (id),
CONSTRAINT parquet_location_unique UNIQUE (file_location)
);
CREATE TABLE IF NOT EXISTS iox_catalog.tombstone
2022-01-11 17:51:56 +00:00
(
id BIGINT GENERATED ALWAYS AS IDENTITY,
2022-01-11 17:51:56 +00:00
table_id INT NOT NULL,
sequencer_id SMALLINT NOT NULL,
sequence_number BIGINT NOT NULL,
min_time BIGINT NOT NULL,
max_time BIGINT NOT NULL,
2022-01-11 17:51:56 +00:00
serialized_predicate TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS iox_catalog.processed_tombstone
2022-01-11 17:51:56 +00:00
(
tombstone_id BIGINT NOT NULL,
2022-01-11 17:51:56 +00:00
parquet_file_id BIGINT NOT NULL,
PRIMARY KEY (tombstone_id, parquet_file_id)
2022-01-11 17:51:56 +00:00
);
ALTER TABLE IF EXISTS iox_catalog.namespace
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (kafka_topic_id)
REFERENCES iox_catalog.kafka_topic (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.namespace
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (query_pool_id)
REFERENCES iox_catalog.query_pool (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.table_name
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (namespace_id)
REFERENCES iox_catalog.namespace (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.column_name
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (table_id)
REFERENCES iox_catalog.table_name (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.sequencer
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (kafka_topic_id)
REFERENCES iox_catalog.kafka_topic (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.sharding_rule_override
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (namespace_id)
REFERENCES iox_catalog.namespace (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.sharding_rule_override
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (table_id)
REFERENCES iox_catalog.table_name (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.sharding_rule_override
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (column_id)
REFERENCES iox_catalog.column_name (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.partition
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (sequencer_id)
REFERENCES iox_catalog.sequencer (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.partition
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (table_id)
REFERENCES iox_catalog.table_name (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.parquet_file
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (sequencer_id)
REFERENCES iox_catalog.sequencer (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.parquet_file
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (table_id)
REFERENCES iox_catalog.table_name (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.parquet_file
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (partition_id)
REFERENCES iox_catalog.partition (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.tombstone
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (sequencer_id)
REFERENCES iox_catalog.sequencer (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.tombstone
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (table_id)
REFERENCES iox_catalog.table_name (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.processed_tombstone
ADD FOREIGN KEY (tombstone_id)
REFERENCES iox_catalog.tombstone (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
ALTER TABLE IF EXISTS iox_catalog.processed_tombstone
2022-01-11 17:51:56 +00:00
ADD FOREIGN KEY (parquet_file_id)
REFERENCES iox_catalog.parquet_file (id) MATCH SIMPLE
2022-01-11 17:51:56 +00:00
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID;
END;