citus/src/test/regress/sql/multi_multiuser_basic_queri...

117 lines
2.5 KiB
SQL

--
-- MULTI_MULTIUSER_BASIC_QUERIES
--
SET ROLE full_access;
-- Execute simple sum, average, and count queries on data recently uploaded to
-- our partitioned table.
SELECT count(*) FROM lineitem;
SELECT sum(l_extendedprice) FROM lineitem;
SELECT avg(l_extendedprice) FROM lineitem;
RESET ROLE;
-- and again, to check a read-only user can query
SET ROLE read_access;
SET citus.task_executor_type TO 'task-tracker';
SELECT count(*) FROM lineitem;
RESET citus.task_executor_type;
SELECT count(*) FROM lineitem;
-- and yet again, to prove we're failing when a user doesn't have permissions
SET ROLE no_access;
SET citus.task_executor_type TO 'task-tracker';
SELECT count(*) FROM lineitem;
RESET citus.task_executor_type;
SELECT count(*) FROM lineitem;
RESET ROLE;
-- verify that broadcast joins work
SET ROLE read_access;
SELECT
l_partkey, o_orderkey, count(*)
FROM
lineitem, part, orders, customer
WHERE
l_orderkey = o_orderkey AND
l_partkey = p_partkey AND
c_custkey = o_custkey AND
(l_quantity > 5.0 OR l_extendedprice > 1200.0) AND
p_size > 8 AND o_totalprice > 10 AND
c_acctbal < 5000.0
GROUP BY
l_partkey, o_orderkey
ORDER BY
l_partkey, o_orderkey
LIMIT 30;
RESET ROLE;
SET ROLE no_access;
SELECT
l_partkey, o_orderkey, count(*)
FROM
lineitem, part, orders, customer
WHERE
l_orderkey = o_orderkey AND
l_partkey = p_partkey AND
c_custkey = o_custkey AND
(l_quantity > 5.0 OR l_extendedprice > 1200.0) AND
p_size > 8 AND o_totalprice > 10 AND
c_acctbal < 5000.0
GROUP BY
l_partkey, o_orderkey
ORDER BY
l_partkey, o_orderkey
LIMIT 30;
RESET ROLE;
-- verify that re-partition queries work
SET citus.task_executor_type TO 'task-tracker';
SET ROLE read_access;
SELECT
l_partkey, o_orderkey, count(*)
FROM
lineitem, part, orders, customer
WHERE
l_orderkey = o_orderkey AND
l_partkey = p_partkey AND
c_custkey = o_custkey AND
(l_quantity > 5.0 OR l_extendedprice > 1200.0) AND
p_size > 8 AND o_totalprice > 10 AND
c_acctbal < 5000.0
GROUP BY
l_partkey, o_orderkey
ORDER BY
l_partkey, o_orderkey
LIMIT 30;
RESET ROLE;
SET ROLE no_access;
SELECT
l_partkey, o_orderkey, count(*)
FROM
lineitem, part, orders, customer
WHERE
l_orderkey = o_orderkey AND
l_partkey = p_partkey AND
c_custkey = o_custkey AND
(l_quantity > 5.0 OR l_extendedprice > 1200.0) AND
p_size > 8 AND o_totalprice > 10 AND
c_acctbal < 5000.0
GROUP BY
l_partkey, o_orderkey
ORDER BY
l_partkey, o_orderkey
LIMIT 30;
RESET ROLE;