ALTER TABLE script ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE flow ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE app ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE raw_app ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE schedule ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE http_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE websocket_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE kafka_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE nats_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE mqtt_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE postgres_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE sqs_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE gcp_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE email_trigger ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE resource ADD COLUMN IF NOT EXISTS labels text[];
ALTER TABLE variable ADD COLUMN IF NOT EXISTS labels text[];

CREATE INDEX IF NOT EXISTS idx_script_labels ON script USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_flow_labels ON flow USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_app_labels ON app USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_raw_app_labels ON raw_app USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_schedule_labels ON schedule USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_resource_labels ON resource USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_variable_labels ON variable USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_http_trigger_labels ON http_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_websocket_trigger_labels ON websocket_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_kafka_trigger_labels ON kafka_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_nats_trigger_labels ON nats_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_mqtt_trigger_labels ON mqtt_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_postgres_trigger_labels ON postgres_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_sqs_trigger_labels ON sqs_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_gcp_trigger_labels ON gcp_trigger USING GIN (labels) WHERE labels IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_email_trigger_labels ON email_trigger USING GIN (labels) WHERE labels IS NOT NULL;
