aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/resolve.c b/src/resolve.c
index eb4339645..0b8dde7cc 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -732,9 +732,15 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
return WRC_Prune;
}
#endif
- if( pDef->funcFlags & SQLITE_FUNC_CONSTANT ){
+ if( pDef->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_DATETIME) ){
+ /* For the purposes of the EP_ConstFunc flag, date and time
+ ** functions are considered constant because the the time does
+ ** not change for the duration of a query. */
ExprSetProperty(pExpr,EP_ConstFunc);
- }else{
+ }
+ if( (pDef->funcFlags & SQLITE_FUNC_CONSTANT)==0 ){
+ /* DATETIME functions are considered non-deterministic because of
+ ** the 'now' capability */
notValid(pParse, pNC, "non-deterministic functions", NC_IdxExpr, 0);
}
}