v20221223-1-0009-this-patch-changes-error-message-column-doesn-t-exis.patch
text/x-patch
Filename: v20221223-1-0009-this-patch-changes-error-message-column-doesn-t-exis.patch
Type: text/x-patch
Part: 1
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v20221223-0009
Subject: this patch changes error message "column doesn't exist" to message "column or variable doesn't exist"
| File | + | − |
|---|---|---|
| src/backend/parser/parse_expr.c | 1 | 1 |
| src/backend/parser/parse_relation.c | 19 | 5 |
| src/backend/parser/parse_target.c | 6 | 2 |
| src/include/parser/parse_expr.h | 1 | 0 |
| src/pl/plpgsql/src/expected/plpgsql_array.out | 1 | 1 |
| src/pl/plpgsql/src/expected/plpgsql_record.out | 2 | 2 |
| src/pl/tcl/expected/pltcl_queries.out | 6 | 6 |
| src/test/regress/expected/alter_table.out | 16 | 16 |
| src/test/regress/expected/copy2.out | 1 | 1 |
| src/test/regress/expected/errors.out | 4 | 4 |
| src/test/regress/expected/join.out | 6 | 6 |
| src/test/regress/expected/plpgsql.out | 6 | 6 |
| src/test/regress/expected/psql.out | 1 | 1 |
| src/test/regress/expected/rules.out | 1 | 1 |
| src/test/regress/expected/session_variables.out | 1 | 1 |
| src/test/regress/expected/transactions.out | 2 | 2 |
| src/test/regress/expected/union.out | 1 | 1 |
From 9bb12bf33b73d4e0729257249322df196b204bbe Mon Sep 17 00:00:00 2001
From: "okbob@github.com" <pavel.stehule@gmail.com>
Date: Thu, 24 Nov 2022 12:35:57 +0100
Subject: [PATCH 09/10] this patch changes error message "column doesn't exist"
to message "column or variable doesn't exist"
The error message will be more correct. Today, missing PL/pgSQL variable can be reported. The change has
impact on lot of regress tests not related to session variables, and then it is distributed as separate patch
---
src/backend/parser/parse_expr.c | 2 +-
src/backend/parser/parse_relation.c | 24 +++++++++++---
src/backend/parser/parse_target.c | 8 +++--
src/include/parser/parse_expr.h | 1 +
src/pl/plpgsql/src/expected/plpgsql_array.out | 2 +-
.../plpgsql/src/expected/plpgsql_record.out | 4 +--
src/pl/tcl/expected/pltcl_queries.out | 12 +++----
src/test/regress/expected/alter_table.out | 32 +++++++++----------
src/test/regress/expected/copy2.out | 2 +-
src/test/regress/expected/errors.out | 8 ++---
src/test/regress/expected/join.out | 12 +++----
src/test/regress/expected/plpgsql.out | 12 +++----
src/test/regress/expected/psql.out | 2 +-
src/test/regress/expected/rules.out | 2 +-
.../regress/expected/session_variables.out | 2 +-
src/test/regress/expected/transactions.out | 4 +--
src/test/regress/expected/union.out | 2 +-
17 files changed, 75 insertions(+), 56 deletions(-)
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 4ad8044791..dd944338b3 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -433,7 +433,7 @@ transformIndirection(ParseState *pstate, A_Indirection *ind)
* Returns true, when expression of kind allows using of
* session variables.
*/
-static bool
+bool
expr_kind_allows_session_variables(ParseExprKind p_expr_kind)
{
switch (p_expr_kind)
diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c
index b4878a92ea..c84f9c9413 100644
--- a/src/backend/parser/parse_relation.c
+++ b/src/backend/parser/parse_relation.c
@@ -27,6 +27,7 @@
#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
#include "parser/parse_enr.h"
+#include "parser/parse_expr.h"
#include "parser/parse_relation.h"
#include "parser/parse_type.h"
#include "parser/parsetree.h"
@@ -3614,6 +3615,19 @@ errorMissingRTE(ParseState *pstate, RangeVar *relation)
parser_errposition(pstate, relation->location)));
}
+/*
+ * set message "column does not exist" or "column or variable does not exist"
+ * in dependency if expression context allows session variables.
+ */
+static int
+column_or_variable_does_not_exists(ParseState *pstate, const char *colname)
+{
+ if (expr_kind_allows_session_variables(pstate->p_expr_kind))
+ return errmsg("column or variable \"%s\" does not exist", colname);
+ else
+ return errmsg("column \"%s\" does not exist", colname);
+}
+
/*
* Generate a suitable error about a missing column.
*
@@ -3648,7 +3662,7 @@ errorMissingColumn(ParseState *pstate,
(errcode(ERRCODE_UNDEFINED_COLUMN),
relname ?
errmsg("column %s.%s does not exist", relname, colname) :
- errmsg("column \"%s\" does not exist", colname),
+ column_or_variable_does_not_exists(pstate, colname),
errdetail("There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query.",
colname),
!relname ? errhint("Try using a table-qualified name.") : 0,
@@ -3658,7 +3672,7 @@ errorMissingColumn(ParseState *pstate,
(errcode(ERRCODE_UNDEFINED_COLUMN),
relname ?
errmsg("column %s.%s does not exist", relname, colname) :
- errmsg("column \"%s\" does not exist", colname),
+ column_or_variable_does_not_exists(pstate, colname),
errdetail("There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query.",
colname, state->rexact1->eref->aliasname),
rte_visible_if_lateral(pstate, state->rexact1) ?
@@ -3676,14 +3690,14 @@ errorMissingColumn(ParseState *pstate,
(errcode(ERRCODE_UNDEFINED_COLUMN),
relname ?
errmsg("column %s.%s does not exist", relname, colname) :
- errmsg("column \"%s\" does not exist", colname),
+ column_or_variable_does_not_exists(pstate, colname),
parser_errposition(pstate, location)));
/* Handle case where we have a single alternative spelling to offer */
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_COLUMN),
relname ?
errmsg("column %s.%s does not exist", relname, colname) :
- errmsg("column \"%s\" does not exist", colname),
+ column_or_variable_does_not_exists(pstate, colname),
errhint("Perhaps you meant to reference the column \"%s.%s\".",
state->rfirst->eref->aliasname,
strVal(list_nth(state->rfirst->eref->colnames,
@@ -3697,7 +3711,7 @@ errorMissingColumn(ParseState *pstate,
(errcode(ERRCODE_UNDEFINED_COLUMN),
relname ?
errmsg("column %s.%s does not exist", relname, colname) :
- errmsg("column \"%s\" does not exist", colname),
+ column_or_variable_does_not_exists(pstate, colname),
errhint("Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\".",
state->rfirst->eref->aliasname,
strVal(list_nth(state->rfirst->eref->colnames,
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index 84ef5b845f..7a6f76e48b 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -779,7 +779,9 @@ transformAssignmentIndirection(ParseState *pstate,
if (!typrelid)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type",
+ errmsg(expr_kind_allows_session_variables(pstate->p_expr_kind) ?
+ "cannot assign to field \"%s\" of column or variable \"%s\" because its type %s is not a composite type" :
+ "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type",
strVal(n), targetName,
format_type_be(targetTypeId)),
parser_errposition(pstate, location)));
@@ -788,7 +790,9 @@ transformAssignmentIndirection(ParseState *pstate,
if (attnum == InvalidAttrNumber)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_COLUMN),
- errmsg("cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s",
+ errmsg(expr_kind_allows_session_variables(pstate->p_expr_kind) ?
+ "cannot assign to field \"%s\" of column or variable \"%s\" because there is no such column in data type %s" :
+ "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s",
strVal(n), targetName,
format_type_be(targetTypeId)),
parser_errposition(pstate, location)));
diff --git a/src/include/parser/parse_expr.h b/src/include/parser/parse_expr.h
index 14b0adb948..76d6e46001 100644
--- a/src/include/parser/parse_expr.h
+++ b/src/include/parser/parse_expr.h
@@ -22,5 +22,6 @@ extern PGDLLIMPORT bool session_variables_ambiguity_warning;
extern Node *transformExpr(ParseState *pstate, Node *expr, ParseExprKind exprKind);
extern const char *ParseExprKindName(ParseExprKind exprKind);
+extern bool expr_kind_allows_session_variables(ParseExprKind p_expr_kind);
#endif /* PARSE_EXPR_H */
diff --git a/src/pl/plpgsql/src/expected/plpgsql_array.out b/src/pl/plpgsql/src/expected/plpgsql_array.out
index 9e22e56f00..e131febf3d 100644
--- a/src/pl/plpgsql/src/expected/plpgsql_array.out
+++ b/src/pl/plpgsql/src/expected/plpgsql_array.out
@@ -41,7 +41,7 @@ NOTICE: a = {"(,11)"}, a[1].i = 11
-- perhaps this ought to work, but for now it doesn't:
do $$ declare a complex[];
begin a[1:2].i := array[11,12]; raise notice 'a = %', a; end$$;
-ERROR: cannot assign to field "i" of column "a" because its type complex[] is not a composite type
+ERROR: cannot assign to field "i" of column or variable "a" because its type complex[] is not a composite type
LINE 1: a[1:2].i := array[11,12]
^
QUERY: a[1:2].i := array[11,12]
diff --git a/src/pl/plpgsql/src/expected/plpgsql_record.out b/src/pl/plpgsql/src/expected/plpgsql_record.out
index afb922df29..f702c7ad54 100644
--- a/src/pl/plpgsql/src/expected/plpgsql_record.out
+++ b/src/pl/plpgsql/src/expected/plpgsql_record.out
@@ -135,7 +135,7 @@ ERROR: record "c" has no field "x"
CONTEXT: PL/pgSQL assignment "c.x.q1 = 1"
PL/pgSQL function inline_code_block line 1 at assignment
do $$ declare c nested_int8s; begin c.c2.x = 1; end $$;
-ERROR: cannot assign to field "x" of column "c" because there is no such column in data type two_int8s
+ERROR: cannot assign to field "x" of column or variable "c" because there is no such column in data type two_int8s
LINE 1: c.c2.x = 1
^
QUERY: c.c2.x = 1
@@ -157,7 +157,7 @@ ERROR: record "c" has no field "x"
CONTEXT: PL/pgSQL assignment "b.c.x.q1 = 1"
PL/pgSQL function inline_code_block line 1 at assignment
do $$ <<b>> declare c nested_int8s; begin b.c.c2.x = 1; end $$;
-ERROR: cannot assign to field "x" of column "b" because there is no such column in data type two_int8s
+ERROR: cannot assign to field "x" of column or variable "b" because there is no such column in data type two_int8s
LINE 1: b.c.c2.x = 1
^
QUERY: b.c.c2.x = 1
diff --git a/src/pl/tcl/expected/pltcl_queries.out b/src/pl/tcl/expected/pltcl_queries.out
index 2d922c2333..3b6506d613 100644
--- a/src/pl/tcl/expected/pltcl_queries.out
+++ b/src/pl/tcl/expected/pltcl_queries.out
@@ -246,12 +246,12 @@ ERROR: type "b" does not exist
select tcl_eval('spi_prepare a "b {"');
ERROR: unmatched open brace in list
select tcl_error_handling_test($tcl$spi_prepare "select moo" []$tcl$);
- tcl_error_handling_test
---------------------------------------
- SQLSTATE: 42703 +
- condition: undefined_column +
- cursor_position: 8 +
- message: column "moo" does not exist+
+ tcl_error_handling_test
+--------------------------------------------------
+ SQLSTATE: 42703 +
+ condition: undefined_column +
+ cursor_position: 8 +
+ message: column or variable "moo" does not exist+
statement: select moo
(1 row)
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index 600e603bdf..2a8d198343 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -1287,19 +1287,19 @@ select * from atacc1;
(1 row)
select * from atacc1 order by a;
-ERROR: column "a" does not exist
+ERROR: column or variable "a" does not exist
LINE 1: select * from atacc1 order by a;
^
select * from atacc1 order by "........pg.dropped.1........";
-ERROR: column "........pg.dropped.1........" does not exist
+ERROR: column or variable "........pg.dropped.1........" does not exist
LINE 1: select * from atacc1 order by "........pg.dropped.1........"...
^
select * from atacc1 group by a;
-ERROR: column "a" does not exist
+ERROR: column or variable "a" does not exist
LINE 1: select * from atacc1 group by a;
^
select * from atacc1 group by "........pg.dropped.1........";
-ERROR: column "........pg.dropped.1........" does not exist
+ERROR: column or variable "........pg.dropped.1........" does not exist
LINE 1: select * from atacc1 group by "........pg.dropped.1........"...
^
select atacc1.* from atacc1;
@@ -1309,7 +1309,7 @@ select atacc1.* from atacc1;
(1 row)
select a from atacc1;
-ERROR: column "a" does not exist
+ERROR: column or variable "a" does not exist
LINE 1: select a from atacc1;
^
select atacc1.a from atacc1;
@@ -1323,15 +1323,15 @@ select b,c,d from atacc1;
(1 row)
select a,b,c,d from atacc1;
-ERROR: column "a" does not exist
+ERROR: column or variable "a" does not exist
LINE 1: select a,b,c,d from atacc1;
^
select * from atacc1 where a = 1;
-ERROR: column "a" does not exist
+ERROR: column or variable "a" does not exist
LINE 1: select * from atacc1 where a = 1;
^
select "........pg.dropped.1........" from atacc1;
-ERROR: column "........pg.dropped.1........" does not exist
+ERROR: column or variable "........pg.dropped.1........" does not exist
LINE 1: select "........pg.dropped.1........" from atacc1;
^
select atacc1."........pg.dropped.1........" from atacc1;
@@ -1339,11 +1339,11 @@ ERROR: column atacc1.........pg.dropped.1........ does not exist
LINE 1: select atacc1."........pg.dropped.1........" from atacc1;
^
select "........pg.dropped.1........",b,c,d from atacc1;
-ERROR: column "........pg.dropped.1........" does not exist
+ERROR: column or variable "........pg.dropped.1........" does not exist
LINE 1: select "........pg.dropped.1........",b,c,d from atacc1;
^
select * from atacc1 where "........pg.dropped.1........" = 1;
-ERROR: column "........pg.dropped.1........" does not exist
+ERROR: column or variable "........pg.dropped.1........" does not exist
LINE 1: select * from atacc1 where "........pg.dropped.1........" = ...
^
-- UPDATEs
@@ -1352,7 +1352,7 @@ ERROR: column "a" of relation "atacc1" does not exist
LINE 1: update atacc1 set a = 3;
^
update atacc1 set b = 2 where a = 3;
-ERROR: column "a" does not exist
+ERROR: column or variable "a" does not exist
LINE 1: update atacc1 set b = 2 where a = 3;
^
update atacc1 set "........pg.dropped.1........" = 3;
@@ -1360,7 +1360,7 @@ ERROR: column "........pg.dropped.1........" of relation "atacc1" does not exis
LINE 1: update atacc1 set "........pg.dropped.1........" = 3;
^
update atacc1 set b = 2 where "........pg.dropped.1........" = 3;
-ERROR: column "........pg.dropped.1........" does not exist
+ERROR: column or variable "........pg.dropped.1........" does not exist
LINE 1: update atacc1 set b = 2 where "........pg.dropped.1........"...
^
-- INSERTs
@@ -1408,11 +1408,11 @@ LINE 1: insert into atacc1 ("........pg.dropped.1........",b,c,d) va...
^
-- DELETEs
delete from atacc1 where a = 3;
-ERROR: column "a" does not exist
+ERROR: column or variable "a" does not exist
LINE 1: delete from atacc1 where a = 3;
^
delete from atacc1 where "........pg.dropped.1........" = 3;
-ERROR: column "........pg.dropped.1........" does not exist
+ERROR: column or variable "........pg.dropped.1........" does not exist
LINE 1: delete from atacc1 where "........pg.dropped.1........" = 3;
^
delete from atacc1;
@@ -1698,7 +1698,7 @@ select f1 from c1;
alter table c1 drop column f1;
select f1 from c1;
-ERROR: column "f1" does not exist
+ERROR: column or variable "f1" does not exist
LINE 1: select f1 from c1;
^
HINT: Perhaps you meant to reference the column "c1.f2".
@@ -1712,7 +1712,7 @@ ERROR: cannot drop inherited column "f1"
alter table p1 drop column f1;
-- c1.f1 is dropped now, since there is no local definition for it
select f1 from c1;
-ERROR: column "f1" does not exist
+ERROR: column or variable "f1" does not exist
LINE 1: select f1 from c1;
^
HINT: Perhaps you meant to reference the column "c1.f2".
diff --git a/src/test/regress/expected/copy2.out b/src/test/regress/expected/copy2.out
index 090ef6c7a8..165bd7491d 100644
--- a/src/test/regress/expected/copy2.out
+++ b/src/test/regress/expected/copy2.out
@@ -122,7 +122,7 @@ LINE 1: COPY x TO stdout WHERE a = 1;
COPY x from stdin WHERE a = 50004;
COPY x from stdin WHERE a > 60003;
COPY x from stdin WHERE f > 60003;
-ERROR: column "f" does not exist
+ERROR: column or variable "f" does not exist
LINE 1: COPY x from stdin WHERE f > 60003;
^
COPY x from stdin WHERE a = max(x.b);
diff --git a/src/test/regress/expected/errors.out b/src/test/regress/expected/errors.out
index 8c527474da..e53ae451df 100644
--- a/src/test/regress/expected/errors.out
+++ b/src/test/regress/expected/errors.out
@@ -27,7 +27,7 @@ LINE 1: select * from nonesuch;
^
-- bad name in target list
select nonesuch from pg_database;
-ERROR: column "nonesuch" does not exist
+ERROR: column or variable "nonesuch" does not exist
LINE 1: select nonesuch from pg_database;
^
-- empty distinct list isn't OK
@@ -37,17 +37,17 @@ LINE 1: select distinct from pg_database;
^
-- bad attribute name on lhs of operator
select * from pg_database where nonesuch = pg_database.datname;
-ERROR: column "nonesuch" does not exist
+ERROR: column or variable "nonesuch" does not exist
LINE 1: select * from pg_database where nonesuch = pg_database.datna...
^
-- bad attribute name on rhs of operator
select * from pg_database where pg_database.datname = nonesuch;
-ERROR: column "nonesuch" does not exist
+ERROR: column or variable "nonesuch" does not exist
LINE 1: ...ect * from pg_database where pg_database.datname = nonesuch;
^
-- bad attribute name in select distinct on
select distinct on (foobar) * from pg_database;
-ERROR: column "foobar" does not exist
+ERROR: column or variable "foobar" does not exist
LINE 1: select distinct on (foobar) * from pg_database;
^
-- grouping with FOR UPDATE
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out
index 3ddea3b683..b01d3fabbb 100644
--- a/src/test/regress/expected/join.out
+++ b/src/test/regress/expected/join.out
@@ -5137,13 +5137,13 @@ LINE 1: select t2.uunique1 from
HINT: Perhaps you meant to reference the column "t2.unique1".
select uunique1 from
tenk1 t1 join tenk2 t2 on t1.two = t2.two; -- error, suggest both at once
-ERROR: column "uunique1" does not exist
+ERROR: column or variable "uunique1" does not exist
LINE 1: select uunique1 from
^
HINT: Perhaps you meant to reference the column "t1.unique1" or the column "t2.unique1".
select ctid from
tenk1 t1 join tenk2 t2 on t1.two = t2.two; -- error, need qualification
-ERROR: column "ctid" does not exist
+ERROR: column or variable "ctid" does not exist
LINE 1: select ctid from
^
DETAIL: There are columns named "ctid", but they are in tables that cannot be referenced from this part of the query.
@@ -6178,7 +6178,7 @@ lateral (select * from int8_tbl t1,
-- test some error cases where LATERAL should have been used but wasn't
select f1,g from int4_tbl a, (select f1 as g) ss;
-ERROR: column "f1" does not exist
+ERROR: column or variable "f1" does not exist
LINE 1: select f1,g from int4_tbl a, (select f1 as g) ss;
^
DETAIL: There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
@@ -6190,7 +6190,7 @@ LINE 1: select f1,g from int4_tbl a, (select a.f1 as g) ss;
DETAIL: There is an entry for table "a", but it cannot be referenced from this part of the query.
HINT: To reference that table, you must mark this subquery with LATERAL.
select f1,g from int4_tbl a cross join (select f1 as g) ss;
-ERROR: column "f1" does not exist
+ERROR: column or variable "f1" does not exist
LINE 1: select f1,g from int4_tbl a cross join (select f1 as g) ss;
^
DETAIL: There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
@@ -6227,7 +6227,7 @@ LINE 1: select 1 from tenk1 a, lateral (select max(a.unique1) from i...
create temp table xx1 as select f1 as x1, -f1 as x2 from int4_tbl;
-- error, can't do this:
update xx1 set x2 = f1 from (select * from int4_tbl where f1 = x1) ss;
-ERROR: column "x1" does not exist
+ERROR: column or variable "x1" does not exist
LINE 1: ... set x2 = f1 from (select * from int4_tbl where f1 = x1) ss;
^
DETAIL: There is a column named "x1" in table "xx1", but it cannot be referenced from this part of the query.
@@ -6247,7 +6247,7 @@ update xx1 set x2 = f1 from xx1, lateral (select * from int4_tbl where f1 = x1)
ERROR: table name "xx1" specified more than once
-- also errors:
delete from xx1 using (select * from int4_tbl where f1 = x1) ss;
-ERROR: column "x1" does not exist
+ERROR: column or variable "x1" does not exist
LINE 1: ...te from xx1 using (select * from int4_tbl where f1 = x1) ss;
^
DETAIL: There is a column named "x1" in table "xx1", but it cannot be referenced from this part of the query.
diff --git a/src/test/regress/expected/plpgsql.out b/src/test/regress/expected/plpgsql.out
index 08e42f17dc..6f5f37d58f 100644
--- a/src/test/regress/expected/plpgsql.out
+++ b/src/test/regress/expected/plpgsql.out
@@ -2600,7 +2600,7 @@ end; $$ language plpgsql;
-- should fail: SQLSTATE and SQLERRM are only in defined EXCEPTION
-- blocks
select excpt_test1();
-ERROR: column "sqlstate" does not exist
+ERROR: column or variable "sqlstate" does not exist
LINE 1: sqlstate
^
QUERY: sqlstate
@@ -2615,7 +2615,7 @@ begin
end; $$ language plpgsql;
-- should fail
select excpt_test2();
-ERROR: column "sqlstate" does not exist
+ERROR: column or variable "sqlstate" does not exist
LINE 1: sqlstate
^
QUERY: sqlstate
@@ -4629,7 +4629,7 @@ BEGIN
RAISE NOTICE '%, %', r.roomno, r.comment;
END LOOP;
END$$;
-ERROR: column "foo" does not exist
+ERROR: column or variable "foo" does not exist
LINE 1: SELECT rtrim(roomno) AS roomno, foo FROM Room ORDER BY roomn...
^
QUERY: SELECT rtrim(roomno) AS roomno, foo FROM Room ORDER BY roomno
@@ -4671,7 +4671,7 @@ begin
raise notice 'x = %', x;
end;
$$;
-ERROR: column "x" does not exist
+ERROR: column or variable "x" does not exist
LINE 1: x + 1
^
QUERY: x + 1
@@ -4683,7 +4683,7 @@ begin
raise notice 'x = %, y = %', x, y;
end;
$$;
-ERROR: column "x" does not exist
+ERROR: column or variable "x" does not exist
LINE 1: x + 1
^
QUERY: x + 1
@@ -5696,7 +5696,7 @@ ALTER TABLE alter_table_under_transition_tables
DROP column name;
UPDATE alter_table_under_transition_tables
SET id = id;
-ERROR: column "name" does not exist
+ERROR: column or variable "name" does not exist
LINE 1: (SELECT string_agg(id || '=' || name, ',') FROM d)
^
QUERY: (SELECT string_agg(id || '=' || name, ',') FROM d)
diff --git a/src/test/regress/expected/psql.out b/src/test/regress/expected/psql.out
index 8fc62cebd2..8142ca18e3 100644
--- a/src/test/regress/expected/psql.out
+++ b/src/test/regress/expected/psql.out
@@ -120,7 +120,7 @@ SELECT $1, $2 \bind 'foo' 'bar' \g
-- errors
-- parse error
SELECT foo \bind \g
-ERROR: column "foo" does not exist
+ERROR: column or variable "foo" does not exist
LINE 1: SELECT foo
^
-- tcop error
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index fb9f936d43..396323c349 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -1191,7 +1191,7 @@ drop rule rules_foorule on rules_foo;
-- this should fail because f1 is not exposed for unqualified reference:
create rule rules_foorule as on insert to rules_foo where f1 < 100
do instead insert into rules_foo2 values (f1);
-ERROR: column "f1" does not exist
+ERROR: column or variable "f1" does not exist
LINE 2: do instead insert into rules_foo2 values (f1);
^
DETAIL: There are columns named "f1", but they are in tables that cannot be referenced from this part of the query.
diff --git a/src/test/regress/expected/session_variables.out b/src/test/regress/expected/session_variables.out
index 1be6c1c2a9..e520e81cc6 100644
--- a/src/test/regress/expected/session_variables.out
+++ b/src/test/regress/expected/session_variables.out
@@ -269,7 +269,7 @@ SELECT v1;
-- should fail
LET v1.x = 10;
-ERROR: cannot assign to field "x" of column "v1" because there is no such column in data type t1
+ERROR: cannot assign to field "x" of column or variable "v1" because there is no such column in data type t1
LINE 1: LET v1.x = 10;
^
DROP VARIABLE v1;
diff --git a/src/test/regress/expected/transactions.out b/src/test/regress/expected/transactions.out
index 2b2cff7d91..60c096b857 100644
--- a/src/test/regress/expected/transactions.out
+++ b/src/test/regress/expected/transactions.out
@@ -256,7 +256,7 @@ SELECT * FROM trans_barbaz; -- should have 1
BEGIN;
SAVEPOINT one;
SELECT trans_foo;
-ERROR: column "trans_foo" does not exist
+ERROR: column or variable "trans_foo" does not exist
LINE 1: SELECT trans_foo;
^
ROLLBACK TO SAVEPOINT one;
@@ -305,7 +305,7 @@ BEGIN;
SAVEPOINT one;
INSERT INTO savepoints VALUES (5);
SELECT trans_foo;
-ERROR: column "trans_foo" does not exist
+ERROR: column or variable "trans_foo" does not exist
LINE 1: SELECT trans_foo;
^
COMMIT;
diff --git a/src/test/regress/expected/union.out b/src/test/regress/expected/union.out
index e2613d6777..0a6613c430 100644
--- a/src/test/regress/expected/union.out
+++ b/src/test/regress/expected/union.out
@@ -907,7 +907,7 @@ ORDER BY q2,q1;
-- This should fail, because q2 isn't a name of an EXCEPT output column
SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1;
-ERROR: column "q2" does not exist
+ERROR: column or variable "q2" does not exist
LINE 1: ... int8_tbl EXCEPT SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1...
^
DETAIL: There is a column named "q2" in table "*SELECT* 2", but it cannot be referenced from this part of the query.
--
2.38.1