diff options
author | drh <drh@noemail.net> | 2020-01-09 01:20:03 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2020-01-09 01:20:03 +0000 |
commit | 05b32ee3c0788fbe3d210ade38e186c903678556 (patch) | |
tree | 672c21664ae5fcacb3d92d7960ed07f19c797c29 /src/resolve.c | |
parent | 014fff20adb15674b91be74895fc8e3164a92434 (diff) | |
download | sqlite-05b32ee3c0788fbe3d210ade38e186c903678556.tar.gz sqlite-05b32ee3c0788fbe3d210ade38e186c903678556.zip |
Fix a problem that restricted edgy functions in TEMP tables.
New test cases added.
FossilOrigin-Name: 8878c40753566a8c4ccd1d413019cabde7569b947f730527d13bfc3db384e97d
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/resolve.c b/src/resolve.c index cfdbc569f..3e5ac16e2 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -876,7 +876,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ }else{ assert( (NC_SelfRef & 0xff)==NC_SelfRef ); /* Must fit in 8 bits */ pExpr->op2 = pNC->ncFlags & NC_SelfRef; - if( pExpr->op2 ) ExprSetProperty(pExpr, EP_FromDDL); + if( pNC->ncFlags & NC_FromDDL ) ExprSetProperty(pExpr, EP_FromDDL); } if( (pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0 && pParse->nested==0 @@ -1884,6 +1884,11 @@ int sqlite3ResolveSelfReference( sSrc.a[0].zName = pTab->zName; sSrc.a[0].pTab = pTab; sSrc.a[0].iCursor = -1; + if( pTab->pSchema!=pParse->db->aDb[1].pSchema ){ + /* Cause EP_FromDDL to be set on TK_FUNCTION nodes of non-TEMP + ** schema elements */ + type |= NC_FromDDL; + } } sNC.pParse = pParse; sNC.pSrcList = &sSrc; |