diff options
author | drh <drh@noemail.net> | 2015-08-20 23:54:25 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-08-20 23:54:25 +0000 |
commit | 89a10b2d5312ce304906e2ee2f9932302ed2b85b (patch) | |
tree | efa18c5656cf051fb0d10a1576ec6f12f957dfc7 /src/expr.c | |
parent | 87c44ef2f76229eeb5086e8e5ddb41a0fc6db150 (diff) | |
parent | 0fee5969c8928e4043416fdc6cdfff738ce40f55 (diff) | |
download | sqlite-89a10b2d5312ce304906e2ee2f9932302ed2b85b.tar.gz sqlite-89a10b2d5312ce304906e2ee2f9932302ed2b85b.zip |
Merge recent trunk enhancements, include table-valued functions.
FossilOrigin-Name: e9196d566690de0e9815f8cd85be7844322b5a79
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/expr.c b/src/expr.c index 5acb90966..1062733cb 100644 --- a/src/expr.c +++ b/src/expr.c @@ -1034,16 +1034,18 @@ SrcList *sqlite3SrcListDup(sqlite3 *db, SrcList *p, int flags){ pNewItem->zDatabase = sqlite3DbStrDup(db, pOldItem->zDatabase); pNewItem->zName = sqlite3DbStrDup(db, pOldItem->zName); pNewItem->zAlias = sqlite3DbStrDup(db, pOldItem->zAlias); - pNewItem->jointype = pOldItem->jointype; + pNewItem->fg = pOldItem->fg; pNewItem->iCursor = pOldItem->iCursor; pNewItem->addrFillSub = pOldItem->addrFillSub; pNewItem->regReturn = pOldItem->regReturn; - pNewItem->isCorrelated = pOldItem->isCorrelated; - pNewItem->viaCoroutine = pOldItem->viaCoroutine; - pNewItem->isRecursive = pOldItem->isRecursive; - pNewItem->zIndexedBy = sqlite3DbStrDup(db, pOldItem->zIndexedBy); - pNewItem->notIndexed = pOldItem->notIndexed; - pNewItem->pIndex = pOldItem->pIndex; + if( pNewItem->fg.isIndexedBy ){ + pNewItem->u1.zIndexedBy = sqlite3DbStrDup(db, pOldItem->u1.zIndexedBy); + } + pNewItem->pIBIndex = pOldItem->pIBIndex; + if( pNewItem->fg.isTabFunc ){ + pNewItem->u1.pFuncArg = + sqlite3ExprListDup(db, pOldItem->u1.pFuncArg, flags); + } pTab = pNewItem->pTab = pOldItem->pTab; if( pTab ){ pTab->nRef++; |