OSDN Git Service

Support prepared statements on extended protocol
[pghintplan/pg_hint_plan.git] / sql / ut-G.sql
1 LOAD 'pg_hint_plan';
2 SET pg_hint_plan.enable_hint TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6
7 ----
8 ---- No. G-1-1 RULE definition table
9 ----
10
11 -- No. G-1-1-1
12 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
13 /*+
14 Set(enable_tidscan off)Set(enable_nestloop off)
15 */
16 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
17 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
18 /*+
19 Set(enable_tidscan off)Set(enable_nestloop off)
20 */
21 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
22
23 -- No. G-1-1-2
24 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
25 /*+
26 Set(enable_tidscan off)Set(enable_nestloop off)
27 */
28 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
29 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
30 /*+
31 Set(enable_tidscan off)Set(enable_nestloop off)
32 */
33 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
34
35 -- No. G-1-1-3
36 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
37 /*+
38 Set(enable_tidscan off)Set(enable_nestloop off)
39 */
40 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
41 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
42 /*+
43 Set(enable_tidscan off)Set(enable_nestloop off)
44 */
45 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
46
47 RESET client_min_messages;
48
49 ----
50 ---- No. G-2-1 GUC parameter
51 ----
52
53 -- No. G-2-1-3
54 /*+Set(1234567890123456789012345678901234567890123456789012345678901234 1)*/
55 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
56
57 -- No. G-2-1-4
58 /*+Set(constraint_exclusion 1234567890123456789012345678901234567890123456789012345678901234)*/
59 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
60
61 ----
62 ---- No. G-2-2 category of GUC parameter and role
63 ----
64
65 -- No. G-2-2-1
66 SET ROLE super_user;
67 /*+Set(block_size 16384)*/
68 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
69
70 -- No. G-2-2-2
71 /*+Set(archive_mode off)*/
72 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
73
74 -- No. G-2-2-3
75 /*+Set(archive_timeout 0)*/
76 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
77
78 -- No. G-2-2-4
79 /*+Set(log_connections off)*/
80 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
81
82 -- No. G-2-2-5
83 /*+Set(log_min_messages WARNING)*/
84 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
85 RESET ROLE;
86
87 -- No. G-2-2-6
88 GRANT ALL ON SCHEMA s1 TO PUBLIC;
89 GRANT SELECT ON ALL TABLES IN SCHEMA s1 TO normal_user;
90 SET ROLE normal_user;
91 /*+Set(log_min_messages WARNING)*/
92 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
93
94 -- No. G-2-2-7
95 /*+Set(enable_seqscan on)*/
96 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
97
98 RESET ROLE;
99 REVOKE SELECT ON ALL TABLES IN SCHEMA s1 FROM normal_user;
100 REVOKE ALL ON SCHEMA s1 FROM PUBLIC;
101
102 ----
103 ---- No. G-2-3 conflict set hint
104 ----
105
106 SET client_min_messages TO LOG;
107 -- No. G-2-3-1
108 /*+Set(enable_indexscan on)Set(enable_indexscan off)*/
109 SELECT * FROM s1.t1 WHERE false;
110
111 -- No. G-2-3-2
112 /*+Set(client_min_messages DEBUG5)Set(client_min_messages WARNING)Set(client_min_messages DEBUG2)*/
113 SELECT * FROM s1.t1 WHERE false;
114
115 -- No. G-2-3-3
116 /*+Set(enable_indexscan on)Set(enable_indexscan o)*/
117 SELECT * FROM s1.t1 WHERE false;
118
119 -- No. G-2-3-4
120 /*+Set(client_min_messages DEBUG5)Set(client_min_messages WARNING)Set(client_min_messages DEBU)*/
121 SELECT * FROM s1.t1 WHERE false;
122
123 ----
124 ---- No. G-2-4 debug message
125 ----
126
127 -- No. G-2-4-1
128 /*+SeqScan(a)IndexScan(a)SeqScan(c)NestLoop(a) */
129 SELECT * FROM s1.t1 a, s1.t2 b WHERE false;