diff options
author | Masahiko Sawada <msawada@postgresql.org> | 2024-04-01 15:25:25 +0900 |
---|---|---|
committer | Masahiko Sawada <msawada@postgresql.org> | 2024-04-01 15:25:25 +0900 |
commit | f5a227895e178bf528b18f82bbe554435fb3e64f (patch) | |
tree | c93d52125f449f8f37382ca933af617182cb9130 /src/backend/commands/copyfrom.c | |
parent | f4ad0021aface01ee74604355bd2e998e5f73320 (diff) | |
download | postgresql-f5a227895e178bf528b18f82bbe554435fb3e64f.tar.gz postgresql-f5a227895e178bf528b18f82bbe554435fb3e64f.zip |
Add new COPY option LOG_VERBOSITY.
This commit adds a new COPY option LOG_VERBOSITY, which controls the
amount of messages emitted during processing. Valid values are
'default' and 'verbose'.
This is currently used in COPY FROM when ON_ERROR option is set to
ignore. If 'verbose' is specified, a NOTICE message is emitted for
each discarded row, providing additional information such as line
number, column name, and the malformed value. This helps users to
identify problematic rows that failed to load.
Author: Bharath Rupireddy
Reviewed-by: Michael Paquier, Atsushi Torikoshi, Masahiko Sawada
Discussion: https://www.postgresql.org/message-id/CALj2ACUk700cYhx1ATRQyRw-fBM%2BaRo6auRAitKGff7XNmYfqQ%40mail.gmail.com
Diffstat (limited to 'src/backend/commands/copyfrom.c')
-rw-r--r-- | src/backend/commands/copyfrom.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/backend/commands/copyfrom.c b/src/backend/commands/copyfrom.c index b6736369771..9d2900041e6 100644 --- a/src/backend/commands/copyfrom.c +++ b/src/backend/commands/copyfrom.c @@ -101,8 +101,6 @@ typedef struct CopyMultiInsertInfo /* non-export function prototypes */ -static char *limit_printout_length(const char *str); - static void ClosePipeFromProgram(CopyFromState cstate); /* @@ -141,7 +139,7 @@ CopyFromErrorCallback(void *arg) /* error is relevant to a particular column */ char *attval; - attval = limit_printout_length(cstate->cur_attval); + attval = CopyLimitPrintoutLength(cstate->cur_attval); errcontext("COPY %s, line %llu, column %s: \"%s\"", cstate->cur_relname, (unsigned long long) cstate->cur_lineno, @@ -168,7 +166,7 @@ CopyFromErrorCallback(void *arg) { char *lineval; - lineval = limit_printout_length(cstate->line_buf.data); + lineval = CopyLimitPrintoutLength(cstate->line_buf.data); errcontext("COPY %s, line %llu: \"%s\"", cstate->cur_relname, (unsigned long long) cstate->cur_lineno, lineval); @@ -189,8 +187,8 @@ CopyFromErrorCallback(void *arg) * * Returns a pstrdup'd copy of the input. */ -static char * -limit_printout_length(const char *str) +char * +CopyLimitPrintoutLength(const char *str) { #define MAX_COPY_DATA_DISPLAY 100 |