Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions source/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Changelog

## SQLite Release 3.50.2 On 2025-06-28

1. Fix the concat_ws() SQL function so that it includes empty strings in the concatenation. Forum post 52503ac21d.
2. Fix the file-io extension (used by the CLI) so that it can be built using the MinGW compiler chain.
3. Avoid writing frames with no checksums into the wal file if a savepoint is rolled back after dirty pages have already been spilled into the wal file. Forum post b490f726db.
4. Fix the Bitvec object to avoid stack overflow when the database is within 60 pages of its maximum size.
5. Fix a problem with UPDATEs on fts5 tables that contain BLOB values.
6. Fix an issue with transitive IS constraints on a RIGHT JOIN.
7. Raise an error early if the number of aggregate terms in a query exceeds the maximum number of columns, to avoid downstream assertion faults.
8. Ensure that sqlite3_setlk_timeout() holds the database mutex.
9. Fix typos in API documentation.

## SQLite Release 3.50.1 On 2025-06-06

1. Fix a long-standing bug in jsonb_set() and similar that was exposed by new optimizations added in version 3.50.0.
Expand Down
16 changes: 8 additions & 8 deletions source/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Download: https://sqlite.org/2025/sqlite-amalgamation-3500100.zip
Download: https://sqlite.org/2025/sqlite-amalgamation-3500200.zip

```
Archive: sqlite-amalgamation-3500100.zip
Archive: sqlite-amalgamation-3500200.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 2025-06-06 17:14 00000000 sqlite-amalgamation-3500100/
9279422 Defl:N 2393025 74% 2025-06-06 17:14 4a67418c sqlite-amalgamation-3500100/sqlite3.c
1066637 Defl:N 273039 74% 2025-06-06 17:14 dca41d4c sqlite-amalgamation-3500100/shell.c
661913 Defl:N 171087 74% 2025-06-06 17:14 7f74fa5a sqlite-amalgamation-3500100/sqlite3.h
38321 Defl:N 6640 83% 2025-06-06 17:14 50ad28b2 sqlite-amalgamation-3500100/sqlite3ext.h
0 Stored 0 0% 2025-06-28 16:24 00000000 sqlite-amalgamation-3500200/
9281384 Defl:N 2393444 74% 2025-06-28 16:24 bc3c24b9 sqlite-amalgamation-3500200/sqlite3.c
1066685 Defl:N 273051 74% 2025-06-28 16:24 42b0b5f6 sqlite-amalgamation-3500200/shell.c
661946 Defl:N 171068 74% 2025-06-28 16:24 25a8d01f sqlite-amalgamation-3500200/sqlite3.h
38321 Defl:N 6640 83% 2025-06-28 16:24 50ad28b2 sqlite-amalgamation-3500200/sqlite3ext.h
-------- ------- --- -------
11046293 2843791 74% 5 files
11048336 2844203 74% 5 files
```
15 changes: 8 additions & 7 deletions source/shell.c
Original file line number Diff line number Diff line change
Expand Up @@ -8027,13 +8027,14 @@ SQLITE_EXTENSION_INIT1
# include <dirent.h>
# include <utime.h>
# include <sys/time.h>
# define STRUCT_STAT struct stat
#else
# include "windows.h"
# include <io.h>
# include <direct.h>
/* # include "test_windirent.h" */
# define dirent DIRENT
# define stat _stat
# define STRUCT_STAT struct _stat
# define chmod(path,mode) fileio_chmod(path,mode)
# define mkdir(path,mode) fileio_mkdir(path)
#endif
Expand Down Expand Up @@ -8224,7 +8225,7 @@ LPWSTR utf8_to_utf16(const char *z){
*/
static void statTimesToUtc(
const char *zPath,
struct stat *pStatBuf
STRUCT_STAT *pStatBuf
){
HANDLE hFindFile;
WIN32_FIND_DATAW fd;
Expand Down Expand Up @@ -8252,7 +8253,7 @@ static void statTimesToUtc(
*/
static int fileStat(
const char *zPath,
struct stat *pStatBuf
STRUCT_STAT *pStatBuf
){
#if defined(_WIN32)
sqlite3_int64 sz = strlen(zPath);
Expand All @@ -8276,7 +8277,7 @@ static int fileStat(
*/
static int fileLinkStat(
const char *zPath,
struct stat *pStatBuf
STRUCT_STAT *pStatBuf
){
#if defined(_WIN32)
return fileStat(zPath, pStatBuf);
Expand Down Expand Up @@ -8309,7 +8310,7 @@ static int makeDirectory(
int i = 1;

while( rc==SQLITE_OK ){
struct stat sStat;
STRUCT_STAT sStat;
int rc2;

for(; zCopy[i]!='/' && i<nCopy; i++);
Expand Down Expand Up @@ -8359,7 +8360,7 @@ static int writeFile(
** be an error though - if there is already a directory at the same
** path and either the permissions already match or can be changed
** to do so using chmod(), it is not an error. */
struct stat sStat;
STRUCT_STAT sStat;
if( errno!=EEXIST
|| 0!=fileStat(zFile, &sStat)
|| !S_ISDIR(sStat.st_mode)
Expand Down Expand Up @@ -8561,7 +8562,7 @@ struct fsdir_cursor {
const char *zBase;
int nBase;

struct stat sStat; /* Current lstat() results */
STRUCT_STAT sStat; /* Current lstat() results */
char *zPath; /* Path to current entry */
sqlite3_int64 iRowid; /* Current rowid */
};
Expand Down
Loading
Loading