JNSimba opened a new pull request, #69725:
URL: https://github.com/apache/doris/pull/69725
### What problem does this PR solve?
Unsupported upstream schema changes pause a streaming job, but the error
does not include the original MySQL DDL or the mapped Doris destination. After
a failed RESUME, the recovery hint also omits that RESUME confirms acceptance
of unsupported changes. HTML escaping in the displayed JSON makes arrows,
equals signs, and quotes harder to read.
This change:
- Adds source-to-target table names and the complete MySQL source DDL to
unsupported-change errors. PostgreSQL retains its observed schema differences
and type/OID details without inventing a source DDL.
- Keeps `[SCHEMA_CHANGE_UNSUPPORTED]`, the `CANNOT_RESUME_ERR` code, and
concrete target validation errors. Both initial and resumed failures use the
same schema-review and RESUME confirmation hint.
- Formats same-name MODIFY/CHANGE as `(amount)` while retaining `(old_name
-> new_name)` for renames.
- Disables HTML escaping only for the displayed streaming-job `ErrorMsg`,
preserving the JSON `code`/`msg` structure and JSON-required escaping.
### Release note
Streaming job schema-change errors now show the mapped target table,
available source DDL, and consistent recovery guidance. The displayed error
JSON keeps arrows and other ordinary characters readable.
### Check List (For Author)
- Test
- [x] Unit Test: 82 CDC tests across the schema deserializers,
coordinator, schema manager, and helpers; 13 FE streaming-job status/display
tests.
- [x] Regression test: MySQL and PostgreSQL advanced schema-change
suites each passed five runs. These runs preceded the final display-escaping
fix and raw-arrow assertion; the full suites were not rerun after that
follow-up.
- [x] Manual test: deployed the FE/CDC changes, verified readable raw
JSON on retained MySQL and PostgreSQL paused jobs, and verified the PostgreSQL
RESUME error includes the missing target column. Deployment reused an existing
BE package.
- Behavior changed:
- [x] Yes. Error text and its displayed JSON escaping change. DDL
application, target validation, and pause/resume decisions retain their
existing logic.
- Does this need documentation?
- [x] No. This improves existing diagnostics without adding syntax or
configuration.
Validation also exposed existing startup schema-baseline and FE
replay/error-replacement issues; those recovery issues are outside this
diagnostic change.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]