mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Do not allow floating point rounding errors to cause a window function xInverse() function to be invoked before the corresponding xStep() call.
FossilOrigin-Name: 7a19fed4f222bc6c20e13a1367c8235916d21ba5e6f5a31cd26842efe748e744
This commit is contained in:
@ -2001,4 +2001,48 @@ do_execsql_test 65.4 {
|
||||
FROM t1;
|
||||
} {{}}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
reset_db
|
||||
|
||||
do_execsql_test 66.1 {
|
||||
CREATE TABLE t1(a INTEGER);
|
||||
INSERT INTO t1 VALUES(3578824042033200656);
|
||||
INSERT INTO t1 VALUES(3029012920382354029);
|
||||
}
|
||||
|
||||
foreach {tn spec} {
|
||||
1 "ORDER BY a RANGE BETWEEN 0.3 PRECEDING AND 10 FOLLOWING"
|
||||
2 "ORDER BY a RANGE BETWEEN 0.3 PRECEDING AND 0.1 PRECEDING"
|
||||
3 "ORDER BY a RANGE BETWEEN 0.3 FOLLOWING AND 10 FOLLOWING"
|
||||
4 "ORDER BY a DESC RANGE BETWEEN 0.3 PRECEDING AND 10 FOLLOWING"
|
||||
5 "ORDER BY a NULLS LAST RANGE BETWEEN 0.3 PRECEDING AND 10 FOLLOWING"
|
||||
6 "ORDER BY a RANGE BETWEEN 1.0 PRECEDING AND 2.0 PRECEDING"
|
||||
} {
|
||||
do_execsql_test 66.2.$tn "
|
||||
SELECT total(a) OVER ( $spec ) FROM t1 ORDER BY a
|
||||
" {
|
||||
3.02901292038235e+18 3.5788240420332e+18
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
do_execsql_test 66.3 {
|
||||
CREATE TABLE t2(a INTEGER);
|
||||
INSERT INTO t2 VALUES(45);
|
||||
INSERT INTO t2 VALUES(30);
|
||||
}
|
||||
|
||||
foreach {tn spec res} {
|
||||
1 "ORDER BY a RANGE BETWEEN 0.3 PRECEDING AND 10 FOLLOWING" {30.0 45.0}
|
||||
2 "ORDER BY a RANGE BETWEEN 0.3 PRECEDING AND 0.1 PRECEDING" {0.0 0.0}
|
||||
3 "ORDER BY a RANGE BETWEEN 0.3 FOLLOWING AND 10 FOLLOWING" {0.0 0.0}
|
||||
4 "ORDER BY a DESC RANGE BETWEEN 0.3 PRECEDING AND 10 FOLLOWING" {30.0 45.0}
|
||||
5 "ORDER BY a NULLS LAST RANGE BETWEEN 0.3 PRECEDING AND 10 FOLLOWING" {30.0 45.0}
|
||||
6 "ORDER BY a RANGE BETWEEN 1.0 PRECEDING AND 2.0 PRECEDING" {0.0 0.0}
|
||||
} {
|
||||
do_execsql_test 66.2.$tn "
|
||||
SELECT total(a) OVER ( $spec ) FROM t2 ORDER BY a
|
||||
" $res
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user