]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge trunk changes into this branch.
authordan <dan@noemail.net>
Mon, 4 Mar 2019 21:08:53 +0000 (21:08 +0000)
committerdan <dan@noemail.net>
Mon, 4 Mar 2019 21:08:53 +0000 (21:08 +0000)
FossilOrigin-Name: 9b4d561f68febdab6624d8c567fb4357bf67dda500664cf708d16a76f37b8ec1

1  2 
manifest
manifest.uuid
src/sqliteInt.h
test/window1.test

diff --cc manifest
index cb38d7f1b86793235250e38bf2fed4b6960c82c5,d2655343e5f87e7d0c81c0b4e747dcb5cc3aa8be..02bc958277aa834e27ad39c25f1431b26ef6c9a6
+++ b/manifest
@@@ -1,8 -1,8 +1,8 @@@
- C Support\ssome\s"ROWS\sBETWEEN\sN\sPRECEDING\sAND\sM\sFOLLOWING"\swindow\sfunctions\swithout\scaching\sentire\spartitions.
- D 2019-03-04T21:07:11.233
 -C Fix\sa\sproblem\spreventing\scompilation\swith\sSQLITE_OMIT_UTF16.
 -D 2019-03-04T07:15:57.844
++C Merge\strunk\schanges\sinto\sthis\sbranch.
++D 2019-03-04T21:08:53.342
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
- F Makefile.in 178d8eb6840771149cee40b322d1b3be30d330198c522c903c1b66fb5a1bfca4
+ F Makefile.in 1ad7263f38329c0ecea543c80f30af839ee714ea77fc391bf1a3fbb919a5b6b5
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
  F Makefile.msc 5df60c70edb157feb2148a14c687551969599bd065875a0b959b6b139721ca72
  F README.md 377233394b905d3b2e2b33741289e093bc93f2e7adbe00923b2c5958c9a9edee
@@@ -498,28 -499,28 +499,28 @@@ F src/os.c 8aeb0b0f40f8f5b0da03fe497066
  F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c f6e91b8fd82af7afbfd073c4974ad6cdb8e62d9f65ceddb45167835a0567fdc0
+ F src/os_unix.c 2b9604eb5c12f40a0613e832b6267f5814f84479d570d482ba6f98d7affa7c1c
  F src/os_win.c 85d9e532d0444ab6c16d7431490c2e279e282aa0917b0e988996b1ae0de5c5a0
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c 38022624ac9fba1f601d3068d7c393fcc909727fccab556242c93d9c7897b640
+ F src/pager.c 5ff85a1dafdbbc3d27e21dbb52ac02066507b1e2d7da4cd4961408eed2cce23a
  F src/pager.h 217921e81eb5fe455caa5cda96061959706bcdd29ddb57166198645ef7822ac3
 -F src/parse.y 741a270b7f2f85bc5d026d06fb5a9ccba5335304ff2831e1cb44b36cd0da6006
 +F src/parse.y deae85a1917e53e8533e7eed55ffb4405e2e375c022afb1cc3fecb280ee5cd7a
  F src/pcache.c 696a01f1a6370c1b50a09c15972bc3bee3333f8fcd1f2da8e9a76b1b062c59ee
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
  F src/pcache1.c a72804486dfa8e4b6bc30d666c97ecf1155f91a4351fc6e48ea4097e4eb304fb
  F src/pragma.c af67dedaad8bafe9a5f9adcec32a0da6dd118617dd8220ad1d118f5a6bf83a02
  F src/pragma.h a776bb9c915207e9d1117b5754743ddf1bf6a39cc092a4a44e74e6cb5fab1177
  F src/prepare.c 78027c6231fbb19ca186a5f5f0c0a1375d9c2cec0655273f9bd90d9ff74a34b3
- F src/printf.c cbf27c320091a83279d1738f68a27a9fe01698c607ce80516ab6bdb5a9c36a1a
+ F src/printf.c 93a3d539019264683a444bc043c875e9a6cca43fe935ae7bf6cfff0af3bba118
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
- F src/resolve.c 1588690ee4cc39b4b9ea3230d4e3543d5ec3b5e898c87521f1375af0f1934cd4
+ F src/resolve.c 09419ad5c432190b69be7c0c326e03abb548a97c2c50675b81b459e1b382d1d2
  F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
