liaorui opened a new pull request, #8338: URL: https://github.com/apache/inlong/pull/8338
…ale from source cdc like mysql or oracle ### Prepare a Pull Request *(Change the title refer to the following example)* - Title Example: [INLONG-XYZ][Component] Title of the pull request *(The following *XYZ* should be replaced by the actual [GitHub Issue](https://github.com/apache/inlong/issues) number)* - Fixes #8337 ### Motivation *Explain here the context, and why you're making that change. What is the problem you're trying to solve?* When Oracle or Mysql source table has decimal fields, Oracle or MySQL CDC connector sends debezium raw data with sql types to Iceberg connector. Iceberg connector creates table automatically with decimal(15,5) default if table not exists. The precision and scale are not accurate. Iceberg connector can read dialect type from mysqlType or oracleType in source raw data. This dialect type contains correct precision and scale. ### Modifications *Describe the modifications you've done.* `base` common module has three classes which modified. `CanalJsonDynamicSchemaFormat` and `DebeziumJsonDynamicSchemaFormat` both have a `extractSchema` method, which is always used by sink connectors to extract schema from debezium-json or cannal-json raw data. `extractSchema` method only extracts schema from `type` field now. `type` field only shows java sql types without precision and scale. If there is `mysqlType` or `oracleType` in debezium raw data, and java sql type is decimal type, we get precision and scale from `mysqlType` or `oracleType`. ### Verifying this change *(Please pick either of the following options)* - [ ] This change is a trivial rework/code cleanup without any test coverage. - [ ] This change is already covered by existing tests, such as: *(please describe tests)* - [ ] This change added tests and can be verified as follows: *(example:)* - *Added integration tests for end-to-end deployment with large payloads (10MB)* - *Extended integration test for recovery after broker failure* ### Documentation - Does this pull request introduce a new feature? (yes / no) - If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented) - If a feature is not applicable for documentation, explain why? - If a feature is not documented yet in this PR, please create a follow-up issue for adding the documentation -- 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]
