luozihen commented on PR #12015:
URL: https://github.com/apache/seatunnel/pull/12015#issuecomment-5658245295

   @SEZ9 
   Re-posting the parts that were cut off:
   
   **F4** — The engine-level 
`TablePlaceholderProcessor.replaceTablePlaceholder` runs first (during
   `TableSinkFactoryContext.replacePlaceholderAndCreate`, before `createSink`), 
but it only rewrites
   top-level String and single-element-String-List values, so it leaves the 
nested `multi_table_config`
   map untouched. The connector-level `expandPrimaryKeyPlaceholder` then 
expands `${primary_key}` /
   `${unique_key}` inside `multi_table_config.primary_keys`. If a matched table 
uses `${primary_key}`
   but the upstream catalog has no primary key, the connector fails fast with 
`JdbcConnectorException`
   (`JDBC-12`) — it does not fall back and does not leave the literal 
placeholder in `PRIMARY_KEYS`.
   
   **F6** — Yes. `toCompiledPatternMap` compiles every declared pattern up 
front via `compilePattern`;
   an invalid regex raises `JDBC-12` immediately. Covered by 
`testResolveMultiTablePrimaryKeysInvalidRegexFails`
   and `testCompilePatternInvalidFails`.
   
   **F7** — The `toConfig()` dotted-key regression test is present
   (`ReadableConfigTest#testToConfigPreservesDottedKeyExpansion`). The 
engine-level IT/E2E for the new
   option is deferred and noted as a follow-up in the PR description.
   
   **F8** — Confirmed: the option key is `multi_table_config` (snake_case) 
across `JdbcSinkOptions`,
   error strings, unit tests, and EN/ZH docs; the mixed `multi-table_config` 
spelling is gone.


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