Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Add error position to an error message
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 29 Nov 2019 08:10:17 +0000 (09:10 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 29 Nov 2019 08:10:17 +0000 (09:10 +0100)
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
src/test/regress/expected/prepare.out

index 7e0a041fabfdb12c3d23c3f9208d60e7dfcca481..47bae957dc4fab75939cbff544f1751ba07617d9 100644 (file)
@@ -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);
index 717732300d1469ca37833308c38ffdacf6be50bc..3306c696b17bf8718a6d0d5a72be3a872e10114a 100644 (file)
@@ -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;