46 lines
1.4 KiB
SQL
46 lines
1.4 KiB
SQL
--
|
|
-- Regression Test for Misc Permission Checks
|
|
--
|
|
|
|
LOAD '$libdir/sepgsql'; -- failed
|
|
|
|
--
|
|
-- Permissions to execute functions
|
|
--
|
|
CREATE TABLE t1 (x int, y text);
|
|
INSERT INTO t1 (SELECT x, md5(x::text) FROM generate_series(1,100) x);
|
|
|
|
CREATE TABLE t1p (o int, p text) PARTITION BY RANGE (o);
|
|
CREATE TABLE t1p_ones PARTITION OF t1p FOR VALUES FROM ('0') TO ('10');
|
|
CREATE TABLE t1p_tens PARTITION OF t1p FOR VALUES FROM ('10') TO ('100');
|
|
INSERT INTO t1p (SELECT x, md5(x::text) FROM generate_series(0,99) x);
|
|
|
|
SET sepgsql.debug_audit = on;
|
|
SET client_min_messages = log;
|
|
|
|
-- regular function and operators
|
|
SELECT * FROM t1 WHERE x > 50 AND y like '%64%';
|
|
SELECT * FROM t1p WHERE o > 50 AND p like '%64%';
|
|
SELECT * FROM t1p_ones WHERE o > 50 AND p like '%64%';
|
|
SELECT * FROM t1p_tens WHERE o > 50 AND p like '%64%';
|
|
|
|
-- aggregate function
|
|
SELECT MIN(x), AVG(x) FROM t1;
|
|
SELECT MIN(o), AVG(o) FROM t1p;
|
|
SELECT MIN(o), AVG(o) FROM t1p_ones;
|
|
SELECT MIN(o), AVG(o) FROM t1p_tens;
|
|
|
|
-- window function
|
|
SELECT row_number() OVER (order by x), * FROM t1 WHERE y like '%86%';
|
|
SELECT row_number() OVER (order by o), * FROM t1p WHERE p like '%86%';
|
|
SELECT row_number() OVER (order by o), * FROM t1p_ones WHERE p like '%86%';
|
|
SELECT row_number() OVER (order by o), * FROM t1p_tens WHERE p like '%86%';
|
|
|
|
RESET sepgsql.debug_audit;
|
|
RESET client_min_messages;
|
|
--
|
|
-- Cleanup
|
|
--
|
|
DROP TABLE IF EXISTS t1 CASCADE;
|
|
DROP TABLE IF EXISTS t1p CASCADE;
|