1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-12 16:21:30 +03:00

Don't try to read default for a non-existent attribute

Oversight in commit 9f8377f7a2 for COPY .. DEFAULT

per report from Alexander Lakhin
This commit is contained in:
Andrew Dunstan 2023-03-15 17:16:57 -04:00
parent 483bdb2afe
commit b85e91023b

View File

@ -1683,7 +1683,8 @@ CopyReadAttributesText(CopyFromState cstate)
strncmp(start_ptr, cstate->opts.null_print, input_len) == 0) strncmp(start_ptr, cstate->opts.null_print, input_len) == 0)
cstate->raw_fields[fieldno] = NULL; cstate->raw_fields[fieldno] = NULL;
/* Check whether raw input matched default marker */ /* Check whether raw input matched default marker */
else if (cstate->opts.default_print && else if (fieldno < list_length(cstate->attnumlist) &&
cstate->opts.default_print &&
input_len == cstate->opts.default_print_len && input_len == cstate->opts.default_print_len &&
strncmp(start_ptr, cstate->opts.default_print, input_len) == 0) strncmp(start_ptr, cstate->opts.default_print, input_len) == 0)
{ {
@ -1897,7 +1898,8 @@ endfield:
strncmp(start_ptr, cstate->opts.null_print, input_len) == 0) strncmp(start_ptr, cstate->opts.null_print, input_len) == 0)
cstate->raw_fields[fieldno] = NULL; cstate->raw_fields[fieldno] = NULL;
/* Check whether raw input matched default marker */ /* Check whether raw input matched default marker */
else if (cstate->opts.default_print && else if (fieldno < list_length(cstate->attnumlist) &&
cstate->opts.default_print &&
input_len == cstate->opts.default_print_len && input_len == cstate->opts.default_print_len &&
strncmp(start_ptr, cstate->opts.default_print, input_len) == 0) strncmp(start_ptr, cstate->opts.default_print, input_len) == 0)
{ {