aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2020-01-09 01:20:03 +0000
committerdrh <drh@noemail.net>2020-01-09 01:20:03 +0000
commit05b32ee3c0788fbe3d210ade38e186c903678556 (patch)
tree672c21664ae5fcacb3d92d7960ed07f19c797c29 /src/resolve.c
parent014fff20adb15674b91be74895fc8e3164a92434 (diff)
downloadsqlite-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.c7
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;