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

   ### Search before asking
   
   - [x] Searched current issues and pull requests; related prior work is 
identified below.
   
   ### What happened
   
   Protobuf read/write field lookup uses different case transformations. 
Writing an exactly named mixed-case proto field can fail after lowercasing, 
reading a case-variant schema field can return null, and a MAP inside a ROW is 
resolved against the root descriptor rather than its owning message.
   
   ### SeaTunnel Version
   
   dev at 11e4f5554973a66ba2d63d4df18ee22f10be121f. No claim about untested 
releases.
   
   ### SeaTunnel Config
   
   Minimal proto:
   ```proto
   syntax = "proto3";
   message Root {
     message Address { map<string, float> attributes = 1; }
     Address address = 1;
     string C_STRING = 2;
   }
   ```
   Use matching SeaTunnel ROW/MAP fields for address.attributes and an exact 
`C_STRING` schema field. Also test a scalar proto `c_string` with schema 
`C_String`. No broker is needed for a converter-level reproduction.
   
   ### Running Command
   
   Construct the descriptor, serialize a SeaTunnelRow through 
RowToProtobufConverter, parse the bytes with DynamicMessage and read through 
ProtobufToRowConverter. Assert the original scalar/map values round-trip.
   
   ### Error Exception
   
   On the baseline, exact mixed-case writes can fail in descriptor lookup, 
case-variant reads can yield null and nested MAP writes use a field descriptor 
belonging to the wrong message.
   
   ### Zeta or Flink or Spark Version
   
   Not required for the isolated utility/format reproduction.
   
   ### Java or Scala Version
   
   JDK 17.0.18; regression cases also passed on JDK 1.8.0_492 in the original 
local repair batch.
   
   ### Anything else
   
   Closed PR #10194 was not merged. Its review explicitly identified the 
remaining nested MAP descriptor problem. This report/patch continues that work 
with owning-message lookup and regression coverage, while retaining the 
case-insensitive fallback needed by existing schemas. No active equivalent PR 
was found.
   
   ### 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.
   
   AI assistance: DeepSeek and Codex assisted reproduction, implementation, 
tests and this description.
   


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