1
1
-- Regression tests for prepareable statements. We query the content
2
2
-- of the pg_prepared_statements view as prepared statements are
3
3
-- created and removed.
4
- SELECT name, statement, parameter_types FROM pg_prepared_statements;
5
- name | statement | parameter_types
6
- ------+-----------+-----------------
4
+ SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements;
5
+ name | statement | parameter_types | result_types
6
+ ------+-----------+-----------------+--------------
7
7
(0 rows)
8
8
9
9
PREPARE q1 AS SELECT 1 AS a;
@@ -13,10 +13,10 @@ EXECUTE q1;
13
13
1
14
14
(1 row)
15
15
16
- SELECT name, statement, parameter_types FROM pg_prepared_statements;
17
- name | statement | parameter_types
18
- ------+------------------------------+-----------------
19
- q1 | PREPARE q1 AS SELECT 1 AS a; | {}
16
+ SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements;
17
+ name | statement | parameter_types | result_types
18
+ ------+------------------------------+-----------------+--------------
19
+ q1 | PREPARE q1 AS SELECT 1 AS a; | {} | {integer}
20
20
(1 row)
21
21
22
22
-- should fail
@@ -32,26 +32,26 @@ EXECUTE q1;
32
32
(1 row)
33
33
34
34
PREPARE q2 AS SELECT 2 AS b;
35
- SELECT name, statement, parameter_types FROM pg_prepared_statements;
36
- name | statement | parameter_types
37
- ------+------------------------------+-----------------
38
- q1 | PREPARE q1 AS SELECT 2; | {}
39
- q2 | PREPARE q2 AS SELECT 2 AS b; | {}
35
+ SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements;
36
+ name | statement | parameter_types | result_types
37
+ ------+------------------------------+-----------------+--------------
38
+ q1 | PREPARE q1 AS SELECT 2; | {} | {integer}
39
+ q2 | PREPARE q2 AS SELECT 2 AS b; | {} | {integer}
40
40
(2 rows)
41
41
42
42
-- sql92 syntax
43
43
DEALLOCATE PREPARE q1;
44
- SELECT name, statement, parameter_types FROM pg_prepared_statements;
45
- name | statement | parameter_types
46
- ------+------------------------------+-----------------
47
- q2 | PREPARE q2 AS SELECT 2 AS b; | {}
44
+ SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements;
45
+ name | statement | parameter_types | result_types
46
+ ------+------------------------------+-----------------+--------------
47
+ q2 | PREPARE q2 AS SELECT 2 AS b; | {} | {integer}
48
48
(1 row)
49
49
50
50
DEALLOCATE PREPARE q2;
51
51
-- the view should return the empty set again
52
- SELECT name, statement, parameter_types FROM pg_prepared_statements;
53
- name | statement | parameter_types
54
- ------+-----------+-----------------
52
+ SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements;
53
+ name | statement | parameter_types | result_types
54
+ ------+-----------+-----------------+--------------
55
55
(0 rows)
56
56
57
57
-- parameterized queries
@@ -159,24 +159,24 @@ PREPARE q6 AS
159
159
SELECT * FROM tenk1 WHERE unique1 = $1 AND stringu1 = $2;
160
160
PREPARE q7(unknown) AS
161
161
SELECT * FROM road WHERE thepath = $1;
162
- SELECT name, statement, parameter_types FROM pg_prepared_statements
162
+ SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements
163
163
ORDER BY name;
164
- name | statement | parameter_types
165
- ------+------------------------------------------------------------------+----------------------------------------------------
166
- q2 | PREPARE q2(text) AS +| {text}
167
- | SELECT datname, datistemplate, datallowconn +|
168
- | FROM pg_database WHERE datname = $1; |
169
- q3 | PREPARE q3(text, int, float, boolean, smallint) AS +| {text,integer,"double precision",boolean,smallint}
170
- | SELECT * FROM tenk1 WHERE string4 = $1 AND (four = $2 OR+|
171
- | ten = $3::bigint OR true = $4 OR odd = $5::int) +|
172
- | ORDER BY unique1; |
173
- q5 | PREPARE q5(int, text) AS +| {integer,text}
174
- | SELECT * FROM tenk1 WHERE unique1 = $1 OR stringu1 = $2 +|
175
- | ORDER BY unique1; |
176
- q6 | PREPARE q6 AS +| {integer,name}
177
- | SELECT * FROM tenk1 WHERE unique1 = $1 AND stringu1 = $2; |
178
- q7 | PREPARE q7(unknown) AS +| {path}
179
- | SELECT * FROM road WHERE thepath = $1; |
164
+ name | statement | parameter_types | result_types
165
+ ------+------------------------------------------------------------------+----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------
166
+ q2 | PREPARE q2(text) AS +| {text} | {name,boolean,boolean}
167
+ | SELECT datname, datistemplate, datallowconn +| |
168
+ | FROM pg_database WHERE datname = $1; | |
169
+ q3 | PREPARE q3(text, int, float, boolean, smallint) AS +| {text,integer,"double precision",boolean,smallint} | {integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,name,name,name}
170
+ | SELECT * FROM tenk1 WHERE string4 = $1 AND (four = $2 OR+| |
171
+ | ten = $3::bigint OR true = $4 OR odd = $5::int) +| |
172
+ | ORDER BY unique1; | |
173
+ q5 | PREPARE q5(int, text) AS +| {integer,text} | {integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,name,name,name}
174
+ | SELECT * FROM tenk1 WHERE unique1 = $1 OR stringu1 = $2 +| |
175
+ | ORDER BY unique1; | |
176
+ q6 | PREPARE q6 AS +| {integer,name} | {integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,integer,name,name,name}
177
+ | SELECT * FROM tenk1 WHERE unique1 = $1 AND stringu1 = $2; | |
178
+ q7 | PREPARE q7(unknown) AS +| {path} | {text,path}
179
+ | SELECT * FROM road WHERE thepath = $1; | |
180
180
(5 rows)
181
181
182
182
-- test DEALLOCATE ALL;
0 commit comments