[
https://issues.apache.org/jira/browse/FLINK-38839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-38839:
-----------------------------------
Labels: pull-request-available (was: )
> Support semicolon delimiter for transform table-options
> -------------------------------------------------------
>
> Key: FLINK-38839
> URL: https://issues.apache.org/jira/browse/FLINK-38839
> Project: Flink
> Issue Type: Improvement
> Components: Flink CDC
> Reporter: tchivs
> Priority: Major
> Labels: pull-request-available
>
> h2. Problem
> The transform rule table-options currently uses comma to separate key/value
> pairs:
> {quote}table-options: key1=value1,key2=value2
> {quote}
> This format cannot represent options whose values contain commas, e.g.
> multi-value options:
> {quote}table-options:
> sequence.field=gxsj,jjsj,file-index.range-bitmap.columns=jjsj
> {quote}
> The parser will incorrectly split *sequence.field=gxsj,jjsj* into two parts
> and fail or produce wrong options.
> h2. Reproduction
> Use a transform rule with *table-options* where a value contains comma:
> {code:java}
> transform:
> - source-table: mydb.my_table
> projection: "*"
> table-options:
> sequence.field=gxsj,jjsj,file-index.bloom-filter.columns=jjdbh{code}
> h2. Proposal
>
> Support *semicolon (`;`)* as an additional delimiter between key/value pairs
> while keeping the existing comma format for backward compatibility: * If the
> string contains ;, split pairs by ;
> * Otherwise split pairs by , (existing behavior)
> * Split key=value by the first = only (split("=", 2))
> Example with comma-in-value:
> {code:java}
> table-options:
> sequence.field=gxsj,jjsj;file-index.range-bitmap.columns=jjsj;file-index.bloom-filter.columns=jjdbh
> {code}
> h2. Compatibility
> * Backward compatible: existing key1=value1,key2=value2 keeps working.
> * New format is opt-in: users only need ; when option values include commas.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)