summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorPeter Eisentraut2022-07-05 08:26:36 +0000
committerPeter Eisentraut2022-07-05 08:26:36 +0000
commit6ffff0fd225432fe2ae4bd5abb7ff6113e255418 (patch)
treef91bd8fc1216b34cace2ac81a5aeab6ec3fb8cb8 /src/test
parente3dd7c06e62774628e102c3cd47ee46e85519de7 (diff)
Fix pg_prepared_statements.result_types for DML statements
Amendment to 84ad713cf85aeffee5dd39f62d49a1b9e34632da: Not all prepared statements have a result descriptor. As currently coded, this would crash when reading pg_prepared_statements. Make those cases return null for result_types instead. Also add a test case for it.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/prepare.out7
-rw-r--r--src/test/regress/sql/prepare.sql4
2 files changed, 10 insertions, 1 deletions
diff --git a/src/test/regress/expected/prepare.out b/src/test/regress/expected/prepare.out
index faf07f620bd..5815e17b39c 100644
--- a/src/test/regress/expected/prepare.out
+++ b/src/test/regress/expected/prepare.out
@@ -159,6 +159,9 @@ PREPARE q6 AS
SELECT * FROM tenk1 WHERE unique1 = $1 AND stringu1 = $2;
PREPARE q7(unknown) AS
SELECT * FROM road WHERE thepath = $1;
+-- DML statements
+PREPARE q8 AS
+ UPDATE tenk1 SET stringu1 = $2 WHERE unique1 = $1;
SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements
ORDER BY name;
name | statement | parameter_types | result_types
@@ -177,7 +180,9 @@ SELECT name, statement, parameter_types, result_types FROM pg_prepared_statement
| SELECT * FROM tenk1 WHERE unique1 = $1 AND stringu1 = $2; | |
q7 | PREPARE q7(unknown) AS +| {path} | {text,path}
| SELECT * FROM road WHERE thepath = $1; | |
-(5 rows)
+ q8 | PREPARE q8 AS +| {integer,name} |
+ | UPDATE tenk1 SET stringu1 = $2 WHERE unique1 = $1; | |
+(6 rows)
-- test DEALLOCATE ALL;
DEALLOCATE ALL;
diff --git a/src/test/regress/sql/prepare.sql b/src/test/regress/sql/prepare.sql
index 55eef91d2af..c6098dc95ce 100644
--- a/src/test/regress/sql/prepare.sql
+++ b/src/test/regress/sql/prepare.sql
@@ -71,6 +71,10 @@ PREPARE q6 AS
PREPARE q7(unknown) AS
SELECT * FROM road WHERE thepath = $1;
+-- DML statements
+PREPARE q8 AS
+ UPDATE tenk1 SET stringu1 = $2 WHERE unique1 = $1;
+
SELECT name, statement, parameter_types, result_types FROM pg_prepared_statements
ORDER BY name;