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]

Reply via email to