Fossil SCM

Update the built-in SQLite to the latest 3.50.0 alpha that includes the NOT NULL optimization fix.

drh 2025-05-06 18:12 trunk
Commit 02d0432ed4cd9770c0df69d27358806a54686a773070f3f03219a56a182ba432
2 files changed +11 -7 +1 -1
+11 -7
--- extsrc/sqlite3.c
+++ extsrc/sqlite3.c
@@ -16,11 +16,11 @@
1616
** if you want a wrapper to interface SQLite with your choice of programming
1717
** language. The code for the "sqlite3" command-line shell is also in a
1818
** separate file. This file contains only code for the core SQLite library.
1919
**
2020
** The content in this amalgamation comes from Fossil check-in
21
-** 20abf1ec107f942e4527901685d61283c9c2 with changes in files:
21
+** 6eb2939a6093c0796910645172d80c530555 with changes in files:
2222
**
2323
**
2424
*/
2525
#ifndef SQLITE_AMALGAMATION
2626
#define SQLITE_CORE 1
@@ -465,11 +465,11 @@
465465
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
466466
** [sqlite_version()] and [sqlite_source_id()].
467467
*/
468468
#define SQLITE_VERSION "3.50.0"
469469
#define SQLITE_VERSION_NUMBER 3050000
470
-#define SQLITE_SOURCE_ID "2025-04-30 14:37:00 20abf1ec107f942e4527901685d61283c9c2fe7bcefad63dbf5c6cbf050da849"
470
+#define SQLITE_SOURCE_ID "2025-05-06 17:56:32 6eb2939a6093c0796910645172d80c53055559dd57c012f1dc815d89fbf84447"
471471
472472
/*
473473
** CAPI3REF: Run-Time Library Version Numbers
474474
** KEYWORDS: sqlite3_version sqlite3_sourceid
475475
**
@@ -87272,10 +87272,13 @@
8727287272
** into register iDest, then add the OPFLAG_TYPEOFARG flag to that
8727387273
** opcode.
8727487274
*/
8727587275
SQLITE_PRIVATE void sqlite3VdbeTypeofColumn(Vdbe *p, int iDest){
8727687276
VdbeOp *pOp = sqlite3VdbeGetLastOp(p);
87277
+#ifdef SQLITE_DEBUG
87278
+ while( pOp->opcode==OP_ReleaseReg ) pOp--;
87279
+#endif
8727787280
if( pOp->p3==iDest && pOp->opcode==OP_Column ){
8727887281
pOp->p5 |= OPFLAG_TYPEOFARG;
8727987282
}
8728087283
}
8728187284
@@ -98119,10 +98122,11 @@
9811998122
}
9812098123
}else{
9812198124
zHdr += sqlite3PutVarint(zHdr, serial_type);
9812298125
if( pRec->n ){
9812398126
assert( pRec->z!=0 );
98127
+ assert( pRec->z!=(const char*)sqlite3CtypeMap );
9812498128
memcpy(zPayload, pRec->z, pRec->n);
9812598129
zPayload += pRec->n;
9812698130
}
9812798131
}
9812898132
if( pRec==pLast ) break;
@@ -116339,15 +116343,15 @@
116339116343
case TK_ISNULL:
116340116344
case TK_NOTNULL: {
116341116345
assert( TK_ISNULL==OP_IsNull ); testcase( op==TK_ISNULL );
116342116346
assert( TK_NOTNULL==OP_NotNull ); testcase( op==TK_NOTNULL );
116343116347
r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, &regFree1);
116344
- sqlite3VdbeTypeofColumn(v, r1);
116348
+ assert( regFree1==0 || regFree1==r1 );
116349
+ if( regFree1 ) sqlite3VdbeTypeofColumn(v, r1);
116345116350
sqlite3VdbeAddOp2(v, op, r1, dest);
116346116351
VdbeCoverageIf(v, op==TK_ISNULL);
116347116352
VdbeCoverageIf(v, op==TK_NOTNULL);
116348
- testcase( regFree1==0 );
116349116353
break;
116350116354
}
116351116355
case TK_BETWEEN: {
116352116356
testcase( jumpIfNull==0 );
116353116357
exprCodeBetween(pParse, pExpr, dest, sqlite3ExprIfTrue, jumpIfNull);
@@ -116514,15 +116518,15 @@
116514116518
break;
116515116519
}
116516116520
case TK_ISNULL:
116517116521
case TK_NOTNULL: {
116518116522
r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, &regFree1);
116519
- sqlite3VdbeTypeofColumn(v, r1);
116523
+ assert( regFree1==0 || regFree1==r1 );
116524
+ if( regFree1 ) sqlite3VdbeTypeofColumn(v, r1);
116520116525
sqlite3VdbeAddOp2(v, op, r1, dest);
116521116526
testcase( op==TK_ISNULL ); VdbeCoverageIf(v, op==TK_ISNULL);
116522116527
testcase( op==TK_NOTNULL ); VdbeCoverageIf(v, op==TK_NOTNULL);
116523
- testcase( regFree1==0 );
116524116528
break;
116525116529
}
116526116530
case TK_BETWEEN: {
116527116531
testcase( jumpIfNull==0 );
116528116532
exprCodeBetween(pParse, pExpr, dest, sqlite3ExprIfFalse, jumpIfNull);
@@ -257263,11 +257267,11 @@
257263257267
int nArg, /* Number of args */
257264257268
sqlite3_value **apUnused /* Function arguments */
257265257269
){
257266257270
assert( nArg==0 );
257267257271
UNUSED_PARAM2(nArg, apUnused);
257268
- sqlite3_result_text(pCtx, "fts5: 2025-04-30 14:37:00 20abf1ec107f942e4527901685d61283c9c2fe7bcefad63dbf5c6cbf050da849", -1, SQLITE_TRANSIENT);
257272
+ sqlite3_result_text(pCtx, "fts5: 2025-05-06 17:56:32 6eb2939a6093c0796910645172d80c53055559dd57c012f1dc815d89fbf84447", -1, SQLITE_TRANSIENT);
257269257273
}
257270257274
257271257275
/*
257272257276
** Implementation of fts5_locale(LOCALE, TEXT) function.
257273257277
**
257274257278
--- extsrc/sqlite3.c
+++ extsrc/sqlite3.c
@@ -16,11 +16,11 @@
16 ** if you want a wrapper to interface SQLite with your choice of programming
17 ** language. The code for the "sqlite3" command-line shell is also in a
18 ** separate file. This file contains only code for the core SQLite library.
19 **
20 ** The content in this amalgamation comes from Fossil check-in
21 ** 20abf1ec107f942e4527901685d61283c9c2 with changes in files:
22 **
23 **
24 */
25 #ifndef SQLITE_AMALGAMATION
26 #define SQLITE_CORE 1
@@ -465,11 +465,11 @@
465 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
466 ** [sqlite_version()] and [sqlite_source_id()].
467 */
468 #define SQLITE_VERSION "3.50.0"
469 #define SQLITE_VERSION_NUMBER 3050000
470 #define SQLITE_SOURCE_ID "2025-04-30 14:37:00 20abf1ec107f942e4527901685d61283c9c2fe7bcefad63dbf5c6cbf050da849"
471
472 /*
473 ** CAPI3REF: Run-Time Library Version Numbers
474 ** KEYWORDS: sqlite3_version sqlite3_sourceid
475 **
@@ -87272,10 +87272,13 @@
87272 ** into register iDest, then add the OPFLAG_TYPEOFARG flag to that
87273 ** opcode.
87274 */
87275 SQLITE_PRIVATE void sqlite3VdbeTypeofColumn(Vdbe *p, int iDest){
87276 VdbeOp *pOp = sqlite3VdbeGetLastOp(p);
 
 
 
87277 if( pOp->p3==iDest && pOp->opcode==OP_Column ){
87278 pOp->p5 |= OPFLAG_TYPEOFARG;
87279 }
87280 }
87281
@@ -98119,10 +98122,11 @@
98119 }
98120 }else{
98121 zHdr += sqlite3PutVarint(zHdr, serial_type);
98122 if( pRec->n ){
98123 assert( pRec->z!=0 );
 
98124 memcpy(zPayload, pRec->z, pRec->n);
98125 zPayload += pRec->n;
98126 }
98127 }
98128 if( pRec==pLast ) break;
@@ -116339,15 +116343,15 @@
116339 case TK_ISNULL:
116340 case TK_NOTNULL: {
116341 assert( TK_ISNULL==OP_IsNull ); testcase( op==TK_ISNULL );
116342 assert( TK_NOTNULL==OP_NotNull ); testcase( op==TK_NOTNULL );
116343 r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, &regFree1);
116344 sqlite3VdbeTypeofColumn(v, r1);
 
