aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2015-08-20 23:54:25 +0000
committerdrh <drh@noemail.net>2015-08-20 23:54:25 +0000
commit89a10b2d5312ce304906e2ee2f9932302ed2b85b (patch)
treeefa18c5656cf051fb0d10a1576ec6f12f957dfc7 /src/expr.c
parent87c44ef2f76229eeb5086e8e5ddb41a0fc6db150 (diff)
parent0fee5969c8928e4043416fdc6cdfff738ce40f55 (diff)
downloadsqlite-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.c16
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++;