OSDN Git Service

8月21日消化分の試験を追加した。
[pghintplan/pg_hint_plan.git] / sql / ut-init.sql
1 SET search_path TO public;
2
3 CREATE EXTENSION btree_gist;
4 CREATE EXTENSION btree_gin;
5
6 CREATE ROLE super_user
7   SUPERUSER
8   NOCREATEDB
9   NOCREATEROLE
10   NOINHERIT
11   NOLOGIN
12   NOREPLICATION
13   CONNECTION LIMIT 1;
14 CREATE ROLE normal_user
15   NOSUPERUSER
16   NOCREATEDB
17   NOCREATEROLE
18   NOINHERIT
19   NOLOGIN
20   NOREPLICATION
21   CONNECTION LIMIT 1;
22
23 DROP SCHEMA s1 CASCADE;
24 CREATE SCHEMA s1;
25 CREATE SCHEMA s2;
26
27 CREATE TABLE s1.t1 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
28 CREATE TABLE s1.t2 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
29 CREATE TABLE s1.t3 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
30 CREATE TABLE s1.t4 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
31 CREATE TABLE s2.t1 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
32 CREATE TABLE s1.p1 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
33 CREATE TABLE s1.p2 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
34 CREATE TABLE s1.p1c1 (LIKE s1.p1 INCLUDING ALL, CHECK (c1 <= 100)) INHERITS(s1.p1);
35 CREATE TABLE s1.p1c2 (LIKE s1.p1 INCLUDING ALL, CHECK (c1 > 100 AND c1 <= 200)) INHERITS(s1.p1);
36 CREATE TABLE s1.p1c3 (LIKE s1.p1 INCLUDING ALL, CHECK (c1 > 200)) INHERITS(s1.p1);
37 CREATE TABLE s1.p2c1 (LIKE s1.p2 INCLUDING ALL, CHECK (c1 <= 100)) INHERITS(s1.p2);
38 CREATE TABLE s1.p2c2 (LIKE s1.p2 INCLUDING ALL, CHECK (c1 > 100 AND c1 <= 200)) INHERITS(s1.p2);
39 CREATE TABLE s1.p2c3 (LIKE s1.p2 INCLUDING ALL, CHECK (c1 > 200)) INHERITS(s1.p2);
40 CREATE TABLE s1.p2c1c1 (LIKE s1.p2c1 INCLUDING ALL, CHECK (c1 <= 50)) INHERITS(s1.p2c1);
41 CREATE TABLE s1.p2c1c2 (LIKE s1.p2c1 INCLUDING ALL, CHECK (c1 > 50 AND c1 <= 100)) INHERITS(s1.p2c1);
42 CREATE TABLE s1.p2c2c1 (LIKE s1.p2c2 INCLUDING ALL, CHECK (c1 > 100 AND c1 <= 150)) INHERITS(s1.p2c2);
43 CREATE TABLE s1.p2c2c2 (LIKE s1.p2c2 INCLUDING ALL, CHECK (c1 > 150 AND c1 <= 200)) INHERITS(s1.p2c2);
44 CREATE TABLE s1.p2c3c1 (LIKE s1.p2c3 INCLUDING ALL, CHECK (c1 > 200 AND c1 <= 250)) INHERITS(s1.p2c3);
45 CREATE TABLE s1.p2c3c2 (LIKE s1.p2c3 INCLUDING ALL, CHECK (c1 > 250)) INHERITS(s1.p2c3);
46 CREATE TABLE s1.r1 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
47 CREATE TABLE s1.r2 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
48 CREATE TABLE s1.r3 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1));
49 CREATE TABLE s1.ti1 (c1 int, c2 int, c3 int, c4 text, PRIMARY KEY (c1), UNIQUE (c2));
50 CREATE UNLOGGED TABLE s1.ul1 (LIKE s1.t1 INCLUDING ALL);
51
52 INSERT INTO s1.t1 SELECT i, i, i % 100, i FROM (SELECT generate_series(1, 1000) i) t;
53 INSERT INTO s1.t2 SELECT i, i, i % 10, i FROM (SELECT generate_series(1, 100) i) t;
54 INSERT INTO s2.t1 SELECT i, i, i % 10, i FROM (SELECT generate_series(1, 100) i) t;
55 INSERT INTO s1.p1c1 SELECT i, i, i % 10, i FROM (SELECT generate_series(1, 100) i) t;
56 INSERT INTO s1.p1c2 SELECT i, i, i % 10, i FROM (SELECT generate_series(101, 200) i) t;
57 INSERT INTO s1.p1c3 SELECT i, i, i % 10, i FROM (SELECT generate_series(201, 300) i) t;
58 INSERT INTO s1.p2c1c1 SELECT i, i, i % 10, i FROM (SELECT generate_series(1, 50) i) t;
59 INSERT INTO s1.p2c1c2 SELECT i, i, i % 10, i FROM (SELECT generate_series(51, 100) i) t;
60 INSERT INTO s1.p2c2c1 SELECT i, i, i % 10, i FROM (SELECT generate_series(101, 150) i) t;
61 INSERT INTO s1.p2c2c2 SELECT i, i, i % 10, i FROM (SELECT generate_series(151, 200) i) t;
62 INSERT INTO s1.p2c3c1 SELECT i, i, i % 10, i FROM (SELECT generate_series(201, 250) i) t;
63 INSERT INTO s1.p2c3c2 SELECT i, i, i % 10, i FROM (SELECT generate_series(251, 300) i) t;
64 INSERT INTO s1.r1 SELECT i, i, i % 10, i FROM (SELECT generate_series(1, 100) i) t;
65 INSERT INTO s1.r2 SELECT i, i, i % 10, i FROM (SELECT generate_series(1, 100) i) t;
66 INSERT INTO s1.r3 SELECT i, i, i % 10, i FROM (SELECT generate_series(1, 100) i) t;
67 INSERT INTO s1.ti1 SELECT i, i, i % 100, i FROM (SELECT generate_series(1, 1000) i) t;
68
69 CREATE INDEX t1_i ON s1.t1 (c3);
70 CREATE INDEX t1_i1 ON s1.t1 (c1);
71 CREATE INDEX t2_i1 ON s1.t2 (c1);
72 CREATE INDEX t3_i1 ON s1.t3 (c1);
73 CREATE INDEX t4_i1 ON s1.t4 (c1);
74 CREATE INDEX p1_i ON s1.p1 (c2);
75 CREATE INDEX p2_i ON s1.p2 (c2);
76 CREATE INDEX p1c1_i ON s1.p1c1 (c1);
77 CREATE INDEX p1c2_i ON s1.p1c2 (c1);
78 CREATE INDEX p1c3_i ON s1.p1c3 (c1);
79 CREATE INDEX p2c1_i ON s1.p2c1 (c1);
80 CREATE INDEX p2c2_i ON s1.p2c2 (c1);
81 CREATE INDEX p2c3_i ON s1.p2c3 (c1);
82 CREATE INDEX p2c1c1_i ON s1.p2c1c1 (c1);
83 CREATE INDEX p2c1c2_i ON s1.p2c1c2 (c1);
84 CREATE INDEX p2c2c1_i ON s1.p2c2c1 (c1);
85 CREATE INDEX p2c2c2_i ON s1.p2c2c2 (c1);
86 CREATE INDEX p2c3c1_i ON s1.p2c3c1 (c1);
87 CREATE INDEX p2c3c2_i ON s1.p2c3c2 (c1);
88 CREATE INDEX ti1_i1    ON s1.ti1 (c2);
89 CREATE INDEX ti1_i2    ON s1.ti1 (c2, c4);
90 CREATE INDEX ti1_i3    ON s1.ti1 (c2, c4, c4);
91 CREATE INDEX ti1_i4    ON s1.ti1 (c2, c4, c4, c4);
92 CREATE INDEX ti1_btree ON s1.ti1 USING btree (c1);
93 CREATE INDEX ti1_hash  ON s1.ti1 USING hash (c1);
94 CREATE INDEX ti1_gist  ON s1.ti1 USING gist (c1);
95 CREATE INDEX ti1_gin   ON s1.ti1 USING gin (c1);
96 CREATE INDEX ti1_expr  ON s1.ti1 ((c1 < 100));
97 CREATE INDEX ti1_pred  ON s1.ti1 (lower(c4));
98 CREATE UNIQUE INDEX ti1_uniq ON s1.ti1 (c1);
99 CREATE INDEX ti1_multi ON s1.ti1 (c1, c2, c3, c4);
100 CREATE INDEX ti1_ts    ON s1.ti1 USING gin(to_tsvector('english', c4));
101
102 CREATE VIEW s1.v1 AS SELECT v1t1.c1, v1t1.c2, v1t1.c3, v1t1.c4 FROM s1.t1 v1t1;
103 CREATE VIEW s1.v1_ AS SELECT v1t1_.c1, v1t1_.c2, v1t1_.c3, v1t1_.c4 FROM s1.t1 v1t1_;
104 CREATE VIEW s1.v2 AS SELECT v2t1.c1, v2t1.c2, v2t1.c3, v2t1.c4 FROM s1.t1 v2t1 JOIN s1.t2 v2t2 ON(v2t1.c1 = v2t2.c1);
105 CREATE VIEW s1.v3 AS SELECT v3t1.c1, v3t1.c2, v3t1.c3, v3t1.c4 FROM s1.t1 v3t1 JOIN s1.t2 v3t2 ON(v3t1.c1 = v3t2.c1) JOIN s1.t3 v3t3 ON(v3t1.c1 = v3t3.c1);
106
107 ANALYZE;
108
109 CREATE FUNCTION s1.f1 () RETURNS s1.t1 AS $$
110 VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')
111 $$ LANGUAGE sql;