- F src/select.c c998f694759e37799929e28df8a2649747f8774d4fc233529ab6bda689388e15
- F src/shell.c.in f2c1adbee3f6f36686b4a38d2168ebfc25298b4ad1e6d95199fc4e95b539251d
- F src/sqlite.h.in 7da74fd5bd7a9dbe92297060f036935520b26e240457287c5e67c7b9db51a986
+ F src/select.c 9263f5c30dd44c7ac2eb29f40a7ec64322a96885b71c00de6bc30b756c2e1c49
+ F src/shell.c.in 249c0bf34f7ce272cb17162c297c45ab674a52a5d85193a86191f131196de47f
+ F src/sqlite.h.in f19f7b7646ccd331511b123e2e23d4dc3f3d02f74e1c04d2bb560ea50a323e4c
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 960f1b86c3610fa23cb6a267572a97dcf286e77aa0dd3b9b23292ffaa1ea8683
- F src/sqliteInt.h fa802d30bdb2c41a3645875006c08876ff2beca44f4e3715b6794fce9451538a
 -F src/sqliteInt.h f253c4ec15e577a293a462e5049f8ea1d0c7a31819b3a88acdd24698df8f4d0b
++F src/sqliteInt.h 641932dfd799f3dcb3e038d635a6415f62e0b3f2a5668288f3b69062d9afeab3
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
@@@ -601,9 -602,9 +602,9 @@@ F src/wal.h 606292549f5a7be50b6227bd685
  F src/walker.c 7607f1a68130c028255d8d56094ea602fc402c79e1e35a46e6282849d90d5fe4
  F src/where.c 8a207cb2ca6b99e1edb1e4bbff9b0504385a759cbf66180d1deb34d80ca4b799
  F src/whereInt.h 5f14db426ca46a83eabab1ae9aa6d4b8f27504ad35b64c290916289b1ddb2e88
- F src/wherecode.c a571d8d7c19d6db786a201f2df8788b320fefcb2842f2a1eb9a85b85e91bc35f
+ F src/wherecode.c ce7b21e1be2b981d62683fc59c4ca73a04a7ff2f1ebec23d41baf2da2349afd6
  F src/whereexpr.c 36b47f7261d6b6f1a72d774c113b74beddf6745aba1018e64b196e29db233442
 -F src/window.c df2456386e0b1553a8d1fcf3a0ddc4c058fe2c650ea8c74b6bf8862082ddafc9
 +F src/window.c b2316f6082849e6a98a7f46209528721082533297c3c8b535edd5581863610d7
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
  F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
@@@ -1675,11 -1676,11 +1676,11 @@@ F test/win32heap.test 10fd891266bd00af6
  F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972
  F test/win32longpath.test 169c75a3b2e43481f4a62122510210c67b08f26d
  F test/win32nolock.test ac4f08811a562e45a5755e661f45ca85892bdbbc
- F test/window1.test 4d98700cf287144be87942b587431fed6d0a262ba8ee72fae7ee860ca9ea5282
 -F test/window1.test d141eba02ee4d7441dcb45148d776aded21992e8de6ddbbe2aae8151e5fad45e
++F test/window1.test 5d9b3cfc4be6bf37fd81941e133f0f39741612c14dd8ad52e78850e9e61a7c10
  F test/window2.tcl 9bfa842d8a62b0d36dc8c1b5972206393c43847433c6d75940b87fec93ce3143
  F test/window2.test 8e6d2a1b9f54dfebee1cde961c8590cd87b4db45c50f44947a211e1b63c2a05e
 -F test/window3.tcl 577a3b1ff913208e5248c04dab9df17fd760ce159a752789e26d0cb4a5f91823
 -F test/window3.test e274b7f8952ca4ed25996e0e45c047192b066e0aaff2a822d4293c8c4f1d8d98
 +F test/window3.tcl 3bf7fc5b86024f47bb5834efc90015c9a64f57d696b82e26a1a4b648b7cd058a
 +F test/window3.test ee56c741e934a0b872fffd7de99f137f9c7788d50885f99f54da4075d951e8ee
  F test/window4.tcl 511425f6b0abf9b953df54cc9c7295cc7c25d78f4ed6f7a74b094eec0120eccb
  F test/window4.test c5d6bf3403e4ade2f19df2afe4c16f29fb817c392c6c1c8017edb7165c191a62
  F test/window5.test d328dd18221217c49c144181975eea17339eaeaf0e9aa558cee3afb84652821e
