in src/main/java/com/google/cloud/spanner/pgadapter/statements/CopyStatement.java [733:777]
static void parseLegacyOptions(SimpleParser parser, ParsedCopyStatement.Builder builder) {
while (true) {
if (parser.eatKeyword("binary")) {
builder.format = Format.BINARY;
} else if (parser.eatKeyword("delimiter")) {
parser.eatKeyword("as");
eatDelimiter(parser, builder);
} else if (parser.eatKeyword("null")) {
parser.eatKeyword("as");
builder.nullString = parser.readSingleQuotedString().getValue();
} else if (parser.eatKeyword("csv")) {
builder.format = Format.CSV;
parser.eatKeyword("header");
boolean foundValid;
do {
foundValid = false;
if (parser.eatKeyword("quote")) {
parser.eatKeyword("as");
eatQuote(parser, builder);
foundValid = true;
} else if (parser.eatKeyword("escape")) {
parser.eatKeyword("as");
eatEscape(parser, builder);
foundValid = true;
} else if (builder.direction == Direction.FROM) {
if (parser.eatKeyword("force", "not", "null")) {
builder.forceNotNull = parser.readColumnList("force not null");
foundValid = true;
}
} else if (builder.direction == Direction.TO) {
if (parser.eatKeyword("force", "quote")) {
foundValid = true;
if (parser.eatToken("*")) {
builder.forceQuote = ImmutableList.of();
} else {
builder.forceQuote = parser.readColumnList("force quote");
}
}
}
} while (foundValid);
} else {
break;
}
}
}