mirror of
https://github.com/sqlite/sqlite.git
synced 2025-12-24 14:17:58 +03:00
Change the name of the Parse.pIdxExpr field to pIdxEpr so that the name is
distinct from all other identifiers in the code and thus less confusing. FossilOrigin-Name: a2962d0187534f3496282b48efbf38dabcd226bf8972be925c8433c55a8853fe
This commit is contained in:
18
manifest
18
manifest
@@ -1,5 +1,5 @@
|
||||
C OPFS\scontention\stest:\sgive\seach\sworker\sa\sdistinct\srecognizable\sname\sinstead\sof\sa\srandom\sone.
|
||||
D 2022-11-21T16:00:26.047
|
||||
C Change\sthe\sname\sof\sthe\sParse.pIdxExpr\sfield\sto\spIdxEpr\sso\sthat\sthe\sname\sis\ndistinct\sfrom\sall\sother\sidentifiers\sin\sthe\scode\sand\sthus\sless\sconfusing.
|
||||
D 2022-11-21T16:40:12.023
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||
@@ -591,7 +591,7 @@ F src/date.c 94ce83b4cd848a387680a5f920c9018c16655db778c4d36525af0a0f34679ac5
|
||||
F src/dbpage.c f1a87f4ebcf22284e0aaf0697862f4ccfc120dcd6db3d8dfa3b049b2580c01d8
|
||||
F src/dbstat.c 861e08690fcb0f2ee1165eff0060ea8d4f3e2ea10f80dab7d32ad70443a6ff2d
|
||||
F src/delete.c 86573edae75e3d3e9a8b590d87db8e47222103029df4f3e11fa56044459b514e
|
||||
F src/expr.c 847f87d9df3ede2b2b0a8db088af0b9c1923b21009f8ea1b9b7b28cb0a383170
|
||||
F src/expr.c bc6527e3dff813c8102418e6e201870626a7fa5f69329ea7b082d602e7ed1cd9
|
||||
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
|
||||
F src/fkey.c 722f20779f5342a787922deded3628d8c74b5249cab04098cf17ee2f2aaff002
|
||||
F src/func.c 7e86074afc4dc702691a29b7801f6dcc191db092b52e8bbe69dcd2f7be52194d
|
||||
@@ -646,7 +646,7 @@ F src/shell.c.in 16740a86346ba9823f92528ec588f2b74f68166dac965dabd19883ace230f11
|
||||
F src/sqlite.h.in 100fc660c2f19961b8ed8437b9d53d687de2f8eb2b96437ec6da216adcb643ca
|
||||
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
||||
F src/sqlite3ext.h c4b9fa7a7e2bcdf850cfeb4b8a91d5ec47b7a00033bc996fd2ee96cbf2741f5f
|
||||
F src/sqliteInt.h 1a2cec0f7682da69975eb203fef2058949051ff500445b997d8047cbd8813315
|
||||
F src/sqliteInt.h 42bcbb6cebef64c99068e7bc141a2541d40d65c7c26a9ca5ada4d83ca353555d
|
||||
F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
|
||||
F src/status.c 160c445d7d28c984a0eae38c144f6419311ed3eace59b44ac6dafc20db4af749
|
||||
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
|
||||
@@ -728,7 +728,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
|
||||
F src/wal.c b9df133a705093da8977da5eb202eaadb844839f1c7297c08d33471f5491843d
|
||||
F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
|
||||
F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b
|
||||
F src/where.c 1ef5aae7fac877057b9f360f06b26d4275888460d8fb6e92bbb9e70e07afe946
|
||||
F src/where.c ea0f518df9e00aa44013a1d384090b4b3a499ee11d4daa0a7d99c4eb9f7ab4ba
|
||||
F src/whereInt.h df0c79388c0b71b4a91f480d02791679fe0345d40410435c541c8893e95a4d3f
|
||||
F src/wherecode.c 133a94f82858787217d073143617df19e4a6a7d0b771a1519f957608109ad5a5
|
||||
F src/whereexpr.c 05295b44b54eea76d1ba766f0908928d0e20e990c249344c9521454d3d09c7ae
|
||||
@@ -2059,8 +2059,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P bee94d1bb0daade023cc1e274339daafc249e1978c0765fc45042b5f9060e478
|
||||
R 24e9b381879a473eda77c6d52873b2a6
|
||||
U stephan
|
||||
Z 5200ed97b9b65f90e5d50e34624e223d
|
||||
P 5f564bf7de7ce3ad7bedb5f06b3086ceaec55da768a60d74059fa4fba4328567
|
||||
R fadcb96891525abc2e619c860d5616b7
|
||||
U drh
|
||||
Z 75407774f59d7d22e403811dc4acdbf3
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
5f564bf7de7ce3ad7bedb5f06b3086ceaec55da768a60d74059fa4fba4328567
|
||||
a2962d0187534f3496282b48efbf38dabcd226bf8972be925c8433c55a8853fe
|
||||
12
src/expr.c
12
src/expr.c
@@ -4037,7 +4037,7 @@ static int exprCodeInlineFunction(
|
||||
}
|
||||
|
||||
/*
|
||||
** Check to see if pExpr is one of the indexed expressions on pParse->pIdxExpr.
|
||||
** Check to see if pExpr is one of the indexed expressions on pParse->pIdxEpr.
|
||||
** If it is, then resolve the expression by reading from the index and
|
||||
** return the register into which the value has been read. If pExpr is
|
||||
** not an indexed expression, then return negative.
|
||||
@@ -4049,7 +4049,7 @@ static SQLITE_NOINLINE int sqlite3IndexedExprLookup(
|
||||
){
|
||||
IndexedExpr *p;
|
||||
Vdbe *v;
|
||||
for(p=pParse->pIdxExpr; p; p=p->pIENext){
|
||||
for(p=pParse->pIdxEpr; p; p=p->pIENext){
|
||||
int iDataCur = p->iDataCur;
|
||||
if( iDataCur<0 ) continue;
|
||||
if( pParse->iSelfTab ){
|
||||
@@ -4069,10 +4069,10 @@ static SQLITE_NOINLINE int sqlite3IndexedExprLookup(
|
||||
sqlite3VdbeAddOp3(v, OP_Column, p->iIdxCur, p->iIdxCol, target);
|
||||
VdbeComment((v, "%s expr-column %d", p->zIdxName, p->iIdxCol));
|
||||
sqlite3VdbeGoto(v, 0);
|
||||
p = pParse->pIdxExpr;
|
||||
pParse->pIdxExpr = 0;
|
||||
p = pParse->pIdxEpr;
|
||||
pParse->pIdxEpr = 0;
|
||||
sqlite3ExprCode(pParse, pExpr, target);
|
||||
pParse->pIdxExpr = p;
|
||||
pParse->pIdxEpr = p;
|
||||
sqlite3VdbeJumpHere(v, addr+2);
|
||||
}else{
|
||||
sqlite3VdbeAddOp3(v, OP_Column, p->iIdxCur, p->iIdxCol, target);
|
||||
@@ -4111,7 +4111,7 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
|
||||
expr_code_doover:
|
||||
if( pExpr==0 ){
|
||||
op = TK_NULL;
|
||||
}else if( pParse->pIdxExpr!=0
|
||||
}else if( pParse->pIdxEpr!=0
|
||||
&& !ExprHasProperty(pExpr, EP_Leaf)
|
||||
&& (r1 = sqlite3IndexedExprLookup(pParse, pExpr, target))>=0
|
||||
){
|
||||
|
||||
@@ -3656,7 +3656,7 @@ struct Parse {
|
||||
int nLabelAlloc; /* Number of slots in aLabel */
|
||||
int *aLabel; /* Space to hold the labels */
|
||||
ExprList *pConstExpr;/* Constant expressions */
|
||||
IndexedExpr *pIdxExpr;/* List of expressions used by active indexes */
|
||||
IndexedExpr *pIdxEpr;/* List of expressions used by active indexes */
|
||||
Token constraintName;/* Name of the constraint currently being parsed */
|
||||
yDbMask writeMask; /* Start a write transaction on these databases */
|
||||
yDbMask cookieMask; /* Bitmask of schema verified databases */
|
||||
|
||||
22
src/where.c
22
src/where.c
@@ -4591,8 +4591,8 @@ static i8 wherePathSatisfiesOrderBy(
|
||||
if( pOBExpr->iTable!=iCur ) continue;
|
||||
if( pOBExpr->iColumn!=iColumn ) continue;
|
||||
}else{
|
||||
Expr *pIdxExpr = pIndex->aColExpr->a[j].pExpr;
|
||||
if( sqlite3ExprCompareSkip(pOBExpr, pIdxExpr, iCur) ){
|
||||
Expr *pIxExpr = pIndex->aColExpr->a[j].pExpr;
|
||||
if( sqlite3ExprCompareSkip(pOBExpr, pIxExpr, iCur) ){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -5461,13 +5461,13 @@ static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful(
|
||||
|
||||
/*
|
||||
** This is an sqlite3ParserAddCleanup() callback that is invoked to
|
||||
** free the Parse->pIdxExpr list when the Parse object is destroyed.
|
||||
** free the Parse->pIdxEpr list when the Parse object is destroyed.
|
||||
*/
|
||||
static void whereIndexedExprCleanup(sqlite3 *db, void *pObject){
|
||||
Parse *pParse = (Parse*)pObject;
|
||||
while( pParse->pIdxExpr!=0 ){
|
||||
IndexedExpr *p = pParse->pIdxExpr;
|
||||
pParse->pIdxExpr = p->pIENext;
|
||||
while( pParse->pIdxEpr!=0 ){
|
||||
IndexedExpr *p = pParse->pIdxEpr;
|
||||
pParse->pIdxEpr = p->pIENext;
|
||||
sqlite3ExprDelete(db, p->pExpr);
|
||||
sqlite3DbFreeNN(db, p);
|
||||
}
|
||||
@@ -5479,13 +5479,13 @@ static void whereIndexedExprCleanup(sqlite3 *db, void *pObject){
|
||||
** number for the index and iDataCur is the cursor number for the corresponding
|
||||
** table.
|
||||
**
|
||||
** This routine adds IndexedExpr entries to the Parse->pIdxExpr field for
|
||||
** This routine adds IndexedExpr entries to the Parse->pIdxEpr field for
|
||||
** each of the expressions in the index so that the expression code generator
|
||||
** will know to replace occurrences of the indexed expression with
|
||||
** references to the corresponding column of the index.
|
||||
*/
|
||||
static SQLITE_NOINLINE void whereAddIndexedExpr(
|
||||
Parse *pParse, /* Add IndexedExpr entries to pParse->pIdxExpr */
|
||||
Parse *pParse, /* Add IndexedExpr entries to pParse->pIdxEpr */
|
||||
Index *pIdx, /* The index-on-expression that contains the expressions */
|
||||
int iIdxCur, /* Cursor number for pIdx */
|
||||
SrcItem *pTabItem /* The FROM clause entry for the table */
|
||||
@@ -5514,7 +5514,7 @@ static SQLITE_NOINLINE void whereAddIndexedExpr(
|
||||
if( sqlite3ExprIsConstant(pExpr) ) continue;
|
||||
p = sqlite3DbMallocRaw(pParse->db, sizeof(IndexedExpr));
|
||||
if( p==0 ) break;
|
||||
p->pIENext = pParse->pIdxExpr;
|
||||
p->pIENext = pParse->pIdxEpr;
|
||||
p->pExpr = sqlite3ExprDup(pParse->db, pExpr, 0);
|
||||
p->iDataCur = pTabItem->iCursor;
|
||||
p->iIdxCur = iIdxCur;
|
||||
@@ -5523,7 +5523,7 @@ static SQLITE_NOINLINE void whereAddIndexedExpr(
|
||||
#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
p->zIdxName = pIdx->zName;
|
||||
#endif
|
||||
pParse->pIdxExpr = p;
|
||||
pParse->pIdxEpr = p;
|
||||
if( p->pIENext==0 ){
|
||||
sqlite3ParserAddCleanup(pParse, whereIndexedExprCleanup, pParse);
|
||||
}
|
||||
@@ -6474,7 +6474,7 @@ void sqlite3WhereEnd(WhereInfo *pWInfo){
|
||||
last = pWInfo->iEndWhere;
|
||||
}
|
||||
if( pIdx->bHasExpr ){
|
||||
IndexedExpr *p = pParse->pIdxExpr;
|
||||
IndexedExpr *p = pParse->pIdxEpr;
|
||||
while( p ){
|
||||
if( p->iIdxCur==pLevel->iIdxCur ){
|
||||
p->iDataCur = -1;
|
||||
|
||||
Reference in New Issue
Block a user