/ Check-in [f83aa0de]
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 | SQL 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
Context
2012-10-30
18:09
Enable the use of coroutines as an alternative to manifesting views used in a FROM clause. check-in: 9dca18f5 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: f83aa0de user: drh tags: subquery-as-coroutine
14:44
Fix a typo in the header comment for the OpenPseudo opcode. check-in: 4f106123 user: drh tags: subquery-as-coroutine
Changes
Hide Diffs Unified Diffs 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. */