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

   ## What
   Append escaped partition values directly to the path builder.
   
   ## Why
   `url.QueryEscape` creates a temporary string for values that need escaping.
   
   ## Implementation
   - Write spaces as `+`.
   - Write other escaped bytes as `%XX`.
   - Keep output equal to `url.QueryEscape`.
   
   ## Benchmark
   One-field partition-path formatting, comparing the old `url.QueryEscape` 
path with the PR formatter using the same builder capacity. Go 1.26.3, 
darwin/arm64, Apple M1 Pro, one CPU, 10 runs of 250 ms (median).
   
   | Workload | Before | After | Speedup | B/op | Allocs/op |
   | --- | ---: | ---: | ---: | ---: | ---: |
   | Safe | 107.7 ns | 119.65 ns | 0.90x | 88 → 88 | 2 → 2 |
   | Timestamp | 190.75 ns | 171.40 ns | 1.11x | 168 → 120 | 3 → 2 |
   | Reserved characters | 155.8 ns | 167.7 ns | 0.93x | 120 → 88 | 3 → 2 |
   | Unicode | 148.1 ns | 223.05 ns | 0.66x | 120 → 72 | 3 → 2 |
   | Long safe | 533.6 ns | 633.75 ns | 0.84x | 792 → 792 | 2 → 2 |
   | Long mixed | 1.192 µs | 1.614 µs | 0.74x | 1,496 → 664 | 4 → 2 |
   
   This formatter run reduced allocations for escaped values. CPU time improved 
only for timestamps in this run. These are one-field formatter timings, not 
full table-write throughput.
   


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