| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 8e697d1 commit 19d3ed6
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,6 @@ | |||
| 1 | 1 | /****************************************************************************** | |
| 2 | 2 | ** This file is an amalgamation of many separate C source files from SQLite | |
| 3 | - ** version 3.50.3. By combining all the individual C code files into this | ||
| 3 | + ** version 3.50.4. By combining all the individual C code files into this | ||
| 4 | 4 | ** single large file, the entire code can be compiled as a single translation | |
| 5 | 5 | ** unit. This allows many compilers to do optimizations that would not be | |
| 6 | 6 | ** possible if the files were compiled separately. Performance improvements | |
@@ -18,7 +18,7 @@ | |||
| 18 | 18 | ** separate file. This file contains only code for the core SQLite library. | |
| 19 | 19 | ** | |
| 20 | 20 | ** The content in this amalgamation comes from Fossil check-in | |
| 21 | - ** 3ce993b8657d6d9deda380a93cdd6404a8c8 with changes in files: | ||
| 21 | + ** 4d8adfb30e03f9cf27f800a2c1ba3c48fb4c with changes in files: | ||
| 22 | 22 | ** | |
| 23 | 23 | ** | |
| 24 | 24 | */ | |
@@ -465,9 +465,9 @@ extern "C" { | |||
| 465 | 465 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], | |
| 466 | 466 | ** [sqlite_version()] and [sqlite_source_id()]. | |
| 467 | 467 | */ | |
| 468 | - #define SQLITE_VERSION "3.50.3" | ||
| 469 | - #define SQLITE_VERSION_NUMBER 3050003 | ||
| 470 | - #define SQLITE_SOURCE_ID "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" | ||
| 468 | + #define SQLITE_VERSION "3.50.4" | ||
| 469 | + #define SQLITE_VERSION_NUMBER 3050004 | ||
| 470 | + #define SQLITE_SOURCE_ID "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" | ||
| 471 | 471 | ||
| 472 | 472 | /* | |
| 473 | 473 | ** CAPI3REF: Run-Time Library Version Numbers | |
@@ -19440,6 +19440,7 @@ struct Expr { | |||
| 19440 | 19440 | Table *pTab; /* TK_COLUMN: Table containing column. Can be NULL | |
| 19441 | 19441 | ** for a column of an index on an expression */ | |
| 19442 | 19442 | Window *pWin; /* EP_WinFunc: Window/Filter defn for a function */ | |
| 19443 | + int nReg; /* TK_NULLS: Number of registers to NULL out */ | ||
| 19443 | 19444 | struct { /* TK_IN, TK_SELECT, and TK_EXISTS */ | |
| 19444 | 19445 | int iAddr; /* Subroutine entry address */ | |
| 19445 | 19446 | int regReturn; /* Register used to hold return address */ | |
@@ -21474,6 +21475,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeGeneratedColumn(Parse*, Table*, Column*, int) | |||
| 21474 | 21475 | SQLITE_PRIVATE void sqlite3ExprCodeCopy(Parse*, Expr*, int); | |
| 21475 | 21476 | SQLITE_PRIVATE void sqlite3ExprCodeFactorable(Parse*, Expr*, int); | |
| 21476 | 21477 | SQLITE_PRIVATE int sqlite3ExprCodeRunJustOnce(Parse*, Expr*, int); | |
| 21478 | + SQLITE_PRIVATE void sqlite3ExprNullRegisterRange(Parse*, int, int); | ||
| 21477 | 21479 | SQLITE_PRIVATE int sqlite3ExprCodeTemp(Parse*, Expr*, int*); | |
| 21478 | 21480 | SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse*, Expr*, int); | |
| 21479 | 21481 | SQLITE_PRIVATE int sqlite3ExprCodeExprList(Parse*, ExprList*, int, int, u8); | |
@@ -115241,6 +115243,12 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) | |||
| 115241 | 115243 | sqlite3VdbeLoadString(v, target, pExpr->u.zToken); | |
| 115242 | 115244 | return target; | |
| 115243 | 115245 | } | |
| 115246 | + case TK_NULLS: { | ||
| 115247 | + /* Set a range of registers to NULL. pExpr->y.nReg registers starting | ||
| 115248 | + ** with target */ | ||
| 115249 | + sqlite3VdbeAddOp3(v, OP_Null, 0, target, target + pExpr->y.nReg - 1); | ||
| 115250 | + return target; | ||
| 115251 | + } | ||
| 115244 | 115252 | default: { | |
| 115245 | 115253 | /* Make NULL the default case so that if a bug causes an illegal | |
| 115246 | 115254 | ** Expr node to be passed into this function, it will be handled | |
@@ -115925,6 +115933,25 @@ SQLITE_PRIVATE int sqlite3ExprCodeRunJustOnce( | |||
| 115925 | 115933 | return regDest; | |
| 115926 | 115934 | } | |
| 115927 | 115935 | ||
| 115936 | + /* | ||
| 115937 | + ** Make arrangements to invoke OP_Null on a range of registers | ||
| 115938 | + ** during initialization. | ||
| 115939 | + */ | ||
| 115940 | + SQLITE_PRIVATE SQLITE_NOINLINE void sqlite3ExprNullRegisterRange( | ||
| 115941 | + Parse *pParse, /* Parsing context */ | ||
| 115942 | + int iReg, /* First register to set to NULL */ | ||
| 115943 | + int nReg /* Number of sequential registers to NULL out */ | ||
| 115944 | + ){ | ||
| 115945 | + u8 okConstFactor = pParse->okConstFactor; | ||
| 115946 | + Expr t; | ||
| 115947 | + memset(&t, 0, sizeof(t)); | ||
| 115948 | + t.op = TK_NULLS; | ||
| 115949 | + t.y.nReg = nReg; | ||
| 115950 | + pParse->okConstFactor = 1; | ||
| 115951 | + sqlite3ExprCodeRunJustOnce(pParse, &t, iReg); | ||
| 115952 | + pParse->okConstFactor = okConstFactor; | ||
| 115953 | + } | ||
| 115954 | + | ||
| 115928 | 115955 | /* | |
| 115929 | 115956 | ** Generate code to evaluate an expression and store the results | |
| 115930 | 115957 | ** into a register. Return the register number where the results | |
@@ -153175,6 +153202,7 @@ SQLITE_PRIVATE int sqlite3Select( | |||
| 153175 | 153202 | sqlite3VdbeAddOp2(v, OP_Integer, 0, iAbortFlag); | |
| 153176 | 153203 | VdbeComment((v, "clear abort flag")); | |
| 153177 | 153204 | sqlite3VdbeAddOp3(v, OP_Null, 0, iAMem, iAMem+pGroupBy->nExpr-1); | |
| 153205 | + sqlite3ExprNullRegisterRange(pParse, iAMem, pGroupBy->nExpr); | ||
| 153178 | 153206 | ||
| 153179 | 153207 | /* Begin a loop that will extract all source rows in GROUP BY order. | |
| 153180 | 153208 | ** This might involve two separate loops with an OP_Sort in between, or | |
@@ -168470,6 +168498,7 @@ static int whereLoopAddBtree( | |||
| 168470 | 168498 | pNew->u.btree.nEq = 0; | |
| 168471 | 168499 | pNew->u.btree.nBtm = 0; | |
| 168472 | 168500 | pNew->u.btree.nTop = 0; | |
| 168501 | + pNew->u.btree.nDistinctCol = 0; | ||
| 168473 | 168502 | pNew->nSkip = 0; | |
| 168474 | 168503 | pNew->nLTerm = 0; | |
| 168475 | 168504 | pNew->iSortIdx = 0; | |
@@ -169538,8 +169567,6 @@ static i8 wherePathSatisfiesOrderBy( | |||
| 169538 | 169567 | obSat = obDone; | |
| 169539 | 169568 | } | |
| 169540 | 169569 | break; | |
| 169541 | - }else if( wctrlFlags & WHERE_DISTINCTBY ){ | ||
| 169542 | - pLoop->u.btree.nDistinctCol = 0; | ||
| 169543 | 169570 | } | |
| 169544 | 169571 | iCur = pWInfo->pTabList->a[pLoop->iTab].iCursor; | |
| 169545 | 169572 | ||
@@ -257280,7 +257307,7 @@ static void fts5SourceIdFunc( | |||
| 257280 | 257307 | ){ | |
| 257281 | 257308 | assert( nArg==0 ); | |
| 257282 | 257309 | UNUSED_PARAM2(nArg, apUnused); | |
| 257283 | - sqlite3_result_text(pCtx, "fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543", -1, SQLITE_TRANSIENT); | ||
| 257310 | + sqlite3_result_text(pCtx, "fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3", -1, SQLITE_TRANSIENT); | ||
| 257284 | 257311 | } | |
| 257285 | 257312 | ||
| 257286 | 257313 | /* | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -146,9 +146,9 @@ extern "C" { | |||
| 146 | 146 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], | |
| 147 | 147 | ** [sqlite_version()] and [sqlite_source_id()]. | |
| 148 | 148 | */ | |
| 149 | - #define SQLITE_VERSION "3.50.3" | ||
| 150 | - #define SQLITE_VERSION_NUMBER 3050003 | ||
| 151 | - #define SQLITE_SOURCE_ID "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" | ||
| 149 | + #define SQLITE_VERSION "3.50.4" | ||
| 150 | + #define SQLITE_VERSION_NUMBER 3050004 | ||
| 151 | + #define SQLITE_SOURCE_ID "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" | ||
| 152 | 152 | ||
| 153 | 153 | /* | |
| 154 | 154 | ** CAPI3REF: Run-Time Library Version Numbers | |
| Back | FazBrowse Home | New Git URL |
0 commit comments