det101 commented on PR #12014: URL: https://github.com/apache/seatunnel/pull/12014#issuecomment-5807092732
Thanks @SEZ9 — F1 follow-up addressed at `25baad9e3`. **1. Docs (failed TRUNCATE after a successful flush)** `docs/en/connectors/sink/Jdbc.md` (and `docs/zh`) now state explicitly that flush and `TRUNCATE` are not one transaction: `TRUNCATE TABLE` is DDL and commits immediately. If flush succeeds and then `TRUNCATE` fails (FK constraint / missing privilege), the flushed rows stay committed; restore replays those rows plus the pending `TRUNCATE`. The replayed truncate is idempotent, but that window can still produce duplicates. The same wording is in `docs/en` + `docs/zh` `MySQL-CDC.md` so the source/sink FAQs stay aligned. **2. XA + TRUNCATE rejection test** The check from `1a4f2d32` is exercised by `JdbcExactlyOnceSinkWriterTest.applyTableOperationIsRejectedOnXaWriter`. It is a **runtime** fail-fast on `JdbcExactlyOnceSinkWriter.applyTableOperation`, not job-submission config validation: the XA writer throws `UnsupportedOperationException` before `prepareCommit()` / any XA method (`verify(xaFacade, never()).endAndPrepare(...)`). F4 (mid-flight restore between truncate and the next completed checkpoint) is still the existing E2E gap; not expanded in this commit. -- 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]
