-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathddl.sql
More file actions
39 lines (35 loc) · 1.33 KB
/
ddl.sql
File metadata and controls
39 lines (35 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
set hg_experimental_enable_nullable_clustering_key = true;
CREATE TABLE bluesky (
data JSONB NOT NULL,
distribution_key TEXT GENERATED ALWAYS AS (
CASE
WHEN data ->> 'did' IS NULL THEN '[NULL]'
ELSE data ->> 'did'
END
) STORED,
sort_key TEXT GENERATED ALWAYS AS (
-- col1: kind
CASE
WHEN data ->> 'kind' IS NULL THEN '[NULL]'
ELSE '[VAL]' || (data ->> 'kind')
END || '|__COL1__|' ||
-- col2: operation
CASE
WHEN data -> 'commit' ->> 'operation' IS NULL THEN '[NULL]'
ELSE '[VAL]' || (data -> 'commit' ->> 'operation')
END || '|__COL2__|' ||
-- col3: collection
CASE
WHEN data -> 'commit' ->> 'collection' IS NULL THEN '[NULL]'
ELSE '[VAL]' || (data -> 'commit' ->> 'collection')
END || '|__COL3__|' ||
-- col4: did
CASE
WHEN data ->> 'did' IS NULL THEN '[NULL]'
ELSE '[VAL]' || (data ->> 'did')
END
) STORED
) WITH (clustering_key='sort_key', distribution_key='distribution_key');
ALTER TABLE bluesky ALTER COLUMN data SET (enable_columnar_type = ON);
CALL set_table_property('bluesky', 'dictionary_encoding_columns', 'data:auto');
CALL set_table_property('bluesky', 'bitmap_columns', 'data:auto');