diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 0b9cd62bf0c..2ece5d71d1a 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -18447,7 +18447,7 @@ preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner) if (!pubobj->name && !pubobj->pubtable) ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), - errmsg("invalid table name at or near"), + errmsg("invalid table name"), parser_errposition(pubobj->location)); if (pubobj->name) @@ -18489,7 +18489,7 @@ preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner) else ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), - errmsg("invalid schema name at or near"), + errmsg("invalid schema name"), parser_errposition(pubobj->location)); } diff --git a/src/test/regress/expected/publication.out b/src/test/regress/expected/publication.out index 427f87ea077..69dc6cfd859 100644 --- a/src/test/regress/expected/publication.out +++ b/src/test/regress/expected/publication.out @@ -132,6 +132,15 @@ Tables: Tables from schemas: "pub_test" +-- weird parser corner case +CREATE PUBLICATION testpub_parsertst FOR TABLE pub_test.testpub_nopk, CURRENT_SCHEMA; +ERROR: invalid table name +LINE 1: ...estpub_parsertst FOR TABLE pub_test.testpub_nopk, CURRENT_SC... + ^ +CREATE PUBLICATION testpub_parsertst FOR TABLES IN SCHEMA foo, test.foo; +ERROR: invalid schema name +LINE 1: ...CATION testpub_parsertst FOR TABLES IN SCHEMA foo, test.foo; + ^ -- should be able to add a table of the same schema to the schema publication ALTER PUBLICATION testpub_forschema ADD TABLE pub_test.testpub_nopk; \dRp+ testpub_forschema diff --git a/src/test/regress/sql/publication.sql b/src/test/regress/sql/publication.sql index a47c5939d58..d5051a5e746 100644 --- a/src/test/regress/sql/publication.sql +++ b/src/test/regress/sql/publication.sql @@ -79,6 +79,10 @@ CREATE PUBLICATION testpub_for_tbl_schema FOR TABLES IN SCHEMA pub_test, TABLE p RESET client_min_messages; \dRp+ testpub_for_tbl_schema +-- weird parser corner case +CREATE PUBLICATION testpub_parsertst FOR TABLE pub_test.testpub_nopk, CURRENT_SCHEMA; +CREATE PUBLICATION testpub_parsertst FOR TABLES IN SCHEMA foo, test.foo; + -- should be able to add a table of the same schema to the schema publication ALTER PUBLICATION testpub_forschema ADD TABLE pub_test.testpub_nopk; \dRp+ testpub_forschema