diff options
author | dan <dan@noemail.net> | 2014-01-14 20:14:09 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2014-01-14 20:14:09 +0000 |
commit | 8ce7184bc26b1330817a68bca751beac4712cbb0 (patch) | |
tree | 90f4cb24d436f0ae8d64b211105ddfb00897f253 /src/where.c | |
parent | a9f5c13d0c7fd6c718ea8c8811e7824eba78e6e9 (diff) | |
download | sqlite-8ce7184bc26b1330817a68bca751beac4712cbb0.tar.gz sqlite-8ce7184bc26b1330817a68bca751beac4712cbb0.zip |
Add code to handle recursive CTEs.
FossilOrigin-Name: a5c2a54a07d35166911abc792008c05dea897742
Diffstat (limited to 'src/where.c')
-rw-r--r-- | src/where.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/where.c b/src/where.c index d5444a605..8827faa83 100644 --- a/src/where.c +++ b/src/where.c @@ -5653,7 +5653,11 @@ WhereInfo *sqlite3WhereBegin( iDb = sqlite3SchemaToIndex(db, pTab->pSchema); pLoop = pLevel->pWLoop; if( (pTab->tabFlags & TF_Ephemeral)!=0 || pTab->pSelect ){ - /* Do nothing */ + if( pTab->tabFlags & TF_Recursive ){ + int iCur = pTabItem->iCursor; + sqlite3VdbeAddOp2(v, OP_OpenEphreader, iCur, pTab->tnum); + } + /* Otherwise do nothing */ }else #ifndef SQLITE_OMIT_VIRTUALTABLE if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)!=0 ){ |