Fix a problem with using window functions in compound (UNION, INTERSECT etc.)
queries. FossilOrigin-Name: 059ff53a46c7f1e4bf3e7dc558312beef67826c2753e2ab7e4e7df498b37b617
This commit is contained in:
parent
46de072880
commit
0f5f54062c
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C Add\sthe\ssqlite3changeset_start_v2()\s-\sa\snew\sversion\sof\s_start()\sthat\saccepts\sa\sflags\sparameter\s-\sand\sa\sstreaming\sequivalent\sto\sthe\ssessions\smodule.\sAlso\sadd\sthe\sSQLITE_CHANGESETSTART_INVERT\sflag,\sused\swith\sstart_v2()\sto\sinvert\sa\schangeset\swhile\siterating\sthrough\sit.
|
||||
D 2018-10-20T13:48:09.884
|
||||
C Fix\sa\sproblem\swith\susing\swindow\sfunctions\sin\scompound\s(UNION,\sINTERSECT\setc.)\nqueries.
|
||||
D 2018-10-23T13:48:19.879
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F Makefile.in 01e95208a78b57d056131382c493c963518f36da4c42b12a97eb324401b3a334
|
||||
@ -593,7 +593,7 @@ F src/where.c a54a3d639bcd751d1474deff58e239b2e475a96e1b8f9178aa7864df8782a4e3
|
||||
F src/whereInt.h f125f29fca80890768e0b2caa14f95db74b2dacd3a122a168f97aa7b64d6968f
|
||||
F src/wherecode.c 3df0a541373d5f999684d761e4bd700d57adb46c7d39da4e77b767b5adcd5893
|
||||
F src/whereexpr.c 1b5a5a7876997f65232bbf19c5c1eeb47eb328b8fa5b28c865543052904cde00
|
||||
F src/window.c a28d8d42c51c7e31136a42f3e245282049d4a9466b36d7bd765772991472df41
|
||||
F src/window.c 6550e2850ebced51100ef83d49b00a1cf03f81a482dafedafb0320df647ed8fc
|
||||
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
||||
F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
|
||||
F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
|
||||
@ -1646,7 +1646,7 @@ F test/win32heap.test 10fd891266bd00af68671e702317726375e5407561d859be1aa04696f2
|
||||
F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972
|
||||
F test/win32longpath.test 169c75a3b2e43481f4a62122510210c67b08f26d
|
||||
F test/win32nolock.test ac4f08811a562e45a5755e661f45ca85892bdbbc
|
||||
F test/window1.test 474bef1a6ac291755e51d1f9458dc11117c1870ac5e08b4d3938649b215f8334
|
||||
F test/window1.test 02e481ac48c445b43bab7b3cf1e4115165b5127a1aa29e14f5372922c836f1a4
|
||||
F test/window2.tcl 9bfa842d8a62b0d36dc8c1b5972206393c43847433c6d75940b87fec93ce3143
|
||||
F test/window2.test 8e6d2a1b9f54dfebee1cde961c8590cd87b4db45c50f44947a211e1b63c2a05e
|
||||
F test/window3.tcl 577a3b1ff913208e5248c04dab9df17fd760ce159a752789e26d0cb4a5f91823
|
||||
@ -1772,7 +1772,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P f7affa2e708d1b4c7c47157bcb18e9f79611ca45a93ebc88de6dc96f84a677e7
|
||||
R 3605ff60956926e38b591288ff5e2c64
|
||||
P cbedcb9aaefdfe00453efbdf0eac6c15e1f53bbe8fff2e7d534a5adf23be04f5
|
||||
R d52bd090bd9fd502659683e6d6b4324b
|
||||
U dan
|
||||
Z 32299de6da54da0b9ad3507fdc1f1f73
|
||||
Z 24c25ee2516ea8b59659cd5b9047d478
|
||||
|
@ -1 +1 @@
|
||||
cbedcb9aaefdfe00453efbdf0eac6c15e1f53bbe8fff2e7d534a5adf23be04f5
|
||||
059ff53a46c7f1e4bf3e7dc558312beef67826c2753e2ab7e4e7df498b37b617
|
@ -746,7 +746,7 @@ static ExprList *exprListAppendList(
|
||||
*/
|
||||
int sqlite3WindowRewrite(Parse *pParse, Select *p){
|
||||
int rc = SQLITE_OK;
|
||||
if( p->pWin ){
|
||||
if( p->pWin && p->pPrior==0 ){
|
||||
Vdbe *v = sqlite3GetVdbe(pParse);
|
||||
sqlite3 *db = pParse->db;
|
||||
Select *pSub = 0; /* The subquery */
|
||||
|
@ -549,4 +549,49 @@ do_execsql_test 12.110 {
|
||||
ORDER BY b LIMIT 2;
|
||||
} {2 B two 3 C three}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
do_execsql_test 13.1 {
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int, b int);
|
||||
INSERT INTO t1 VALUES(1,11);
|
||||
INSERT INTO t1 VALUES(2,12);
|
||||
}
|
||||
|
||||
do_execsql_test 13.2.1 {
|
||||
SELECT a, rank() OVER(ORDER BY b) FROM t1;
|
||||
SELECT a, rank() OVER(ORDER BY b DESC) FROM t1;
|
||||
} {
|
||||
1 1 2 2 2 1 1 2
|
||||
}
|
||||
do_execsql_test 13.2.2 {
|
||||
SELECT a, rank() OVER(ORDER BY b) FROM t1
|
||||
UNION ALL
|
||||
SELECT a, rank() OVER(ORDER BY b DESC) FROM t1;
|
||||
} {
|
||||
1 1 2 2 2 1 1 2
|
||||
}
|
||||
do_execsql_test 13.3 {
|
||||
SELECT a, rank() OVER(ORDER BY b) FROM t1
|
||||
UNION
|
||||
SELECT a, rank() OVER(ORDER BY b DESC) FROM t1;
|
||||
} {
|
||||
1 1 1 2 2 1 2 2
|
||||
}
|
||||
|
||||
do_execsql_test 13.4 {
|
||||
SELECT a, rank() OVER(ORDER BY b) FROM t1
|
||||
EXCEPT
|
||||
SELECT a, rank() OVER(ORDER BY b DESC) FROM t1;
|
||||
} {
|
||||
1 1 2 2
|
||||
}
|
||||
|
||||
do_execsql_test 13.5 {
|
||||
SELECT a, rank() OVER(ORDER BY b) FROM t1
|
||||
INTERSECT
|
||||
SELECT a, rank() OVER(ORDER BY b DESC) FROM t1;
|
||||
} {
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
Loading…
Reference in New Issue
Block a user