QuakeWang opened a new issue, #10886:
URL: https://github.com/apache/seatunnel/issues/10886

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   Paimon sink fails when writing a nested `ROW` field.
   
   The schema can be created with a `ROW` type, but writing data fails because 
`RowConverter` recursively converts the nested row while still validating it 
against the outer table schema.
   
   Example:
   
   ```text
   outer table fields: order_id, buyer, amount
   buyer ROW fields: id, name
   ```
   
   When converting the buyer, the source nested row has 2 fields, but it is 
compared with the outer Paimon table schema, which has 3 fields.
   
   ### SeaTunnel Version
   
   3.0.0-SNAPSHOT / current dev branch
   
   ### SeaTunnel Config
   
   ```conf
   env {
       parallelism = 1
       job.mode = "BATCH"
     }
   
     source {
       FakeSource {
         schema = {
           fields {
             order_id = bigint
             buyer = "{ id = bigint, name = string }"
             amount = "decimal(10, 2)"
           }
         }
         rows = [
           {
             kind = INSERT
             fields = [10001, { id = 42, name = "alice" }, "19.90"]
           }
         ]
         plugin_output = "fake"
       }
     }
   
     sink {
       Paimon {
         plugin_input = "fake"
         warehouse = "file:///tmp/paimon-warehouse"
         database = "ods"
         table = "orders_with_buyer"
       }
     }
   ```
   
   ### Running Command
   
   ```shell
   ./bin/seatunnel.sh --config fake_to_paimon_nested_row.conf -e local
   ```
   
   ### Error Exception
   
   ```log
   Caused by: org.apache.seatunnel.common.exception.SeaTunnelRuntimeException:
     ErrorCode:[COMMON-31], ErrorDescription:['Paimon': The source has '2' 
fields, but the table of sink has '3' fields. Please check schema of sink 
table.]
         at 
org.apache.seatunnel.connectors.seatunnel.paimon.utils.RowConverter.reconvert(RowConverter.java:368)
         at 
org.apache.seatunnel.connectors.seatunnel.paimon.utils.RowConverter.reconvert(RowConverter.java:484)
         at 
org.apache.seatunnel.connectors.seatunnel.paimon.sink.PaimonSinkWriter.write(PaimonSinkWriter.java:232)
   ```
   
   ### Zeta or Flink or Spark Version
   
   Zeta local engine
   
   ### Java or Scala Version
   
   Java 17
   
   ### Screenshots
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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