fallintoplace opened a new pull request, #1912: URL: https://github.com/apache/iceberg-go/pull/1912
## What - **Skip the writer schema projection** when the incoming Arrow batch already matches the target Arrow schema. - Applies to both the default writer and rolling writer. - Compares field order, physical types, nullability, field metadata, and top-level metadata. - Keeps the existing projection for reordered columns, missing/default fields, timestamp downcasts, list offset changes, and metadata mismatches. - Adds checked-allocator identity tests and a focused benchmark. ## Benchmark `BenchmarkDefaultDataFileWriter` with 128 rows, 5 runs on an Apple M1 Pro: - **Before:** 4.6 to 5.3 us/op, about 5.0 KB/op, 73 allocs/op - **After:** 1.7 to 3.1 us/op, about 0.9 KB/op, 15 allocs/op The focused benchmark measured the exact-schema path at about **35 to 51 ns/op with 0 allocs/op**. Projection stayed around **2.6 to 3.0 us/op** with 60 allocs/op. ## Checks - `go test ./table` - `go test -race ./table -run 'Test(ToRequestedSchemaWriteFastPath|DefaultDataFileWriterReusesExactBatch|RollingDataWriterReusesExactBatch)$'`\n- `go vet ./table`\n- `go test ./... -run '^$'` -- 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]
