11-- Regression tests for prepareable statements. We query the content
22-- of the pg_prepared_statements view as prepared statements are
33-- 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+ ------+-----------+-----------------+--------------
77(0 rows)
88
99PREPARE q1 AS SELECT 1 AS a;
@@ -13,10 +13,10 @@ EXECUTE q1;
1313 1
1414(1 row)
1515
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}
2020(1 row)
2121
2222-- should fail
@@ -32,26 +32,26 @@ EXECUTE q1;
3232(1 row)
3333
3434PREPARE 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}
4040(2 rows)
4141
4242-- sql92 syntax
4343DEALLOCATE 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}
4848(1 row)
4949
5050DEALLOCATE PREPARE q2;
5151-- 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+ ------+-----------+-----------------+--------------
5555(0 rows)
5656
5757-- parameterized queries
@@ -159,24 +159,24 @@ PREPARE q6 AS
159159 SELECT * FROM tenk1 WHERE unique1 = $1 AND stringu1 = $2;
160160PREPARE q7(unknown) AS
161161 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
163163 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; | |
180180(5 rows)
181181
182182-- test DEALLOCATE ALL;
0 commit comments