@@@ -1808,8 -1805,7 +1809,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P c155125fd5dddb438c09d40f5137c47d88defb7a6ede4261f09d7bdaad250d37
- R af19e2d286499d03a5f60c3423d10c17
- T +closed 9c17fdebd5a44754ee5d23b5403b0c51fae6ba98eb4b2b54e1389de4d4b142f7
 -P d7d23f0450d659b2c7df34e4df8623ca7b6fe3bd19422e3e9234515214ae8510
 -R dc88e96e04121683ea3d6378eccdabf0
++P e7a91f12282afb5d5d7d78397a11d18e0268ee0c931d85e21fce00d13929494e 906d1fd8650874236e0bf5734d5347dcc45ec036164a56570fec37da4ffeaf8f
++R 30a9373810c2da7278ca9b29b61f206e
  U dan
- Z 3c7515a96a0c664794629970af14a8d6
 -Z 97fe7239616646a62550c014b5d021f5
++Z 5d336602dfcf4b9ecdc6fcf657926dd9
diff --cc manifest.uuid
index d331cc5a1250c6554bb6295ab8de9194a71fb448,821cac909ed6eb3d681eed581cbab83f6ec588dc..e7fad35e6a84051b51b181e0f283baf6865c9f6c
@@@ -1,1 -1,1 +1,1 @@@
- e7a91f12282afb5d5d7d78397a11d18e0268ee0c931d85e21fce00d13929494e
 -906d1fd8650874236e0bf5734d5347dcc45ec036164a56570fec37da4ffeaf8f
++9b4d561f68febdab6624d8c567fb4357bf67dda500664cf708d16a76f37b8ec1
diff --cc src/sqliteInt.h
Simple merge
index ab67734daf179e12c3457039be58c01520b58a65,b3073985be09894d580cf8c87cab223972a3754e..03566347bef5edb9020ce69ff2e043cd35421229
@@@ -700,106 -700,25 +700,126 @@@ do_execsql_test 16.2 
    3 101
  }
  
