OSDN Git Service

98caf68846a2f69c69aeb935d0e7da73bedfc145
[pghintplan/pg_hint_plan.git] / sql / ut-T.sql
1 -- ut-T: tests for table hints
2 -- This test is focusing on hint retrieval from table
3
4 LOAD 'pg_hint_plan';
5 SET pg_hint_plan.enable_hint TO on;
6 SET pg_hint_plan.debug_print TO on;
7 SET client_min_messages TO LOG;
8 SET search_path TO public;
9
10 -- test for get_query_string
11 INSERT INTO hint_plan.hints VALUES(DEFAULT,'EXPLAIN SELECT * FROM t1 WHERE id = ?;', '', 'SeqScan(t1)');
12 INSERT INTO hint_plan.hints VALUES(DEFAULT,'PREPARE p1 AS SELECT * FROM t1 WHERE id = ?;', '', 'SeqScan(t1)');
13 INSERT INTO hint_plan.hints VALUES(DEFAULT,'EXPLAIN DECLARE c1 CURSOR FOR SELECT * FROM t1 WHERE id = ?;', '', 'SeqScan(t1)');
14 INSERT INTO hint_plan.hints VALUES(DEFAULT,'EXPLAIN CREATE TABLE ct1 AS SELECT * FROM t1 WHERE id = ?;', '', 'SeqScan(t1)');
15
16 PREPARE p1 AS SELECT * FROM t1 WHERE id = 100;
17
18 -- These queries uses IndexScan without hints
19 SET pg_hint_plan.enable_hint_table to off;
20 EXPLAIN SELECT * FROM t1 WHERE id = 100;
21 EXPLAIN DECLARE c1 CURSOR FOR SELECT * FROM t1 WHERE id = 100;
22 EXPLAIN CREATE TABLE ct1 AS SELECT * FROM t1 WHERE id = 100;
23
24 EXPLAIN EXECUTE p1;
25 DEALLOCATE p1;
26 PREPARE p1 AS SELECT * FROM t1 WHERE id = 100;
27 EXPLAIN CREATE TABLE ct1 AS EXECUTE p1;
28
29 DEALLOCATE p1;
30 PREPARE p1 AS SELECT * FROM t1 WHERE id = 100;
31
32 -- Forced to use SeqScan by table hints
33 SET pg_hint_plan.enable_hint_table to on;
34 EXPLAIN SELECT * FROM t1 WHERE id = 100;
35 EXPLAIN DECLARE c1 CURSOR FOR SELECT * FROM t1 WHERE id = 100;
36 EXPLAIN CREATE TABLE ct1 AS SELECT * FROM t1 WHERE id = 100;
37 EXPLAIN EXECUTE p1;
38 DEALLOCATE p1;
39 PREPARE p1 AS SELECT * FROM t1 WHERE id = 100;
40 EXPLAIN CREATE TABLE ct1 AS EXECUTE p1;
41
42 DEALLOCATE p1;
43
44 SET pg_hint_plan.enable_hint_table to off;
45 DELETE FROM hint_plan.hints;