116345 sqlite3VdbeAddOp2(v, op, r1, dest);
116346 VdbeCoverageIf(v, op==TK_ISNULL);
116347 VdbeCoverageIf(v, op==TK_NOTNULL);
116348 testcase( regFree1==0 );
116349 break;
116350 }
116351 case TK_BETWEEN: {
116352 testcase( jumpIfNull==0 );
116353 exprCodeBetween(pParse, pExpr, dest, sqlite3ExprIfTrue, jumpIfNull);
@@ -116514,15 +116518,15 @@
116514 break;
116515 }
116516 case TK_ISNULL:
116517 case TK_NOTNULL: {
116518 r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, &regFree1);
116519 sqlite3VdbeTypeofColumn(v, r1);
 
116520 sqlite3VdbeAddOp2(v, op, r1, dest);
116521 testcase( op==TK_ISNULL ); VdbeCoverageIf(v, op==TK_ISNULL);
116522 testcase( op==TK_NOTNULL ); VdbeCoverageIf(v, op==TK_NOTNULL);
116523 testcase( regFree1==0 );
116524 break;
116525 }
116526 case TK_BETWEEN: {
116527 testcase( jumpIfNull==0 );
116528 exprCodeBetween(pParse, pExpr, dest, sqlite3ExprIfFalse, jumpIfNull);
@@ -257263,11 +257267,11 @@
257263 int nArg, /* Number of args */
257264 sqlite3_value **apUnused /* Function arguments */
257265 ){
257266 assert( nArg==0 );
257267 UNUSED_PARAM2(nArg, apUnused);
257268 sqlite3_result_text(pCtx, "fts5: 2025-04-30 14:37:00 20abf1ec107f942e4527901685d61283c9c2fe7bcefad63dbf5c6cbf050da849", -1, SQLITE_TRANSIENT);
257269 }
257270
257271 /*
257272 ** Implementation of fts5_locale(LOCALE, TEXT) function.
257273 **
257274
--- extsrc/sqlite3.c
+++ extsrc/sqlite3.c
@@ -16,11 +16,11 @@
16 ** if you want a wrapper to interface SQLite with your choice of programming
17 ** language. The code for the "sqlite3" command-line shell is also in a
18 ** separate file. This file contains only code for the core SQLite library.
19 **
20 ** The content in this amalgamation comes from Fossil check-in
21 ** 6eb2939a6093c0796910645172d80c530555 with changes in files:
22 **
23 **
24 */
25 #ifndef SQLITE_AMALGAMATION
26 #define SQLITE_CORE 1
@@ -465,11 +465,11 @@
465 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
466 ** [sqlite_version()] and [sqlite_source_id()].
467 */
468 #define SQLITE_VERSION "3.50.0"
469 #define SQLITE_VERSION_NUMBER 3050000
470 #define SQLITE_SOURCE_ID "2025-05-06 17:56:32 6eb2939a6093c0796910645172d80c53055559dd57c012f1dc815d89fbf84447"
471
472 /*
473 ** CAPI3REF: Run-Time Library Version Numbers
474 ** KEYWORDS: sqlite3_version sqlite3_sourceid
475 **
@@ -87272,10 +87272,13 @@
87272 ** into register iDest, then add the OPFLAG_TYPEOFARG flag to that
87273 ** opcode.
87274 */
87275 SQLITE_PRIVATE void sqlite3VdbeTypeofColumn(Vdbe *p, int iDest){
87276 VdbeOp *pOp = sqlite3VdbeGetLastOp(p);
87277 #ifdef SQLITE_DEBUG
87278 while( pOp->opcode==OP_ReleaseReg ) pOp--;
87279 #endif
87280 if( pOp->p3==iDest && pOp->opcode==OP_Column ){
87281 pOp->p5 |= OPFLAG_TYPEOFARG;
87282 }
87283 }
87284
@@ -98119,10 +98122,11 @@
98122 }
98123 }else{
98124 zHdr += sqlite3PutVarint(zHdr, serial_type);
98125 if( pRec->n ){
98126 assert( pRec->z!=0 );
98127 assert( pRec->z!=(const char*)sqlite3CtypeMap );
98128 memcpy(zPayload, pRec->z, pRec->n);
98129 zPayload += pRec->n;
98130 }
98131 }
98132 if( pRec==pLast ) break;
@@ -116339,15 +116343,15 @@
116343 case TK_ISNULL:
116344 case TK_NOTNULL: {
116345 assert( TK_ISNULL==OP_IsNull ); testcase( op==TK_ISNULL );
116346 assert( TK_NOTNULL==OP_NotNull ); testcase( op==TK_NOTNULL );
116347 r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, &regFree1);
116348 assert( regFree1==0 || regFree1==r1 );
116349 if( regFree1 ) sqlite3VdbeTypeofColumn(v, r1);
116350 sqlite3VdbeAddOp2(v, op, r1, dest);
116351 VdbeCoverageIf(v, op==TK_ISNULL);
116352 VdbeCoverageIf(v, op==TK_NOTNULL);
 
