Skip to content

Merge upstream - #49

Merged
otoolep merged 34 commits into
masterfrom
merge-upstream
Jul 14, 2026
Merged

otoolep merged 34 commits into
masterfrom
merge-upstream

Conversation

@otoolep

@otoolep otoolep commented Jul 14, 2026

Copy link
Copy Markdown
Member

No description provided.

dxbjavid and others added 30 commits June 11, 2026 15:22
Use atomic.Value for handle table and add concurrent lookup benchmark
Column names and declared types are invariant for the lifetime of a
prepared statement, but Columns()/declTypes() called C.sqlite3_column_name
and sqlite3_column_decltype on every query, once per column. On hot
QueryRow paths reusing an explicit Prepare or a _stmt_cache_size statement,
this is a fixed set of cgo crossings paid on every execution.

Cache the names and decltypes on the SQLiteStmt the first time they are
materialized and reuse them on subsequent executions. Caching is gated by
cacheMetadata(): explicit prepared statements always cache, Query-created
ephemeral statements cache only when they live in the connection stmt
cache. One-shot statements keep the previous per-call behavior.
cache column metadata for prepared and cached statements
Fix race in SQLiteStmt.Close by holding conn lock across cache check
Return error from vtable cursor open instead of ignoring it
Check sqlite3_malloc64 result in Deserialize
Fix panic when registered functions return named types
Return error instead of silently ignoring unsupported bind types
Close database on all error paths in Open
Check preupdate value fetch result to avoid NULL dereference
Use C.int in exported callbacks to match C declarations
@otoolep
otoolep merged commit 23d16ea into master Jul 14, 2026
2 of 3 checks passed
@otoolep
otoolep deleted the merge-upstream branch July 14, 2026 13:05
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.

3 participants