!6226 修正gsql执行copy with header时,导致gsql解析sql字符串时,没有处理空指针
Merge pull request !6226 from 许树堃/xsk-copy-gsql
This commit is contained in:
@ -226,12 +226,12 @@ static bool ParseParallelOption(struct copy_options* result, char** errToken)
|
||||
xstrcat(&result->after_tofrom, token);
|
||||
|
||||
token = strtokx(nullptr, whitespace, ",()", NULL, 0, false, false, pset.encoding);
|
||||
if (pg_strcasecmp(token, "true") == 0 || pg_strcasecmp(token, "on") == 0) {
|
||||
result->hasHeader = true;
|
||||
xstrcat(&result->after_tofrom, " false");
|
||||
} else {
|
||||
if (token != nullptr) {
|
||||
bool res = (pg_strcasecmp(token, "true") == 0 || pg_strcasecmp(token, "on") == 0);
|
||||
result->hasHeader = (result->hasHeader || res);
|
||||
const char *resToken = res ? "false" : token;
|
||||
xstrcat(&result->after_tofrom, " ");
|
||||
xstrcat(&result->after_tofrom, token);
|
||||
xstrcat(&result->after_tofrom, resToken);
|
||||
}
|
||||
} else {
|
||||
xstrcat(&result->after_tofrom, " ");
|
||||
|
||||
@ -363,3 +363,13 @@ drop trigger insert_measurement_trigger on measurement;
|
||||
drop function measurement_insert_trigger;
|
||||
drop table measurement;
|
||||
drop table measurement_movement;
|
||||
create table copy_header_src (c1 int);
|
||||
create table copy_header_dest (c1 int);
|
||||
insert into copy_header_src select generate_series(1,10);
|
||||
\copy copy_header_src to '~/copy_header_src.csv' with csv header;
|
||||
\copy copy_header_dest from '~/copy_header_src.csv' with csv header'on';
|
||||
ERROR: syntax error at or near "'on'"
|
||||
LINE 1: COPY copy_header_dest FROM STDIN csv header'on';
|
||||
^
|
||||
drop table copy_header_src;
|
||||
drop table copy_header_dest;
|
||||
|
||||
@ -271,3 +271,12 @@ drop trigger insert_measurement_trigger on measurement;
|
||||
drop function measurement_insert_trigger;
|
||||
drop table measurement;
|
||||
drop table measurement_movement;
|
||||
|
||||
create table copy_header_src (c1 int);
|
||||
create table copy_header_dest (c1 int);
|
||||
insert into copy_header_src select generate_series(1,10);
|
||||
\copy copy_header_src to '~/copy_header_src.csv' with csv header;
|
||||
\copy copy_header_dest from '~/copy_header_src.csv' with csv header'on';
|
||||
|
||||
drop table copy_header_src;
|
||||
drop table copy_header_dest;
|
||||
|
||||
Reference in New Issue
Block a user