mirror of https://github.com/citusdata/citus.git
56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
-- Tests for boolean aggregates in multi-shard queries
|
|
CREATE SCHEMA bool_agg;
|
|
SET search_path TO bool_agg;
|
|
CREATE TABLE bool_test (id int, val int, flag bool, kind int);
|
|
SELECT create_distributed_table('bool_agg.bool_test','id');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
INSERT INTO bool_test VALUES (1, 1, true, 99), (2, 2, false, 99), (2, 3, true, 88);
|
|
-- mix of true and false
|
|
SELECT bool_and(flag), bool_or(flag), every(flag) FROM bool_test;
|
|
bool_and | bool_or | every
|
|
---------------------------------------------------------------------
|
|
f | t | f
|
|
(1 row)
|
|
|
|
SELECT kind, bool_and(flag), bool_or(flag), every(flag) FROM bool_test GROUP BY kind ORDER BY 2;
|
|
kind | bool_and | bool_or | every
|
|
---------------------------------------------------------------------
|
|
99 | f | t | f
|
|
88 | t | t | t
|
|
(2 rows)
|
|
|
|
-- expressions in aggregate
|
|
SELECT bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test;
|
|
bool_or | bool_and
|
|
---------------------------------------------------------------------
|
|
t | f
|
|
(1 row)
|
|
|
|
SELECT kind, bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test GROUP BY kind ORDER BY 3;
|
|
kind | bool_or | bool_and
|
|
---------------------------------------------------------------------
|
|
88 | t | f
|
|
99 | t | t
|
|
(2 rows)
|
|
|
|
-- 1 & 3, 1 | 3
|
|
SELECT bit_and(val), bit_or(val) FROM bool_test WHERE flag;
|
|
bit_and | bit_or
|
|
---------------------------------------------------------------------
|
|
1 | 3
|
|
(1 row)
|
|
|
|
SELECT flag, bit_and(val), bit_or(val) FROM bool_test GROUP BY flag ORDER BY flag;
|
|
flag | bit_and | bit_or
|
|
---------------------------------------------------------------------
|
|
f | 2 | 2
|
|
t | 1 | 3
|
|
(2 rows)
|
|
|
|
DROP SCHEMA bool_agg CASCADE;
|
|
NOTICE: drop cascades to table bool_test
|