File: misc.sql

package info (click to toggle)
postgresql-18 18~beta3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 155,816 kB
  • sloc: ansic: 993,154; sql: 127,411; perl: 58,874; xml: 30,905; yacc: 21,023; lex: 9,000; makefile: 6,880; sh: 5,353; cpp: 984; python: 710; asm: 40; sed: 3
file content (45 lines) | stat: -rw-r--r-- 1,428 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
--
-- 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;