aboutsummaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authordrh <>2024-03-18 18:00:17 +0000
committerdrh <>2024-03-18 18:00:17 +0000
commit43a511927d1656ae73fdb808abdbc61d836b9668 (patch)
treebe0f5c77c855b4eb43475bb939a7eec9d723d501 /src/window.c
parentd31fc6e9cfd4d25d2fdea2f5aa41fee0a1d5e80c (diff)
parent2ad2584581992f59543bc00c3be313d29448aeb0 (diff)
downloadsqlite-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.c2
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);