postgrespro.git / summary / log / commit / refs
commit d4feadeca1591fd5fe91bdf73a7897553f5366d7
Author: Peter Eisentraut <peter@eisentraut.org>
Date: Fri Nov 29 08:10:17 2019 +0000
Add error position to an error message
Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/6e7aa4a1-be6a-1a75-b1f9-83a678e5184a@2ndquadrant.com
src/backend/commands/prepare.c | 3 ++-
src/test/regress/expected/prepare.out | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c
index 7e0a041fab..47bae957dc 100644
--- a/src/backend/commands/prepare.c
+++ b/src/backend/commands/prepare.c
@@ -381,7 +381,8 @@ EvaluateParams(PreparedStatement *pstmt, List *params,
i + 1,
format_type_be(given_type_id),
format_type_be(expected_type_id)),
- errhint("You will need to rewrite or cast the expression.")));
+ errhint("You will need to rewrite or cast the expression."),
+ parser_errposition(pstate, exprLocation(lfirst(l)))));
/* Take care of collations in the finished expression. */
assign_expr_collations(pstate, expr);
diff --git a/src/test/regress/expected/prepare.out b/src/test/regress/expected/prepare.out
index 717732300d..3306c696b1 100644
--- a/src/test/regress/expected/prepare.out
+++ b/src/test/regress/expected/prepare.out
@@ -113,6 +113,8 @@ DETAIL: Expected 5 parameters but got 6.
-- wrong param types
EXECUTE q3(5::smallint, 10.5::float, false, 4::bigint, 'bytea');
ERROR: parameter $3 of type boolean cannot be coerced to the expected type double precision
+LINE 1: EXECUTE q3(5::smallint, 10.5::float, false, 4::bigint, 'byte...
+ ^
HINT: You will need to rewrite or cast the expression.
-- invalid type
PREPARE q4(nonexistenttype) AS SELECT $1;
[parent: c60e520f6e0e]