mirror of https://github.com/citusdata/citus.git
Rename stripeid, chunkid, and attnum
parent
9114fd4050
commit
8270b598b6
|
@ -17,34 +17,34 @@ COMMENT ON TABLE options IS 'columnar table specific options, maintained by alte
|
|||
|
||||
CREATE TABLE stripe (
|
||||
storageid bigint NOT NULL,
|
||||
stripeid bigint NOT NULL,
|
||||
stripe_num bigint NOT NULL,
|
||||
file_offset bigint NOT NULL,
|
||||
data_length bigint NOT NULL,
|
||||
column_count int NOT NULL,
|
||||
chunk_count int NOT NULL,
|
||||
chunk_row_count int NOT NULL,
|
||||
row_count bigint NOT NULL,
|
||||
PRIMARY KEY (storageid, stripeid)
|
||||
PRIMARY KEY (storageid, stripe_num)
|
||||
) WITH (user_catalog_table = true);
|
||||
|
||||
COMMENT ON TABLE stripe IS 'Columnar per stripe metadata';
|
||||
|
||||
CREATE TABLE chunk_group (
|
||||
storageid bigint NOT NULL,
|
||||
stripeid bigint NOT NULL,
|
||||
chunkid int NOT NULL,
|
||||
stripe_num bigint NOT NULL,
|
||||
chunk_num int NOT NULL,
|
||||
row_count bigint NOT NULL,
|
||||
PRIMARY KEY (storageid, stripeid, chunkid),
|
||||
FOREIGN KEY (storageid, stripeid) REFERENCES stripe(storageid, stripeid) ON DELETE CASCADE
|
||||
PRIMARY KEY (storageid, stripe_num, chunk_num),
|
||||
FOREIGN KEY (storageid, stripe_num) REFERENCES stripe(storageid, stripe_num) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
COMMENT ON TABLE chunk_group IS 'Columnar chunk group metadata';
|
||||
|
||||
CREATE TABLE chunk (
|
||||
storageid bigint NOT NULL,
|
||||
stripeid bigint NOT NULL,
|
||||
attnum int NOT NULL,
|
||||
chunkid int NOT NULL,
|
||||
stripe_num bigint NOT NULL,
|
||||
attr_num int NOT NULL,
|
||||
chunk_num int NOT NULL,
|
||||
minimum_value bytea,
|
||||
maximum_value bytea,
|
||||
value_stream_offset bigint NOT NULL,
|
||||
|
@ -55,8 +55,8 @@ CREATE TABLE chunk (
|
|||
value_compression_level int NOT NULL,
|
||||
value_decompressed_length bigint NOT NULL,
|
||||
value_count bigint NOT NULL,
|
||||
PRIMARY KEY (storageid, stripeid, attnum, chunkid),
|
||||
FOREIGN KEY (storageid, stripeid, chunkid) REFERENCES chunk_group(storageid, stripeid, chunkid) ON DELETE CASCADE
|
||||
PRIMARY KEY (storageid, stripe_num, attr_num, chunk_num),
|
||||
FOREIGN KEY (storageid, stripe_num, chunk_num) REFERENCES chunk_group(storageid, stripe_num, chunk_num) ON DELETE CASCADE
|
||||
) WITH (user_catalog_table = true);
|
||||
|
||||
COMMENT ON TABLE chunk IS 'Columnar per chunk metadata';
|
||||
|
|
|
@ -45,11 +45,11 @@ $$ LANGUAGE plpgsql;
|
|||
-- are chunk groups and chunks consistent?
|
||||
CREATE view chunk_group_consistency AS
|
||||
WITH a as (
|
||||
SELECT storageid, stripeid, chunkid, min(value_count) as row_count
|
||||
SELECT storageid, stripe_num, chunk_num, min(value_count) as row_count
|
||||
FROM columnar.chunk
|
||||
GROUP BY 1,2,3
|
||||
), b as (
|
||||
SELECT storageid, stripeid, chunkid, max(value_count) as row_count
|
||||
SELECT storageid, stripe_num, chunk_num, max(value_count) as row_count
|
||||
FROM columnar.chunk
|
||||
GROUP BY 1,2,3
|
||||
), c as (
|
||||
|
|
|
@ -173,10 +173,10 @@ INSERT INTO zero_col_heap SELECT * FROM zero_col_heap;
|
|||
INSERT INTO zero_col_heap SELECT * FROM zero_col_heap;
|
||||
INSERT INTO zero_col_heap SELECT * FROM zero_col_heap;
|
||||
INSERT INTO zero_col SELECT * FROM zero_col_heap;
|
||||
SELECT relname, stripeid, row_count FROM columnar.stripe a, pg_class b
|
||||
SELECT relname, stripe_num, row_count FROM columnar.stripe a, pg_class b
|
||||
WHERE columnar_relation_storageid(b.oid)=a.storageid AND relname = 'zero_col'
|
||||
ORDER BY 1,2,3;
|
||||
relname | stripeid | row_count
|
||||
relname | stripe_num | row_count
|
||||
---------------------------------------------------------------------
|
||||
zero_col | 1 | 1
|
||||
zero_col | 2 | 1
|
||||
|
@ -185,17 +185,17 @@ ORDER BY 1,2,3;
|
|||
zero_col | 5 | 64
|
||||
(5 rows)
|
||||
|
||||
SELECT relname, stripeid, value_count FROM columnar.chunk a, pg_class b
|
||||
SELECT relname, stripe_num, value_count FROM columnar.chunk a, pg_class b
|
||||
WHERE columnar_relation_storageid(b.oid)=a.storageid AND relname = 'zero_col'
|
||||
ORDER BY 1,2,3;
|
||||
relname | stripeid | value_count
|
||||
relname | stripe_num | value_count
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
||||
SELECT relname, stripeid, chunkid, row_count FROM columnar.chunk_group a, pg_class b
|
||||
SELECT relname, stripe_num, chunk_num, row_count FROM columnar.chunk_group a, pg_class b
|
||||
WHERE columnar_relation_storageid(b.oid)=a.storageid AND relname = 'zero_col'
|
||||
ORDER BY 1,2,3,4;
|
||||
relname | stripeid | chunkid | row_count
|
||||
relname | stripe_num | chunk_num | row_count
|
||||
---------------------------------------------------------------------
|
||||
zero_col | 1 | 0 | 1
|
||||
zero_col | 2 | 0 | 1
|
||||
|
|
|
@ -86,10 +86,10 @@ SELECT count(*) FROM t_stripes;
|
|||
|
||||
-- VACUUM FULL doesn't reclaim dropped columns, but converts them to NULLs
|
||||
ALTER TABLE t DROP COLUMN a;
|
||||
SELECT stripeid, attnum, chunkid, minimum_value IS NULL, maximum_value IS NULL
|
||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
||||
FROM columnar.chunk a, pg_class b
|
||||
WHERE a.storageid = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||
stripeid | attnum | chunkid | ?column? | ?column?
|
||||
stripe_num | attr_num | chunk_num | ?column? | ?column?
|
||||
---------------------------------------------------------------------
|
||||
1 | 1 | 0 | f | f
|
||||
1 | 2 | 0 | f | f
|
||||
|
@ -100,10 +100,10 @@ WHERE a.storageid = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER B
|
|||
(6 rows)
|
||||
|
||||
VACUUM FULL t;
|
||||
SELECT stripeid, attnum, chunkid, minimum_value IS NULL, maximum_value IS NULL
|
||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
||||
FROM columnar.chunk a, pg_class b
|
||||
WHERE a.storageid = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||
stripeid | attnum | chunkid | ?column? | ?column?
|
||||
stripe_num | attr_num | chunk_num | ?column? | ?column?
|
||||
---------------------------------------------------------------------
|
||||
1 | 1 | 0 | t | t
|
||||
1 | 2 | 0 | f | f
|
||||
|
|
|
@ -49,11 +49,11 @@ $$ LANGUAGE plpgsql;
|
|||
-- are chunk groups and chunks consistent?
|
||||
CREATE view chunk_group_consistency AS
|
||||
WITH a as (
|
||||
SELECT storageid, stripeid, chunkid, min(value_count) as row_count
|
||||
SELECT storageid, stripe_num, chunk_num, min(value_count) as row_count
|
||||
FROM columnar.chunk
|
||||
GROUP BY 1,2,3
|
||||
), b as (
|
||||
SELECT storageid, stripeid, chunkid, max(value_count) as row_count
|
||||
SELECT storageid, stripe_num, chunk_num, max(value_count) as row_count
|
||||
FROM columnar.chunk
|
||||
GROUP BY 1,2,3
|
||||
), c as (
|
||||
|
|
|
@ -128,15 +128,15 @@ INSERT INTO zero_col_heap SELECT * FROM zero_col_heap;
|
|||
|
||||
INSERT INTO zero_col SELECT * FROM zero_col_heap;
|
||||
|
||||
SELECT relname, stripeid, row_count FROM columnar.stripe a, pg_class b
|
||||
SELECT relname, stripe_num, row_count FROM columnar.stripe a, pg_class b
|
||||
WHERE columnar_relation_storageid(b.oid)=a.storageid AND relname = 'zero_col'
|
||||
ORDER BY 1,2,3;
|
||||
|
||||
SELECT relname, stripeid, value_count FROM columnar.chunk a, pg_class b
|
||||
SELECT relname, stripe_num, value_count FROM columnar.chunk a, pg_class b
|
||||
WHERE columnar_relation_storageid(b.oid)=a.storageid AND relname = 'zero_col'
|
||||
ORDER BY 1,2,3;
|
||||
|
||||
SELECT relname, stripeid, chunkid, row_count FROM columnar.chunk_group a, pg_class b
|
||||
SELECT relname, stripe_num, chunk_num, row_count FROM columnar.chunk_group a, pg_class b
|
||||
WHERE columnar_relation_storageid(b.oid)=a.storageid AND relname = 'zero_col'
|
||||
ORDER BY 1,2,3,4;
|
||||
|
||||
|
|
|
@ -42,13 +42,13 @@ SELECT count(*) FROM t_stripes;
|
|||
-- VACUUM FULL doesn't reclaim dropped columns, but converts them to NULLs
|
||||
ALTER TABLE t DROP COLUMN a;
|
||||
|
||||
SELECT stripeid, attnum, chunkid, minimum_value IS NULL, maximum_value IS NULL
|
||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
||||
FROM columnar.chunk a, pg_class b
|
||||
WHERE a.storageid = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||
|
||||
VACUUM FULL t;
|
||||
|
||||
SELECT stripeid, attnum, chunkid, minimum_value IS NULL, maximum_value IS NULL
|
||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
||||
FROM columnar.chunk a, pg_class b
|
||||
WHERE a.storageid = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||
|
||||
|
|
Loading…
Reference in New Issue