mirror of https://github.com/citusdata/citus.git
Merge pull request #4698 from citusdata/chunk-group-num
Columnar: rename chunk_num -> chunk_group_num.pull/4699/head
commit
277a773f5e
|
@ -32,9 +32,9 @@ COMMENT ON TABLE stripe IS 'Columnar per stripe metadata';
|
||||||
CREATE TABLE chunk_group (
|
CREATE TABLE chunk_group (
|
||||||
storage_id bigint NOT NULL,
|
storage_id bigint NOT NULL,
|
||||||
stripe_num bigint NOT NULL,
|
stripe_num bigint NOT NULL,
|
||||||
chunk_num int NOT NULL,
|
chunk_group_num int NOT NULL,
|
||||||
row_count bigint NOT NULL,
|
row_count bigint NOT NULL,
|
||||||
PRIMARY KEY (storage_id, stripe_num, chunk_num),
|
PRIMARY KEY (storage_id, stripe_num, chunk_group_num),
|
||||||
FOREIGN KEY (storage_id, stripe_num) REFERENCES stripe(storage_id, stripe_num) ON DELETE CASCADE
|
FOREIGN KEY (storage_id, stripe_num) REFERENCES stripe(storage_id, stripe_num) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ CREATE TABLE chunk (
|
||||||
storage_id bigint NOT NULL,
|
storage_id bigint NOT NULL,
|
||||||
stripe_num bigint NOT NULL,
|
stripe_num bigint NOT NULL,
|
||||||
attr_num int NOT NULL,
|
attr_num int NOT NULL,
|
||||||
chunk_num int NOT NULL,
|
chunk_group_num int NOT NULL,
|
||||||
minimum_value bytea,
|
minimum_value bytea,
|
||||||
maximum_value bytea,
|
maximum_value bytea,
|
||||||
value_stream_offset bigint NOT NULL,
|
value_stream_offset bigint NOT NULL,
|
||||||
|
@ -55,8 +55,8 @@ CREATE TABLE chunk (
|
||||||
value_compression_level int NOT NULL,
|
value_compression_level int NOT NULL,
|
||||||
value_decompressed_length bigint NOT NULL,
|
value_decompressed_length bigint NOT NULL,
|
||||||
value_count bigint NOT NULL,
|
value_count bigint NOT NULL,
|
||||||
PRIMARY KEY (storage_id, stripe_num, attr_num, chunk_num),
|
PRIMARY KEY (storage_id, stripe_num, attr_num, chunk_group_num),
|
||||||
FOREIGN KEY (storage_id, stripe_num, chunk_num) REFERENCES chunk_group(storage_id, stripe_num, chunk_num) ON DELETE CASCADE
|
FOREIGN KEY (storage_id, stripe_num, chunk_group_num) REFERENCES chunk_group(storage_id, stripe_num, chunk_group_num) ON DELETE CASCADE
|
||||||
) WITH (user_catalog_table = true);
|
) WITH (user_catalog_table = true);
|
||||||
|
|
||||||
COMMENT ON TABLE chunk IS 'Columnar per chunk metadata';
|
COMMENT ON TABLE chunk IS 'Columnar per chunk metadata';
|
||||||
|
|
|
@ -45,11 +45,11 @@ $$ LANGUAGE plpgsql;
|
||||||
-- are chunk groups and chunks consistent?
|
-- are chunk groups and chunks consistent?
|
||||||
CREATE view chunk_group_consistency AS
|
CREATE view chunk_group_consistency AS
|
||||||
WITH a as (
|
WITH a as (
|
||||||
SELECT storage_id, stripe_num, chunk_num, min(value_count) as row_count
|
SELECT storage_id, stripe_num, chunk_group_num, min(value_count) as row_count
|
||||||
FROM columnar.chunk
|
FROM columnar.chunk
|
||||||
GROUP BY 1,2,3
|
GROUP BY 1,2,3
|
||||||
), b as (
|
), b as (
|
||||||
SELECT storage_id, stripe_num, chunk_num, max(value_count) as row_count
|
SELECT storage_id, stripe_num, chunk_group_num, max(value_count) as row_count
|
||||||
FROM columnar.chunk
|
FROM columnar.chunk
|
||||||
GROUP BY 1,2,3
|
GROUP BY 1,2,3
|
||||||
), c as (
|
), c as (
|
||||||
|
|
|
@ -192,10 +192,10 @@ ORDER BY 1,2,3;
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
(0 rows)
|
(0 rows)
|
||||||
|
|
||||||
SELECT relname, stripe_num, chunk_num, row_count FROM columnar.chunk_group a, pg_class b
|
SELECT relname, stripe_num, chunk_group_num, row_count FROM columnar.chunk_group a, pg_class b
|
||||||
WHERE columnar_relation_storageid(b.oid)=a.storage_id AND relname = 'zero_col'
|
WHERE columnar_relation_storageid(b.oid)=a.storage_id AND relname = 'zero_col'
|
||||||
ORDER BY 1,2,3,4;
|
ORDER BY 1,2,3,4;
|
||||||
relname | stripe_num | chunk_num | row_count
|
relname | stripe_num | chunk_group_num | row_count
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
zero_col | 1 | 0 | 1
|
zero_col | 1 | 0 | 1
|
||||||
zero_col | 2 | 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
|
-- VACUUM FULL doesn't reclaim dropped columns, but converts them to NULLs
|
||||||
ALTER TABLE t DROP COLUMN a;
|
ALTER TABLE t DROP COLUMN a;
|
||||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
SELECT stripe_num, attr_num, chunk_group_num, minimum_value IS NULL, maximum_value IS NULL
|
||||||
FROM columnar.chunk a, pg_class b
|
FROM columnar.chunk a, pg_class b
|
||||||
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||||
stripe_num | attr_num | chunk_num | ?column? | ?column?
|
stripe_num | attr_num | chunk_group_num | ?column? | ?column?
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
1 | 1 | 0 | f | f
|
1 | 1 | 0 | f | f
|
||||||
1 | 2 | 0 | f | f
|
1 | 2 | 0 | f | f
|
||||||
|
@ -100,10 +100,10 @@ WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER
|
||||||
(6 rows)
|
(6 rows)
|
||||||
|
|
||||||
VACUUM FULL t;
|
VACUUM FULL t;
|
||||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
SELECT stripe_num, attr_num, chunk_group_num, minimum_value IS NULL, maximum_value IS NULL
|
||||||
FROM columnar.chunk a, pg_class b
|
FROM columnar.chunk a, pg_class b
|
||||||
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||||
stripe_num | attr_num | chunk_num | ?column? | ?column?
|
stripe_num | attr_num | chunk_group_num | ?column? | ?column?
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
1 | 1 | 0 | t | t
|
1 | 1 | 0 | t | t
|
||||||
1 | 2 | 0 | f | f
|
1 | 2 | 0 | f | f
|
||||||
|
|
|
@ -49,11 +49,11 @@ $$ LANGUAGE plpgsql;
|
||||||
-- are chunk groups and chunks consistent?
|
-- are chunk groups and chunks consistent?
|
||||||
CREATE view chunk_group_consistency AS
|
CREATE view chunk_group_consistency AS
|
||||||
WITH a as (
|
WITH a as (
|
||||||
SELECT storage_id, stripe_num, chunk_num, min(value_count) as row_count
|
SELECT storage_id, stripe_num, chunk_group_num, min(value_count) as row_count
|
||||||
FROM columnar.chunk
|
FROM columnar.chunk
|
||||||
GROUP BY 1,2,3
|
GROUP BY 1,2,3
|
||||||
), b as (
|
), b as (
|
||||||
SELECT storage_id, stripe_num, chunk_num, max(value_count) as row_count
|
SELECT storage_id, stripe_num, chunk_group_num, max(value_count) as row_count
|
||||||
FROM columnar.chunk
|
FROM columnar.chunk
|
||||||
GROUP BY 1,2,3
|
GROUP BY 1,2,3
|
||||||
), c as (
|
), c as (
|
||||||
|
|
|
@ -136,7 +136,7 @@ SELECT relname, stripe_num, value_count FROM columnar.chunk a, pg_class b
|
||||||
WHERE columnar_relation_storageid(b.oid)=a.storage_id AND relname = 'zero_col'
|
WHERE columnar_relation_storageid(b.oid)=a.storage_id AND relname = 'zero_col'
|
||||||
ORDER BY 1,2,3;
|
ORDER BY 1,2,3;
|
||||||
|
|
||||||
SELECT relname, stripe_num, chunk_num, row_count FROM columnar.chunk_group a, pg_class b
|
SELECT relname, stripe_num, chunk_group_num, row_count FROM columnar.chunk_group a, pg_class b
|
||||||
WHERE columnar_relation_storageid(b.oid)=a.storage_id AND relname = 'zero_col'
|
WHERE columnar_relation_storageid(b.oid)=a.storage_id AND relname = 'zero_col'
|
||||||
ORDER BY 1,2,3,4;
|
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
|
-- VACUUM FULL doesn't reclaim dropped columns, but converts them to NULLs
|
||||||
ALTER TABLE t DROP COLUMN a;
|
ALTER TABLE t DROP COLUMN a;
|
||||||
|
|
||||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
SELECT stripe_num, attr_num, chunk_group_num, minimum_value IS NULL, maximum_value IS NULL
|
||||||
FROM columnar.chunk a, pg_class b
|
FROM columnar.chunk a, pg_class b
|
||||||
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||||
|
|
||||||
VACUUM FULL t;
|
VACUUM FULL t;
|
||||||
|
|
||||||
SELECT stripe_num, attr_num, chunk_num, minimum_value IS NULL, maximum_value IS NULL
|
SELECT stripe_num, attr_num, chunk_group_num, minimum_value IS NULL, maximum_value IS NULL
|
||||||
FROM columnar.chunk a, pg_class b
|
FROM columnar.chunk a, pg_class b
|
||||||
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
WHERE a.storage_id = columnar_relation_storageid(b.oid) AND b.relname='t' ORDER BY 1, 2, 3;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue