Skip to content

Commit

Permalink
Normalize the Error messages for the COPY command.
Browse files Browse the repository at this point in the history
A recent Postgres commit (*) that refactored error messages is the cause
of the diffs seen in pg16 regress test. The fix includes a normalization
rule for the error messages so pg16 will pass when running with version
16 of Postgres.

(*) https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=498ee9ee2f
  • Loading branch information
colm-mchugh committed Nov 21, 2024
1 parent 7e701be commit 0156f48
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
10 changes: 10 additions & 0 deletions src/test/regress/bin/normalize.sed
Original file line number Diff line number Diff line change
Expand Up @@ -309,3 +309,13 @@ s/permission denied to terminate process/must be a superuser to terminate superu
s/permission denied to cancel query/must be a superuser to cancel superuser query/g

#endif /* PG_VERSION_NUM < PG_VERSION_16 */

# pg17 changes
# can be removed when dropping PG15&16 support
#if PG_VERSION_NUM < PG_VERSION_17
# (This is not preprocessor directive, but a reminder for the developer that will drop PG15&16 support )

s/COPY DEFAULT only available using COPY FROM/COPY DEFAULT cannot be used with COPY TO/
s/COPY delimiter must not appear in the DEFAULT specification/COPY delimiter character must not appear in the DEFAULT specification/

#endif /* PG_VERSION_NUM < PG_VERSION_17 */
4 changes: 2 additions & 2 deletions src/test/regress/expected/pg16.out
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,7 @@ COPY copy_default FROM stdin WITH (default E'\r');
ERROR: COPY default representation cannot use newline or carriage return
-- DELIMITER cannot appear in DEFAULT spec
COPY copy_default FROM stdin WITH (delimiter ';', default 'test;test');
ERROR: COPY delimiter must not appear in the DEFAULT specification
ERROR: COPY delimiter character must not appear in the DEFAULT specification
-- CSV quote cannot appear in DEFAULT spec
COPY copy_default FROM stdin WITH (format csv, quote '"', default 'test"test');
ERROR: CSV quote character must not appear in the DEFAULT specification
Expand Down Expand Up @@ -603,7 +603,7 @@ SET citus.shard_count TO 1;
SET citus.shard_replication_factor TO 1;
-- DEFAULT cannot be used in COPY TO
COPY (select 1 as test) TO stdout WITH (default '\D');
ERROR: COPY DEFAULT only available using COPY FROM
ERROR: COPY DEFAULT cannot be used with COPY TO
-- Tests for SQL/JSON: JSON_ARRAYAGG and JSON_OBJECTAGG aggregates
-- Relevant PG commit:
-- https://github.com/postgres/postgres/commit/7081ac4
Expand Down

0 comments on commit 0156f48

Please sign in to comment.