Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Better determination of when an index is UNIQUE. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | nextgen-query-plan-exp |
Files: | files | file ages | folders |
SHA1: |
63fd025ad98c33826342824c51436ac9 |
User & Date: | drh 2013-06-04 13:37:26.983 |
Context
2013-06-04
| ||
15:31 | Test case updates. (check-in: 0360fec7c0 user: drh tags: nextgen-query-plan-exp) | |
13:37 | Better determination of when an index is UNIQUE. (check-in: 63fd025ad9 user: drh tags: nextgen-query-plan-exp) | |
13:07 | Increase the estimated full-scan cost for an FTS3 table. (check-in: 8d9f29f847 user: drh tags: nextgen-query-plan-exp) | |
Changes
Changes to src/where.c.
︙ | ︙ | |||
4020 4021 4022 4023 4024 4025 4026 | pNew->u.btree.nEq++; pNew->nOut = (double)iRowEst * nInMul * nIn; }else if( pTerm->eOperator & (WO_EQ) ){ assert( (pNew->wsFlags & (WHERE_COLUMN_NULL|WHERE_COLUMN_IN))!=0 || nInMul==1 ); pNew->wsFlags |= WHERE_COLUMN_EQ; if( iCol<0 | | | 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 | pNew->u.btree.nEq++; pNew->nOut = (double)iRowEst * nInMul * nIn; }else if( pTerm->eOperator & (WO_EQ) ){ assert( (pNew->wsFlags & (WHERE_COLUMN_NULL|WHERE_COLUMN_IN))!=0 || nInMul==1 ); pNew->wsFlags |= WHERE_COLUMN_EQ; if( iCol<0 || (pProbe->onError!=OE_None && nInMul==1 && pNew->u.btree.nEq==pProbe->nColumn-1) ){ testcase( pNew->wsFlags & WHERE_COLUMN_IN ); pNew->wsFlags |= WHERE_ONEROW; } pNew->u.btree.nEq++; pNew->nOut = (double)iRowEst * nInMul; |
︙ | ︙ | |||
4717 4718 4719 4720 4721 4722 4723 | rev = revIdx ^ pOrderBy->a[i].sortOrder; if( rev ) *pRevMask |= MASKBIT(iLoop); revSet = 1; } } }else{ /* No match found */ | | | 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 | rev = revIdx ^ pOrderBy->a[i].sortOrder; if( rev ) *pRevMask |= MASKBIT(iLoop); revSet = 1; } } }else{ /* No match found */ if( j<nColumn || pIndex==0 || pIndex->onError==OE_None ){ isWellOrdered = 0; } break; } } /* end Loop over all index columns */ } /* end-if not one-row */ |
︙ | ︙ |