twuebi opened a new pull request, #1873:
URL: https://github.com/apache/iceberg-go/pull/1873

   Follow-up to #1665 
   
   A commit request's add-spec and add-sort-order payloads are bound to a 
schema by Apply, not by the decoder: AddPartitionSpec calls BindToSchema and 
AddSortOrder calls CheckCompatibility, both against the table's current schema. 
Decoding them into the bound types therefore enforced an invariant the wire 
form does not carry.
   
   That rejected a spec a client is entitled to send. A dropped partition field 
is a void transform over source ID 0, which BindToSchema preserves as a 
tombstone, so re-sending a spec after dropping a partition column failed with 
"partition source ID must be positive: 0" before binding ran.
   
   Decode into UnboundPartitionSpec and UnboundSortOrder, and hand the embedded 
bound values to the builder. Source IDs that do not resolve are still rejected, 
now by binding, which reports them against the schema that decides. The 
constructors keep taking bound values, so callers are unaffected, and Apply 
reports a nil payload rather than dereferencing it.


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

Reply via email to