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]