diff options
author | drh <> | 2024-03-18 18:00:17 +0000 |
---|---|---|
committer | drh <> | 2024-03-18 18:00:17 +0000 |
commit | 43a511927d1656ae73fdb808abdbc61d836b9668 (patch) | |
tree | be0f5c77c855b4eb43475bb939a7eec9d723d501 /src/window.c | |
parent | d31fc6e9cfd4d25d2fdea2f5aa41fee0a1d5e80c (diff) | |
parent | 2ad2584581992f59543bc00c3be313d29448aeb0 (diff) | |
download | sqlite-43a511927d1656ae73fdb808abdbc61d836b9668.tar.gz sqlite-43a511927d1656ae73fdb808abdbc61d836b9668.zip |
Add the "VALUES-as-coroutine" optimization. Large VALUES clauses on an
INSERT, for example, prepare and run in about half the time and with half
the memory. This check-in also includes enhancements to the internal
sqlite3ExprIsConstant() routine to recognize pure SQL functions as constant
if they have constant arguments.
FossilOrigin-Name: a120c9235f125e05be494038c16a9dd326fd79837698bef17e7879cd0cd75831
Diffstat (limited to 'src/window.c')
-rw-r--r-- | src/window.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/window.c b/src/window.c index 62df349fb..bcee65d92 100644 --- a/src/window.c +++ b/src/window.c @@ -1164,7 +1164,7 @@ void sqlite3WindowListDelete(sqlite3 *db, Window *p){ ** variable values in the expression tree. */ static Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr){ - if( 0==sqlite3ExprIsConstant(pExpr) ){ + if( 0==sqlite3ExprIsConstant(0,pExpr) ){ if( IN_RENAME_OBJECT ) sqlite3RenameExprUnmap(pParse, pExpr); sqlite3ExprDelete(pParse->db, pExpr); pExpr = sqlite3ExprAlloc(pParse->db, TK_NULL, 0, 0); |