jackylee-ch opened a new pull request, #9904: URL: https://github.com/apache/paimon/pull/9904
### Purpose `CsvParser` keeps only `charAt(0)` of `csv.field-delimiter`, `csv.quote-character` and `csv.escape-character`, while the writer emits the whole string. A multi-character value was accepted at DDL and then split on its first character only, so column boundaries silently disagreed with what had been written; an empty value threw `StringIndexOutOfBoundsException` on read. `fileformat.md:152` has documented `must be single character` for the field delimiter since it was introduced; this enforces it where it is read and adds the note for quote and escape. `csv.line-delimiter` is not restricted — `CustomLineReader` matches all of its bytes. This gates the Paimon implementation only; `format-table.implementation=engine` never constructs `CsvOptions`, and the implementation-independent check belongs in `validateFormatTableOptions` (#8328). ### Tests `CsvFileFormatTest#testSingleCharacterOptionsAreEnforced`. Reverting the fix: ``` Expecting code to raise a throwable. ``` `paimon-format`: 634 run, 0 failures. Written with Claude Code; verification is mine. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
