Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Clarify the computation of compatible isOrdered by in the plan solver of the query planner. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | query-planner-fix |
Files: | files | file ages | folders |
SHA1: |
b5e8fd575a80334160de0aac8084ed5c |
User & Date: | drh 2014-08-07 20:37:01.008 |
Context
2014-08-07
| ||
20:42 | When the estimated sorting cost overwhelms the estimated lookup cost, ensure that lookup costs are still taken into account when selecting a lookup algorithm. (check-in: 2af630c572 user: drh tags: trunk) | |
20:37 | Clarify the computation of compatible isOrdered by in the plan solver of the query planner. (Closed-Leaf check-in: b5e8fd575a user: drh tags: query-planner-fix) | |
20:25 | Remove the extraneous debugging printf() from the previous check-in. (check-in: 8f04d2c008 user: drh tags: query-planner-fix) | |
Changes
Changes to src/where.c.
︙ | ︙ | |||
5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 | } /* Check to see if pWLoop should be added to the set of ** mxChoice best-so-far paths. ** ** First look for an existing path among best-so-far paths ** that covers the same set of loops and has the same isOrdered ** setting as the current path candidate. */ for(jj=0, pTo=aTo; jj<nTo; jj++, pTo++){ if( pTo->maskLoop==maskNew | > > > > | | 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 | } /* Check to see if pWLoop should be added to the set of ** mxChoice best-so-far paths. ** ** First look for an existing path among best-so-far paths ** that covers the same set of loops and has the same isOrdered ** setting as the current path candidate. ** ** The term "((pTo->isOrdered^isOrdered)&0x80)==0" is equivalent ** to (pTo->isOrdered==(-1))==(isOrdered==(-1))" for the range ** of legal values for isOrdered, -1..64. */ for(jj=0, pTo=aTo; jj<nTo; jj++, pTo++){ if( pTo->maskLoop==maskNew && ((pTo->isOrdered^isOrdered)&0x80)==0 ){ testcase( jj==nTo-1 ); break; } } if( jj>=nTo ){ /* None of the existing best-so-far paths match the candidate. */ |
︙ | ︙ |