OSDN Git Service

VALUESにSeqScan以外のスキャンヒントを指定すると異常終了するバグを修正した。
[pghintplan/pg_hint_plan.git] / sql / pg_hint_plan.sql
1 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
2 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.val = t2.val;
3
4 LOAD 'pg_hint_plan';
5
6 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
7 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.val = t2.val;
8
9 /* Test (t1 t2) */
10 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
11 SET pg_hint_plan.enable TO off;
12 /* Test (t1 t2) */
13 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
14 SET pg_hint_plan.enable TO on;
15
16 /*Set(enable_indexscan off)*/
17 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
18 /* Set(enable_indexscan off) Set(enable_hashjoin off) */
19 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
20
21 /*       Set     (       enable_indexscan        off     )       */
22 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
23 /*       
24                 Set      
25                 (        
26                 enable_indexscan         
27                 off      
28                 )        
29                 */              
30 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
31 /* Set(enable_indexscan off)Set(enable_nestloop off)Set(enable_mergejoin off)           
32                 Set(enable_seqscan off)
33                 */
34 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
35 /*Set(work_mem "1M")*/
36 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
37 /*Set(work_mem "1MB")*/
38 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
39 /*Set(work_mem TO "1MB")*/
40 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
41
42 /*SeqScan(t1 t2)*/
43 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
44 /*SeqScan(t1)*/
45 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
46 /*SeqScan(t1)IndexScan(t2)*/
47 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
48 /*BitmapScan(t2)*/
49 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
50 /*BitmapScan(t2)NoSeqScan(t1)*/
51 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
52 /*NoIndexScan(t1)*/
53 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
54
55 /*NoBitmapScan(t1)*/
56 EXPLAIN (COSTS false) SELECT * FROM t1, t4 WHERE t1.val < 10;
57 /*TidScan(t4)*/
58 EXPLAIN (COSTS false) SELECT * FROM t3, t4 WHERE t3.id = t4.id AND t4.ctid = '(1,1)';
59 /*NoTidScan(t1)*/
60 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)';
61
62 /*HashJoin(t1 t2)*/
63 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
64 /*NestLoop(t1 t2)*/
65 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
66 /*NoMergeJoin(t1 t2)*/
67 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
68
69 /*MergeJoin(t1 t3)*/
70 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
71 /*NestLoop(t1 t3)*/
72 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
73 /*NoHashJoin(t1 t3)*/
74 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
75
76 /*MergeJoin(t4 t1 t2 t3)*/
77 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
78 /*HashJoin(t3 t4 t1 t2)*/
79 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
80 /*NestLoop(t2 t3 t4 t1) IndexScan(t3)*/
81 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
82 /*NoNestLoop(t4 t1 t3 t2)*/
83 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
84
85 /*Leading(t3 t4)*/
86 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
87 /*Leading(t3 t4 t1)*/
88 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
89 /*Leading(t3 t4 t1 t2)*/
90 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
91 /*Leading(t3 t4 t1 t2 t1)*/
92 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
93 /*Leading(t3 t4 t4)*/
94 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
95
96 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
97 /*HashJoin(t1 t2)*/
98 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
99 /*HashJoin(t1 *VALUES*)*/
100 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
101 /*HashJoin(t1 *VALUES*) IndexScan(t1) IndexScan(*VALUES*)*/
102 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;