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]
