Fix misleading error message context
authorPeter Eisentraut <[email protected]>
Thu, 5 Sep 2024 13:19:00 +0000 (15:19 +0200)
committerPeter Eisentraut <[email protected]>
Thu, 5 Sep 2024 13:19:00 +0000 (15:19 +0200)
Author: Pavel Stehule <[email protected]>
Reviewed-by: Stepan Neretin <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/CAFj8pRAw+OkVW=FgMKHKyvY3CgtWy3cWdY7XT+S5TJaTttu=oA@mail.gmail.com

src/backend/executor/spi.c
src/pl/plpgsql/src/expected/plpgsql_record.out
src/pl/plpgsql/src/expected/plpgsql_varprops.out
src/test/regress/expected/plpgsql.out

index d6516b1bca3a7ba9a072e5c14b230fbf8527ed1f..90d98345764ba454a23a8608237c7af0bf989a8d 100644 (file)
@@ -2978,7 +2978,7 @@ _SPI_error_callback(void *arg)
        switch (carg->mode)
        {
            case RAW_PARSE_PLPGSQL_EXPR:
-               errcontext("SQL expression \"%s\"", query);
+               errcontext("PL/pgSQL expression \"%s\"", query);
                break;
            case RAW_PARSE_PLPGSQL_ASSIGN1:
            case RAW_PARSE_PLPGSQL_ASSIGN2:
index a9b5b778efcc7edd8ed4691fac900d5c780e4a31..6974c8f4a441c137f1483ae0811c0fc7ef0eef67 100644 (file)
@@ -272,7 +272,7 @@ NOTICE:  r1.q1 = <NULL>
 NOTICE:  r1.q2 = <NULL>
 NOTICE:  r1 = <NULL>
 ERROR:  record "r1" has no field "nosuchfield"
-CONTEXT:  SQL expression "r1.nosuchfield"
+CONTEXT:  PL/pgSQL expression "r1.nosuchfield"
 PL/pgSQL function inline_code_block line 7 at RAISE
 -- records, not so much
 do $$
@@ -286,7 +286,7 @@ end$$;
 NOTICE:  r1 = <NULL>
 ERROR:  record "r1" is not assigned yet
 DETAIL:  The tuple structure of a not-yet-assigned record is indeterminate.
-CONTEXT:  SQL expression "r1.f1"
+CONTEXT:  PL/pgSQL expression "r1.f1"
 PL/pgSQL function inline_code_block line 5 at RAISE
 -- but OK if you assign first
 do $$
@@ -304,7 +304,7 @@ NOTICE:  r1.f1 = 1
 NOTICE:  r1.f2 = 2
 NOTICE:  r1 = (1,2)
 ERROR:  record "r1" has no field "nosuchfield"
-CONTEXT:  SQL expression "r1.nosuchfield"
+CONTEXT:  PL/pgSQL expression "r1.nosuchfield"
 PL/pgSQL function inline_code_block line 9 at RAISE
 -- check %type with block-qualified variable names
 do $$
@@ -598,7 +598,7 @@ create function getf3(x mutable) returns int language plpgsql as
 $$ begin return x.f3; end $$;
 select getf3(null::mutable);  -- doesn't work yet
 ERROR:  record "x" has no field "f3"
-CONTEXT:  SQL expression "x.f3"
+CONTEXT:  PL/pgSQL expression "x.f3"
 PL/pgSQL function getf3(mutable) line 1 at RETURN
 alter table mutable add column f3 int;
 select getf3(null::mutable);  -- now it works
index 25115a02bd85faa00a6bd3cc8cadc8c8464e56d2..958d7bca9a772efff4d6e37fe97dfb1cb4d02f94 100644 (file)
@@ -76,7 +76,7 @@ begin
   raise notice 'x = %', x;
 end$$;
 ERROR:  division by zero
-CONTEXT:  SQL expression "1/0"
+CONTEXT:  PL/pgSQL expression "1/0"
 PL/pgSQL function inline_code_block line 2 during statement block local variable initialization
 do $$
 declare x bigint[] := array[1,3,5];
index 074af8f33a8e45207216a262dbff2f339a0a6fed..0a6945581bd8e27b92499a656a6752d272f901ca 100644 (file)
@@ -2388,7 +2388,7 @@ begin
 end $$ language plpgsql;
 select namedparmcursor_test7();
 ERROR:  division by zero
-CONTEXT:  SQL expression "42/0 AS p1, 77 AS p2"
+CONTEXT:  PL/pgSQL expression "42/0 AS p1, 77 AS p2"
 PL/pgSQL function namedparmcursor_test7() line 6 at OPEN
 -- check that line comments work correctly within the argument list
 -- (this used to require a special hack in the code; it no longer does,
@@ -4563,11 +4563,11 @@ end
 $$;
 select fail();
 ERROR:  division by zero
-CONTEXT:  SQL expression "1/0"
+CONTEXT:  PL/pgSQL expression "1/0"
 PL/pgSQL function fail() line 3 at RETURN
 select fail();
 ERROR:  division by zero
-CONTEXT:  SQL expression "1/0"
+CONTEXT:  PL/pgSQL expression "1/0"
 PL/pgSQL function fail() line 3 at RETURN
 drop function fail();
 -- Test handling of string literals.