OSDN Git Service

英語コメントを改定し、typoを修正した。
[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-2 category of GUC parameter and role
51 ----
52
53 -- No. G-2-2-1
54 SET ROLE super_user;
55 /*+Set(block_size 16384)*/
56 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
57
58 -- No. G-2-2-2
59 /*+Set(archive_mode off)*/
60 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
61
62 -- No. G-2-2-3
63 /*+Set(archive_timeout 0)*/
64 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
65
66 -- No. G-2-2-4
67 /*+Set(log_connections off)*/
68 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
69
70 -- No. G-2-2-5
71 /*+Set(log_min_messages WARNING)*/
72 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
73 RESET ROLE;
74
75 -- No. G-2-2-6
76 GRANT ALL ON SCHEMA s1 TO PUBLIC;
77 GRANT SELECT ON ALL TABLES IN SCHEMA s1 TO normal_user;
78 SET ROLE normal_user;
79 /*+Set(log_min_messages WARNING)*/
80 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
81
82 -- No. G-2-2-7
83 /*+Set(enable_seqscan on)*/
84 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
85
86 RESET ROLE;
87 REVOKE SELECT ON ALL TABLES IN SCHEMA s1 FROM normal_user;
88 REVOKE ALL ON SCHEMA s1 FROM PUBLIC;
89
90 ----
91 ---- No. G-2-3 conflict set hint
92 ----
93
94 SET client_min_messages TO LOG;
95 -- No. G-2-3-1
96 /*+Set(enable_indexscan on)Set(enable_indexscan off)*/
97 SELECT * FROM s1.t1 WHERE false;
98
99 -- No. G-2-3-2
100 /*+Set(client_min_messages DEBUG5)Set(client_min_messages WARNING)Set(client_min_messages DEBUG2)*/
101 SELECT * FROM s1.t1 WHERE false;
102
103 -- No. G-2-3-3
104 /*+Set(enable_indexscan on)Set(enable_indexscan o)*/
105 SELECT * FROM s1.t1 WHERE false;
106
107 -- No. G-2-3-4
108 /*+Set(client_min_messages DEBUG5)Set(client_min_messages WARNING)Set(client_min_messages DEBU)*/
109 SELECT * FROM s1.t1 WHERE false;
110
111 ----
112 ---- No. G-2-4 debug message
113 ----
114
115 -- No. G-2-4-1
116 /*+SeqScan(a)IndexScan(a)SeqScan(c)NestLoop(a) */
117 SELECT * FROM s1.t1 a, s1.t2 b WHERE false;