-- -- 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;