Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Minor tweak to patch on this branch to reclaim some cycles. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | filter-clause |
Files: | files | file ages | folders |
SHA3-256: |
81eed055de856068109a7e332cca0c3f |
User & Date: | dan 2019-07-05 17:38:55.826 |
Context
2019-07-05
| ||
19:10 | Another very small performance improvement. (check-in: 7a1e30a17f user: dan tags: filter-clause) | |
17:38 | Minor tweak to patch on this branch to reclaim some cycles. (check-in: 81eed055de user: dan tags: filter-clause) | |
2019-07-03
| ||
18:31 | Add tests for the FILTER clause. And a bugfix. (check-in: 28aa1702f7 user: dan tags: filter-clause) | |
Changes
Changes to src/select.c.
︙ | ︙ | |||
6236 6237 6238 6239 6240 6241 6242 | for(i=0; i<sAggInfo.nFunc; i++){ Expr *pExpr = sAggInfo.aFunc[i].pExpr; assert( !ExprHasProperty(pExpr, EP_xIsSelect) ); sNC.ncFlags |= NC_InAggFunc; sqlite3ExprAnalyzeAggList(&sNC, pExpr->x.pList); #ifndef SQLITE_OMIT_WINDOWFUNC assert( !ExprHasProperty(pExpr, EP_WinFunc) ); | > | > | 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 | for(i=0; i<sAggInfo.nFunc; i++){ Expr *pExpr = sAggInfo.aFunc[i].pExpr; assert( !ExprHasProperty(pExpr, EP_xIsSelect) ); sNC.ncFlags |= NC_InAggFunc; sqlite3ExprAnalyzeAggList(&sNC, pExpr->x.pList); #ifndef SQLITE_OMIT_WINDOWFUNC assert( !ExprHasProperty(pExpr, EP_WinFunc) ); if( pExpr->y.pFilter ){ sqlite3ExprAnalyzeAggregates(&sNC, pExpr->y.pFilter); } #endif sNC.ncFlags &= ~NC_InAggFunc; } sAggInfo.mxReg = pParse->nMem; if( db->mallocFailed ) goto select_end; #if SELECTTRACE_ENABLED if( sqlite3SelectTrace & 0x400 ){ |
︙ | ︙ |
Changes to test/window2.tcl.
︙ | ︙ | |||
419 420 421 422 423 424 425 426 427 428 429 430 431 | execsql_float_test 4.9 { SELECT rank() OVER win AS rank, cume_dist() OVER win AS cume_dist FROM t1 WINDOW win AS (ORDER BY 1); } finish_test | > > > > | 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 | execsql_float_test 4.9 { SELECT rank() OVER win AS rank, cume_dist() OVER win AS cume_dist FROM t1 WINDOW win AS (ORDER BY 1); } execsql_test 4.10 { SELECT count(*) OVER (ORDER BY b) FROM t1 } finish_test |
Changes to test/window2.test.
︙ | ︙ | |||
889 890 891 892 893 894 895 896 | error "list element [set i] does not match: got=[set r] expected=[set r2]" } incr i } set {} {} } {} finish_test | > > > > | 889 890 891 892 893 894 895 896 897 898 899 900 | error "list element [set i] does not match: got=[set r] expected=[set r2]" } incr i } set {} {} } {} do_execsql_test 4.10 { SELECT count(*) OVER (ORDER BY b) FROM t1 } {3 3 3 6 6 6} finish_test |