- do_execsql_test 17.0 {
+ #-------------------------------------------------------------------------
+ do_execsql_test 17.0 {
+   CREATE TABLE t8(a);
+   INSERT INTO t8 VALUES(1), (2), (3);
+ }
+ do_execsql_test 17.1 {
+   SELECT +sum(0) OVER () ORDER BY +sum(0) OVER ();
+ } {0}
+ do_execsql_test 17.2 {
+   select +sum(a) OVER () FROM t8 ORDER BY +sum(a) OVER () DESC;
+ } {6 6 6}
+ do_execsql_test 17.3 {
+   SELECT 10+sum(a) OVER (ORDER BY a) 
+   FROM t8 
+   ORDER BY 10+sum(a) OVER (ORDER BY a) DESC;
+ } {16 13 11}
 +#-------------------------------------------------------------------------
 +# Test error cases from chaining window definitions.
 +#
 +reset_db
-   do_catchsql_test 17.1.$tn $sql [list 1 $error]
++do_execsql_test 18.0 {
 +  DROP TABLE IF EXISTS t1;
 +  CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c TEXT, d INTEGER);
 +  INSERT INTO t1 VALUES(1, 'odd',  'one',   1);
 +  INSERT INTO t1 VALUES(2, 'even', 'two',   2);
 +  INSERT INTO t1 VALUES(3, 'odd',  'three', 3);
 +  INSERT INTO t1 VALUES(4, 'even', 'four',  4);
 +  INSERT INTO t1 VALUES(5, 'odd',  'five',  5);
 +  INSERT INTO t1 VALUES(6, 'even', 'six',   6);
 +}
 +
 +foreach {tn sql error} {
 +  1 {
 +    SELECT c, sum(d) OVER win2 FROM t1
 +      WINDOW win1 AS (ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING), 
 +             win2 AS (win1 ORDER BY b)
 +  } {cannot override frame specification of window: win1}
 +
 +  2 {
 +    SELECT c, sum(d) OVER win2 FROM t1
 +      WINDOW win1 AS (),
 +             win2 AS (win4 ORDER BY b)
 +  } {no such window: win4}
 +
 +  3 {
 +    SELECT c, sum(d) OVER win2 FROM t1
 +      WINDOW win1 AS (),
 +             win2 AS (win1 PARTITION BY d)
 +  } {cannot override PARTITION clause of window: win1}
 +
 +  4 {
 +    SELECT c, sum(d) OVER win2 FROM t1
 +      WINDOW win1 AS (ORDER BY b),
 +             win2 AS (win1 ORDER BY d)
 +  } {cannot override ORDER BY clause of window: win1}
 +} {
-   do_catchsql_test 17.2.$tn $sql [list 1 $error]
++  do_catchsql_test 18.1.$tn $sql [list 1 $error]
 +}
 +
 +foreach {tn sql error} {
 +  1 {
 +    SELECT c, sum(d) OVER (win1 ORDER BY b) FROM t1
 +      WINDOW win1 AS (ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
 +  } {cannot override frame specification of window: win1}
 +
 +  2 {
 +    SELECT c, sum(d) OVER (win4 ORDER BY b) FROM t1
 +      WINDOW win1 AS ()
 +  } {no such window: win4}
 +
 +  3 {
 +    SELECT c, sum(d) OVER (win1 PARTITION BY d) FROM t1
 +      WINDOW win1 AS ()
 +  } {cannot override PARTITION clause of window: win1}
 +
 +  4 {
 +    SELECT c, sum(d) OVER (win1 ORDER BY d) FROM t1
 +      WINDOW win1 AS (ORDER BY b)
 +  } {cannot override ORDER BY clause of window: win1}
 +} {
- do_execsql_test 17.3.1 {
++  do_catchsql_test 18.2.$tn $sql [list 1 $error]
 +}
 +
- do_execsql_test 17.3.2 {
++do_execsql_test 18.3.1 {
 +  SELECT group_concat(c, '.') OVER (PARTITION BY b ORDER BY c)
 +  FROM t1
 +} {four four.six four.six.two five five.one five.one.three}
 +
- do_execsql_test 17.3.3 {
++do_execsql_test 18.3.2 {
 +  SELECT group_concat(c, '.') OVER (win1 ORDER BY c)
 +  FROM t1
 +  WINDOW win1 AS (PARTITION BY b)
 +} {four four.six four.six.two five five.one five.one.three}
 +
- do_execsql_test 17.3.4 {
++do_execsql_test 18.3.3 {
 +  SELECT group_concat(c, '.') OVER win2
 +  FROM t1
 +  WINDOW win1 AS (PARTITION BY b),
 +         win2 AS (win1 ORDER BY c)
 +} {four four.six four.six.two five five.one five.one.three}
 +
- do_execsql_test 17.3.5 {
++do_execsql_test 18.3.4 {
 +  SELECT group_concat(c, '.') OVER (win2)
 +  FROM t1
 +  WINDOW win1 AS (PARTITION BY b),
 +         win2 AS (win1 ORDER BY c)
 +} {four four.six four.six.two five five.one five.one.three}
 +
++do_execsql_test 18.3.5 {
 +  SELECT group_concat(c, '.') OVER win5
 +  FROM t1
 +  WINDOW win1 AS (PARTITION BY b),
 +         win2 AS (win1),
 +         win3 AS (win2),
 +         win4 AS (win3),
 +         win5 AS (win4 ORDER BY c)
 +} {four four.six four.six.two five five.one five.one.three}
  
  finish_test