Conversation
There was a problem hiding this comment.
Pull request overview
Updates the vendored SQLite sources/headers to SQLite 3.53.0, bringing in new public APIs and associated extension updates.
Changes:
- Bumps SQLite version metadata and refreshes
sqlite3.h/sqlite3ext.hAPI surfaces for 3.53.0. - Updates/extends bundled extensions (
decimal,ieee754,series) with upstream changes (e.g.,sqlite3_malloc64, new functions). - Adds new APIs/macros (e.g.,
SQLITE_UTF8_ZT,SQLITE_PREPARE_FROM_DDL, new changegroup APIs, newsqlite3_str_*routines).
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
Sources/CSQLite/series.c |
Switches allocations to sqlite3_malloc64 for upstream compatibility/safety. |
Sources/CSQLite/include/sqlite3ext.h |
Extends extension thunk table and macros with newer SQLite APIs. |
Sources/CSQLite/include/sqlite3.h |
Updates version/constants/docs and adds new public C APIs introduced since 3.51.x. |
Sources/CSQLite/ieee754.c |
Adds int<->float bit-pattern conversion helpers and refines edge-case handling. |
Sources/CSQLite/decimal.c |
Adds rounding support, allocation hardening, and a max-digit limit. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ** that the product of "sz" and "cnt" does not exceed 2,147,418,112. The "cnt" | ||
| ** <li><p>The third argument ("cnt") is the number of slots. | ||
| ** Lookaside is disabled if "cnt"is less than 1. | ||
| * The "cnt" value will be reduced, if necessary, so |
There was a problem hiding this comment.
The doc comment line for SQLITE_DBCONFIG_LOOKASIDE has a malformed prefix (* instead of **), which breaks the surrounding Doxygen-style comment formatting. Update it to match the surrounding ** comment prefix so the generated docs remain correct.
| * The "cnt" value will be reduced, if necessary, so | |
| ** The "cnt" value will be reduced, if necessary, so |
| UNUSED_PARAMETER(argc); | ||
| if( sqlite3_value_type(argv[0])==SQLITE_FLOAT ){ | ||
| double r = sqlite3_value_double(argv[0]); | ||
| sqlite3_uint64 v; |
There was a problem hiding this comment.
ieee754func_to_int() copies the double bit-pattern into a sqlite3_uint64 and then passes it to sqlite3_result_int64(). Converting an out-of-range unsigned 64-bit value to signed 64-bit is implementation-defined and can yield inconsistent results across platforms. Use a sqlite3_int64 destination (or memcpy into a sqlite3_int64) so the result is well-defined while preserving the bit pattern.
| sqlite3_uint64 v; | |
| sqlite3_int64 v; |
No description provided.