SQLite

Check-in [4df5ea935e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Disable the OR optimization based on expressions in the ON clause of a LEFT JOIN. This is a temporary measure until we can devise a better fix.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | begin-concurrent-pnu-tempfix
Files: files | file ages | folders
SHA3-256: 4df5ea935efe2ed8056c1fc12f446c91b47fa72a3e79fbaf669b5e6b4e295304
User & Date: drh 2018-04-23 19:30:04.280
Context
2018-04-23
19:30
Disable the OR optimization based on expressions in the ON clause of a LEFT JOIN. This is a temporary measure until we can devise a better fix. (Closed-Leaf check-in: 4df5ea935e user: drh tags: begin-concurrent-pnu-tempfix)
2018-03-20
14:00
Merge all recent trunk enchancements, and especially the autoincrement write reduction fix. (check-in: 257900494f user: drh tags: begin-concurrent-pnu)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/where.c.
3349
3350
3351
3352
3353
3354
3355

3356
3357
3358
3359
3360
3361
3362
  memset(&sSum, 0, sizeof(sSum));
  pItem = pWInfo->pTabList->a + pNew->iTab;
  iCur = pItem->iCursor;

  for(pTerm=pWC->a; pTerm<pWCEnd && rc==SQLITE_OK; pTerm++){
    if( (pTerm->eOperator & WO_OR)!=0
     && (pTerm->u.pOrInfo->indexable & pNew->maskSelf)!=0 

    ){
      WhereClause * const pOrWC = &pTerm->u.pOrInfo->wc;
      WhereTerm * const pOrWCEnd = &pOrWC->a[pOrWC->nTerm];
      WhereTerm *pOrTerm;
      int once = 1;
      int i, j;
    







>







3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
  memset(&sSum, 0, sizeof(sSum));
  pItem = pWInfo->pTabList->a + pNew->iTab;
  iCur = pItem->iCursor;

  for(pTerm=pWC->a; pTerm<pWCEnd && rc==SQLITE_OK; pTerm++){
    if( (pTerm->eOperator & WO_OR)!=0
     && (pTerm->u.pOrInfo->indexable & pNew->maskSelf)!=0 
     && !ExprHasProperty(pTerm->pExpr, EP_FromJoin)
    ){
      WhereClause * const pOrWC = &pTerm->u.pOrInfo->wc;
      WhereTerm * const pOrWCEnd = &pOrWC->a[pOrWC->nTerm];
      WhereTerm *pOrTerm;
      int once = 1;
      int i, j;