116353 break;
116354 }
116355 case TK_BETWEEN: {
116356 testcase( jumpIfNull==0 );
116357 exprCodeBetween(pParse, pExpr, dest, sqlite3ExprIfTrue, jumpIfNull);
@@ -116514,15 +116518,15 @@
116518 break;
116519 }
116520 case TK_ISNULL:
116521 case TK_NOTNULL: {
116522 r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, &regFree1);
116523 assert( regFree1==0 || regFree1==r1 );
116524 if( regFree1 ) sqlite3VdbeTypeofColumn(v, r1);
116525 sqlite3VdbeAddOp2(v, op, r1, dest);
116526 testcase( op==TK_ISNULL ); VdbeCoverageIf(v, op==TK_ISNULL);
116527 testcase( op==TK_NOTNULL ); VdbeCoverageIf(v, op==TK_NOTNULL);
 
116528 break;
116529 }
116530 case TK_BETWEEN: {
116531 testcase( jumpIfNull==0 );
116532 exprCodeBetween(pParse, pExpr, dest, sqlite3ExprIfFalse, jumpIfNull);
@@ -257263,11 +257267,11 @@
257267 int nArg, /* Number of args */
257268 sqlite3_value **apUnused /* Function arguments */
257269 ){
257270 assert( nArg==0 );
257271 UNUSED_PARAM2(nArg, apUnused);
257272 sqlite3_result_text(pCtx, "fts5: 2025-05-06 17:56:32 6eb2939a6093c0796910645172d80c53055559dd57c012f1dc815d89fbf84447", -1, SQLITE_TRANSIENT);
257273 }
257274
257275 /*
257276 ** Implementation of fts5_locale(LOCALE, TEXT) function.
257277 **
257278
--- extsrc/sqlite3.h
+++ extsrc/sqlite3.h
@@ -146,11 +146,11 @@
146146
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147147
** [sqlite_version()] and [sqlite_source_id()].
148148
*/
149149
#define SQLITE_VERSION "3.50.0"
150150
#define SQLITE_VERSION_NUMBER 3050000
151
-#define SQLITE_SOURCE_ID "2025-04-30 14:37:00 20abf1ec107f942e4527901685d61283c9c2fe7bcefad63dbf5c6cbf050da849"
151
+#define SQLITE_SOURCE_ID "2025-05-06 17:56:32 6eb2939a6093c0796910645172d80c53055559dd57c012f1dc815d89fbf84447"
152152
153153
/*
154154
** CAPI3REF: Run-Time Library Version Numbers
155155
** KEYWORDS: sqlite3_version sqlite3_sourceid
156156
**
157157
--- extsrc/sqlite3.h
+++ extsrc/sqlite3.h
@@ -146,11 +146,11 @@
146 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147 ** [sqlite_version()] and [sqlite_source_id()].
148 */
149 #define SQLITE_VERSION "3.50.0"
150 #define SQLITE_VERSION_NUMBER 3050000
151 #define SQLITE_SOURCE_ID "2025-04-30 14:37:00 20abf1ec107f942e4527901685d61283c9c2fe7bcefad63dbf5c6cbf050da849"
152
153 /*
154 ** CAPI3REF: Run-Time Library Version Numbers
155 ** KEYWORDS: sqlite3_version sqlite3_sourceid
156 **
157
--- extsrc/sqlite3.h
+++ extsrc/sqlite3.h
@@ -146,11 +146,11 @@
146 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147 ** [sqlite_version()] and [sqlite_source_id()].
148 */
149 #define SQLITE_VERSION "3.50.0"
150 #define SQLITE_VERSION_NUMBER 3050000
151 #define SQLITE_SOURCE_ID "2025-05-06 17:56:32 6eb2939a6093c0796910645172d80c53055559dd57c012f1dc815d89fbf84447"
152
153 /*
154 ** CAPI3REF: Run-Time Library Version Numbers
155 ** KEYWORDS: sqlite3_version sqlite3_sourceid
156 **
157

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button