static void parseLegacyOptions()

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;
      }
    }
  }