Skip to content

perf: NUL-string pool for Open/Query/Prepare (3/4)#85

Open
adubovikov wants to merge 3 commits into
duckdb:mainfrom
adubovikov:perf/upstream-pr/3-nul-pool-core
Open

perf: NUL-string pool for Open/Query/Prepare (3/4)#85
adubovikov wants to merge 3 commits into
duckdb:mainfrom
adubovikov:perf/upstream-pr/3-nul-pool-core

Conversation

@adubovikov
Copy link
Copy Markdown
Contributor

@adubovikov adubovikov commented May 15, 2026

Summary

Part 3 of 4 of the split from PR #82. Adds withNULString / withNULStringVoid (sync.Pool) and routes Open/Query/Prepare/ExtractStatements, config/error strings, etc.

PR #83 is merged; this branch has been rebased onto upstream/main. The hot-path part — PR #84 — is still open, so the diff vs main remains cumulative (hot-path + NUL-pool); will rebase again once #84 lands to leave only the NUL-pool changes.

Test plan

  • CGO_ENABLED=1 go test ./...
  • CGO_ENABLED=1 go test -tags duckdb_arrow ./...

@adubovikov adubovikov marked this pull request as ready for review May 18, 2026 09:04
Use duckdb_bind_varchar_length, direct slice pointers for blobs and
UTF-8 checks, duckdb_create_varchar_length, and vector assign length
APIs. Add micro-benchmarks and TestCreateVarcharEmpty.
Add withNULString/withNULStringVoid backed by sync.Pool and route
high-frequency path and SQL strings (open, query, prepare, extract,
config, errors) through it. Add Prepare/Query micro-benchmarks.
@adubovikov adubovikov force-pushed the perf/upstream-pr/3-nul-pool-core branch from 6d28bfa to dc7c2df Compare May 18, 2026 09:17
…nul-pool-core

# Conflicts:
#	bindings.go
#	bindings_alloc_bench_test.go
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant