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]

Reply via email to