SQLite

Check-in [f83aa0de84]
Login

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

Overview
Comment:Make sure that the optimizer never tries to create an automatic index on a coroutine subquery.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | subquery-as-coroutine
Files: files | file ages | folders
SHA1: f83aa0de8470748b3cd0bff232aeea3baf8dae53
User & Date: drh 2012-10-30 15:31:31.124
Context
2012-10-30
18:09
Enable the use of coroutines as an alternative to manifesting views used in a FROM clause. (check-in: 9dca18f5fe user: drh tags: trunk)
15:31
Make sure that the optimizer never tries to create an automatic index on a coroutine subquery. (Closed-Leaf check-in: f83aa0de84 user: drh tags: subquery-as-coroutine)
14:44
Fix a typo in the header comment for the OpenPseudo opcode. (check-in: 4f1061230e user: drh tags: subquery-as-coroutine)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/where.c.
1816
1817
1818
1819
1820
1821
1822




1823
1824
1825
1826
1827
1828
1829
    return;
  }
  if( (p->cost.plan.wsFlags & WHERE_NOT_FULLSCAN)!=0
   && (p->cost.plan.wsFlags & WHERE_COVER_SCAN)==0
  ){
    /* We already have some kind of index in use for this query. */
    return;




  }
  if( pSrc->notIndexed ){
    /* The NOT INDEXED clause appears in the SQL. */
    return;
  }
  if( pSrc->isCorrelated ){
    /* The source is a correlated sub-query. No point in indexing it. */







>
>
>
>







1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
    return;
  }
  if( (p->cost.plan.wsFlags & WHERE_NOT_FULLSCAN)!=0
   && (p->cost.plan.wsFlags & WHERE_COVER_SCAN)==0
  ){
    /* We already have some kind of index in use for this query. */
    return;
  }
  if( pSrc->viaCoroutine ){
    /* Cannot index a co-routine */
    return;
  }
  if( pSrc->notIndexed ){
    /* The NOT INDEXED clause appears in the SQL. */
    return;
  }
  if( pSrc->isCorrelated ){
    /* The source is a correlated sub-query. No point in indexing it. */