OSDN Git Service

Support DECLARE CURSOR syntax and added regression for table hinting.
[pghintplan/pg_hint_plan.git] / sql / init.sql
1 SET search_path TO public;
2
3 CREATE EXTENSION pg_hint_plan;
4 CREATE SCHEMA s0;
5
6 CREATE TABLE t1 (id int PRIMARY KEY, val int);
7 CREATE TABLE t2 (id int PRIMARY KEY, val int);
8 CREATE TABLE t3 (id int PRIMARY KEY, val int);
9 CREATE TABLE t4 (id int PRIMARY KEY, val int);
10 CREATE TABLE t5 (id int PRIMARY KEY, val int);
11 CREATE TABLE p1 (id int PRIMARY KEY, val int);
12 CREATE TABLE p1_c1 (LIKE p1 INCLUDING ALL, CHECK (id <= 100)) INHERITS(p1);
13 CREATE TABLE p1_c2 (LIKE p1 INCLUDING ALL, CHECK (id > 100 AND id <= 200)) INHERITS(p1);
14 CREATE TABLE p1_c3 (LIKE p1 INCLUDING ALL, CHECK (id > 200 AND id <= 300)) INHERITS(p1);
15 CREATE TABLE p1_c4 (LIKE p1 INCLUDING ALL, CHECK (id > 300)) INHERITS(p1);
16 CREATE TABLE p1_c1_c1 (LIKE p1 INCLUDING ALL, CHECK (id <= 50)) INHERITS(p1_c1);
17 CREATE TABLE p1_c1_c2 (LIKE p1 INCLUDING ALL, CHECK (id > 50 AND id <= 100)) INHERITS(p1_c1);
18 CREATE TABLE p1_c3_c1 (LIKE p1 INCLUDING ALL, CHECK (id > 200 AND id <= 250)) INHERITS(p1_c3);
19 CREATE TABLE p1_c3_c2 (LIKE p1 INCLUDING ALL, CHECK (id > 250 AND id <= 300)) INHERITS(p1_c3);
20 CREATE TABLE p2 (id int PRIMARY KEY, val text);
21 CREATE INDEX p2_id_val_idx ON p2 (id, val);
22 CREATE UNIQUE INDEX p2_val_idx ON p2 (val);
23 CREATE INDEX p2_ununi_id_val_idx ON p2 (val);
24 CREATE INDEX p2_val_idx_1 ON p2 USING hash (val);
25 CREATE INDEX p2_val_id_idx ON p2 (val, id);
26 CREATE INDEX p2_val_idx2 ON p2 (val COLLATE "ja_JP");
27 CREATE INDEX p2_val_idx3 ON p2 (val varchar_ops);
28 CREATE INDEX p2_val_idx4 ON p2 (val DESC NULLS LAST);
29 CREATE INDEX p2_val_idx5 ON p2 (val NULLS FIRST);
30 CREATE INDEX p2_expr ON p2 ((val < '120'));
31 CREATE INDEX p2_expr2 ON p2 ((id * 2 < 120));
32 CREATE INDEX p2_val_idx6 ON p2 (val) WHERE val >= '50' AND val < '51';
33 CREATE INDEX p2_val_idx7 ON p2 (val) WHERE id < 120;
34 CREATE TABLE p2_c1 (LIKE p2 INCLUDING ALL, CHECK (id <= 100)) INHERITS(p2);
35 CREATE TABLE p2_c2 (LIKE p2 INCLUDING ALL, CHECK (id > 100 AND id <= 200)) INHERITS(p2);
36 CREATE TABLE p2_c3 (LIKE p2 INCLUDING ALL, CHECK (id > 200 AND id <= 300)) INHERITS(p2);
37 CREATE TABLE p2_c4 (LIKE p2 INCLUDING ALL, CHECK (id > 300)) INHERITS(p2);
38 CREATE TABLE p2_c1_c1 (LIKE p2 INCLUDING ALL, CHECK (id <= 50)) INHERITS(p2_c1);
39 CREATE TABLE p2_c1_c2 (LIKE p2 INCLUDING ALL, CHECK (id > 50 AND id <= 100)) INHERITS(p2_c1);
40 CREATE TABLE p2_c3_c1 (LIKE p2 INCLUDING ALL, CHECK (id > 200 AND id <= 250)) INHERITS(p2_c3);
41 CREATE TABLE p2_c3_c2 (LIKE p2 INCLUDING ALL, CHECK (id > 250 AND id <= 300)) INHERITS(p2_c3);
42 CREATE TABLE s0.t1 (id int PRIMARY KEY, val int);
43
44 INSERT INTO t1 SELECT i, i % 100 FROM (SELECT generate_series(1, 10000) i) t;
45 INSERT INTO t2 SELECT i, i % 10 FROM (SELECT generate_series(1, 1000) i) t;
46 INSERT INTO t3 SELECT i, i FROM (SELECT generate_series(1, 100) i) t;
47 INSERT INTO t4 SELECT i, i FROM (SELECT generate_series(1, 10) i) t;
48 INSERT INTO t5 SELECT i, i % 100 FROM (SELECT generate_series(1, 10000) i) t;
49 INSERT INTO p1_c1_c1 SELECT i, i % 100 FROM (SELECT generate_series(1, 50) i) t;
50 INSERT INTO p1_c1_c2 SELECT i, i % 100 FROM (SELECT generate_series(51, 100) i) t;
51 INSERT INTO p1_c2 SELECT i, i % 100 FROM (SELECT generate_series(101, 200) i) t;
52 INSERT INTO p1_c3_c1 SELECT i, i % 100 FROM (SELECT generate_series(201, 250) i) t;
53 INSERT INTO p1_c3_c2 SELECT i, i % 100 FROM (SELECT generate_series(251, 300) i) t;
54 INSERT INTO p1_c4 SELECT i, i % 100 FROM (SELECT generate_series(301, 400) i) t;
55 INSERT INTO p2_c1_c1 SELECT i, i % 100 FROM (SELECT generate_series(1, 50) i) t;
56 INSERT INTO p2_c1_c2 SELECT i, i % 100 FROM (SELECT generate_series(51, 100) i) t;
57 INSERT INTO p2_c2 SELECT i, i % 100 FROM (SELECT generate_series(101, 200) i) t;
58 INSERT INTO p2_c3_c1 SELECT i, i % 100 FROM (SELECT generate_series(201, 250) i) t;
59 INSERT INTO p2_c3_c2 SELECT i, i % 100 FROM (SELECT generate_series(251, 300) i) t;
60 INSERT INTO p2_c4 SELECT i, i % 100 FROM (SELECT generate_series(301, 400) i) t;
61
62 CREATE INDEX t1_val ON t1 (val);
63 CREATE INDEX t2_val ON t2 (val);
64 CREATE INDEX t5_id1 ON t5 (id);
65 CREATE INDEX t5_id2 ON t5 (id);
66 CREATE INDEX t5_id3 ON t5 (id);
67 CREATE INDEX t5_val ON t5 (val);
68 DROP INDEX p2_c4_val_id_idx;
69 CREATE INDEX p2_id2_val ON p2 (id, id, val);
70 CREATE INDEX p2_c1_id2_val ON p2_c1 (id, id, val);
71 CREATE INDEX p2_c2_id2_val ON p2_c2 (id, id, val);
72 CREATE INDEX p2_val2_id ON p2 (val, id, val);
73 CREATE INDEX t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ON t5 (id);
74 CREATE INDEX p1_val1 ON p1 (val);
75 CREATE INDEX p1_val2 ON p1 (val);
76 CREATE INDEX p1_val3 ON p1 (val);
77 CREATE INDEX p1_c1_val1 ON p1_c1 (val);
78 CREATE INDEX p1_c1_val2 ON p1_c1 (val);
79 CREATE INDEX p1_c1_val3 ON p1_c1 (val);
80 CREATE INDEX p1_c1_c1_val1 ON p1_c1_c1 (val);
81 CREATE INDEX p1_c1_c1_val2 ON p1_c1_c1 (val);
82 CREATE INDEX p1_c1_c1_val3 ON p1_c1_c1 (val);
83 CREATE INDEX p1_c1_c2_val1 ON p1_c1_c2 (val);
84 CREATE INDEX p1_c1_c2_val2 ON p1_c1_c2 (val);
85 CREATE INDEX p1_c1_c2_val3 ON p1_c1_c2 (val);
86 CREATE INDEX p1_c2_val1 ON p1_c2 (val);
87 CREATE INDEX p1_c2_val2 ON p1_c2 (val);
88 CREATE INDEX p1_c2_val3 ON p1_c2 (val);
89 CREATE INDEX p1_c3_val1 ON p1_c3 (val);
90 CREATE INDEX p1_c3_val2 ON p1_c3 (val);
91 CREATE INDEX p1_c3_val3 ON p1_c3 (val);
92 CREATE INDEX p1_c3_c1_val1 ON p1_c3_c1 (val);
93 CREATE INDEX p1_c3_c1_val2 ON p1_c3_c1 (val);
94 CREATE INDEX p1_c3_c1_val3 ON p1_c3_c1 (val);
95 CREATE INDEX p1_c3_c2_val1 ON p1_c3_c2 (val);
96 CREATE INDEX p1_c3_c2_val2 ON p1_c3_c2 (val);
97 CREATE INDEX p1_c3_c2_val3 ON p1_c3_c2 (val);
98 CREATE INDEX p1_c4_val1 ON p1_c4 (val);
99 CREATE INDEX p1_c4_val2 ON p1_c4 (val);
100 CREATE INDEX p1_c4_val3 ON p1_c4 (val);
101
102 ANALYZE t1;
103 ANALYZE t2;
104 ANALYZE t3;
105 ANALYZE t4;
106 ANALYZE t5;
107 ANALYZE p1;
108 ANALYZE p1_c1;
109 ANALYZE p1_c2;
110 ANALYZE p2;
111
112 CREATE VIEW v1 AS SELECT id, val FROM t1;
113 CREATE VIEW v2 AS SELECT t1.id t1_id, t1.val t1_val, t2.id t2_id, t2.val t2_val FROM t1, t2 WHERE t1.id = t2.id;
114 CREATE VIEW v3 AS SELECT t_1.id t1_id, t_1.val t1_val, t_2.id t2_id, t_2.val t2_val FROM t1 t_1, t2 t_2 WHERE t_1.id = t_2.id;
115 CREATE VIEW v4 AS SELECT v_2.t1_id, t_3.id FROM v2 v_2, t3 t_3 WHERE v_2.t1_id = t_3.id;
116
117 /*
118  * The following GUC parameters need the setting of the default value to
119  * succeed in regression test.
120  */
121
122 /* Fix auto-tunable parameters */
123 ALTER SYSTEM SET effective_cache_size TO 16384;
124 SELECT pg_reload_conf();
125 SET effective_cache_size TO 16384;
126
127 CREATE VIEW settings AS
128 SELECT name, setting, category
129   FROM pg_settings
130  WHERE category LIKE 'Query Tuning%'
131     OR name = 'client_min_messages'
132  ORDER BY category, name;
133 SELECT * FROM settings;
134
135 ANALYZE;