mirror of https://github.com/pressly/goose.git
45 lines
1.2 KiB
SQL
45 lines
1.2 KiB
SQL
-- +goose Up
|
|
-- +goose StatementBegin
|
|
CREATE TABLE IF NOT EXISTS testing.dim_test_scd
|
|
(
|
|
test_key BIGINT NOT NULL,
|
|
test_id UUID NOT NULL,
|
|
valid_from DATE NOT NULL,
|
|
valid_to DATE NOT NULL,
|
|
is_current BOOLEAN NOT NULL
|
|
DEFAULT (valid_to = '9999/12/31'),
|
|
external_id VARCHAR(100)
|
|
) UNSEGMENTED ALL NODES;
|
|
-- +goose StatementEnd
|
|
-- +goose StatementBegin
|
|
CREATE PROJECTION IF NOT EXISTS testing.dim_test_scd_proj_is_current AS
|
|
SELECT test_key,
|
|
test_id,
|
|
valid_from,
|
|
valid_to,
|
|
is_current,
|
|
external_id
|
|
FROM testing.dim_test_scd
|
|
ORDER BY is_current, test_id
|
|
SEGMENTED BY HASH(test_key) ALL NODES;
|
|
-- +goose StatementEnd
|
|
-- +goose StatementBegin
|
|
CREATE OR REPLACE VIEW testing.Test AS
|
|
SELECT test_key,
|
|
test_id,
|
|
external_id
|
|
FROM testing.dim_test_scd
|
|
WHERE is_current = true;
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
DROP VIEW IF EXISTS testing.Test;
|
|
-- +goose StatementEnd
|
|
-- +goose StatementBegin
|
|
DROP PROJECTION IF EXISTS testing.dim_test_scd_proj_is_current;
|
|
-- +goose StatementEnd
|
|
-- +goose StatementBegin
|
|
DROP TABLE IF EXISTS testing.dim_test_scd;
|
|
-- +goose StatementEnd
|