From 6431db6405214d3aa02dc780946568d41eca2188 Mon Sep 17 00:00:00 2001 From: Bharath Rupireddy Date: Fri, 16 Feb 2024 08:01:15 +0000 Subject: [PATCH v1] Add detailed info when COPY skips soft errors --- src/backend/commands/copyfromparse.c | 12 +++++++++++- src/test/regress/expected/copy2.out | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/copyfromparse.c b/src/backend/commands/copyfromparse.c index 7cacd0b752..747e173d9c 100644 --- a/src/backend/commands/copyfromparse.c +++ b/src/backend/commands/copyfromparse.c @@ -969,7 +969,17 @@ NextCopyFrom(CopyFromState cstate, ExprContext *econtext, &values[m])) { cstate->num_errors++; - return true; + + if (cstate->opts.on_error != COPY_ON_ERROR_STOP) + { + ereport(NOTICE, + errmsg("detected data type incompatibility at line number %llu for column %s; COPY %s", + (unsigned long long) cstate->cur_lineno, + cstate->cur_attname, + cstate->cur_relname)); + + return true; + } } cstate->cur_attname = NULL; diff --git a/src/test/regress/expected/copy2.out b/src/test/regress/expected/copy2.out index 25c401ce34..1bf37236f0 100644 --- a/src/test/regress/expected/copy2.out +++ b/src/test/regress/expected/copy2.out @@ -730,6 +730,10 @@ COPY check_ign_err FROM STDIN WITH (on_error stop); ERROR: invalid input syntax for type integer: "a" CONTEXT: COPY check_ign_err, line 2, column n: "a" COPY check_ign_err FROM STDIN WITH (on_error ignore); +NOTICE: detected data type incompatibility at line number 2 for column n; COPY check_ign_err +NOTICE: detected data type incompatibility at line number 3 for column k; COPY check_ign_err +NOTICE: detected data type incompatibility at line number 4 for column m; COPY check_ign_err +NOTICE: detected data type incompatibility at line number 5 for column n; COPY check_ign_err NOTICE: 4 rows were skipped due to data type incompatibility SELECT * FROM check_ign_err; n | m | k -- 2.34.1