]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge latest trunk changes into this branch.
authordan <dan@noemail.net>
Wed, 13 Mar 2019 17:31:20 +0000 (17:31 +0000)
committerdan <dan@noemail.net>
Wed, 13 Mar 2019 17:31:20 +0000 (17:31 +0000)
FossilOrigin-Name: 0b904517bd6c4c59082381577246d3d2351b4265fc9151438ee4c33cf16f2eb1

1  2 
manifest
manifest.uuid
src/btree.c
test/window1.test

diff --cc manifest
index 6d0ad5dc3dec7292597b641ba4caf4cc283d8cd3,6391de1b4412d28f84db1e98301171cb7bac3974..152e9700ff1593225d347474a7a8b79bd0bd38d4
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Avoid\sallocating\sexcessive\sregisters\sfor\sthe\sPARTITION\sBY\sexpressions\swhen\sprocessing\swindow\sfunctions.
- D 2019-03-13T17:20:27.939
 -C New\stest\scases\sadded\sto\stest/fuzzdata8.db
 -D 2019-03-13T13:19:05.629
++C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
++D 2019-03-13T17:31:20.025
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F Makefile.in 236d2739dc3e823c3c909bca2d6cef93009bafbefd7018a8f3281074ecb92954
@@@ -456,7 -456,7 +456,7 @@@ F src/auth.c 0fac71038875693a937e506bce
  F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab
  F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c 3aa86a5230912958908564b465b0893e5fa98aac61cd255591f8fe58c85390a6
 -F src/btree.c 4c09765664b0baecce2a35529c86d004fc9a1524c1fa4c94d5b72e04908b43e7
++F src/btree.c b4fe9e71438e659db8e68ba2fca64b7275eb39b1d36500b218b742511198da1a
  F src/btree.h 63b94fb38ce571c15eb6a3661815561b501d23d5948b2d1e951fbd7a2d04e8d3
  F src/btreeInt.h 6111c15868b90669f79081039d19e7ea8674013f907710baa3c814dc3f8bfd3f
  F src/build.c 3acec29b23948042173301a8befebae01a98344debf66cbd4467c8b9077707b8
@@@ -603,8 -603,8 +603,8 @@@ F src/walker.c 7607f1a68130c028255d8d56
  F src/where.c 8a207cb2ca6b99e1edb1e4bbff9b0504385a759cbf66180d1deb34d80ca4b799
  F src/whereInt.h 5f14db426ca46a83eabab1ae9aa6d4b8f27504ad35b64c290916289b1ddb2e88
  F src/wherecode.c ce7b21e1be2b981d62683fc59c4ca73a04a7ff2f1ebec23d41baf2da2349afd6
- F src/whereexpr.c 36b47f7261d6b6f1a72d774c113b74beddf6745aba1018e64b196e29db233442
+ F src/whereexpr.c 90859652920f153d2c03f075488744be2926625ebd36911bcbcb17d0d29c891c
 -F src/window.c df2456386e0b1553a8d1fcf3a0ddc4c058fe2c650ea8c74b6bf8862082ddafc9
 +F src/window.c 218582db176f7a367de9cd9c34ad969d525a49924ca75eaafd85a92773a34490
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
  F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
@@@ -1676,21 -1676,15 +1676,21 @@@ F test/win32heap.test 10fd891266bd00af6
  F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972
  F test/win32longpath.test 169c75a3b2e43481f4a62122510210c67b08f26d
  F test/win32nolock.test ac4f08811a562e45a5755e661f45ca85892bdbbc
- F test/window1.test 5d9b3cfc4be6bf37fd81941e133f0f39741612c14dd8ad52e78850e9e61a7c10
 -F test/window1.test 53db04133c48065c7554cb7195b0d23b879feb2dc9dacf0945a259c423687133
++F test/window1.test d690a34fc6b4e5032eed5eff659a1352d4a858352daeff1596e28910bae48727
  F test/window2.tcl 9bfa842d8a62b0d36dc8c1b5972206393c43847433c6d75940b87fec93ce3143
  F test/window2.test 8e6d2a1b9f54dfebee1cde961c8590cd87b4db45c50f44947a211e1b63c2a05e
 -F test/window3.tcl 577a3b1ff913208e5248c04dab9df17fd760ce159a752789e26d0cb4a5f91823
 -F test/window3.test e274b7f8952ca4ed25996e0e45c047192b066e0aaff2a822d4293c8c4f1d8d98
 -F test/window4.tcl 511425f6b0abf9b953df54cc9c7295cc7c25d78f4ed6f7a74b094eec0120eccb
 -F test/window4.test c5d6bf3403e4ade2f19df2afe4c16f29fb817c392c6c1c8017edb7165c191a62
 +F test/window3.tcl 3bf7fc5b86024f47bb5834efc90015c9a64f57d696b82e26a1a4b648b7cd058a
 +F test/window3.test ab76dbaeeb8ad8c4a43041a5e481520517ec5013e8898c93968155ac2e9ee0a1
 +F test/window4.tcl 5fbaab489677914ee5686b2008426e336daf88a2f58be7df92757f780a5ebf91
 +F test/window4.test 0e3d595705f0e74c2fd77658b388d8547f6b612c7eb4fb2ad4dd5725a62bfc12
  F test/window5.test d328dd18221217c49c144181975eea17339eaeaf0e9aa558cee3afb84652821e
 -F test/window6.test 5eae4ae7a590ccf1e605880969ca0bad3955616ac91cad3031baea38748badb3
 +F test/window6.test 604890f2b0f976339e6a1774cd90d48840e57a54b4f21a8b4b3047aa2c9787d1
 +F test/window7.tcl 6a1210f05d40ec89c22960213a22cd3f98d4e2f2eb20646c83c8c30d4d76108f
 +F test/window7.test ce7f865241fdd1c5c4db869cd7bb2986c3be836bc2e73649a6846dd920f63e0f
 +F test/window8.tcl 2aa94709defda0bbe05883cdb61ec51346ab0bacb4d84d724758fc62818c610a
 +F test/window8.test e33941d2b31a8641dbe40ee38ed08430e81cd884ad409ec9eeaec315e7ae1c3b
 +F test/windowerr.tcl 4f0b111cdbb8de401a8135cd116604fb8add13042bb47a1f1496dd47a690e864
 +F test/windowerr.test 461bc504d4af0ae16a081e0c3bdb3724356cdcfb07bdc4b1b2dc4ad91b69bb7e
  F test/windowfault.test 12ceb6bbb355d13e8fcd88c5731a57256dfdf77b9a7ae20842a76fcd4623df5b
  F test/with1.test a07b5aad7f77acdf13e52e8814ea94606fcc72e9ea4c99baf293e9d7c63940be
  F test/with2.test e0030e2f0267a910d6c0e4f46f2dfe941c1cc0d4f659ba69b3597728e7e8f1ab
@@@ -1812,7 -1806,7 +1812,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 6ad553192051eaa0c6d929baacde2de07b93c6d09de861028bbce55a2c9bfdd3
- R 33cd2506def134f030283f97ce3c86b2
 -P 4e1b005e8b397a22161a6b89cbd3f17bda70a6e0a86d8abdc61856edf2a74da4
 -R 72bf5085eb8ad2e7341fed5987ec95cf
 -U drh
 -Z d6a52f5ceaf622e4596e35b74cc6b2d3
++P 180be266238e18c01f8bd52c75dd9aa3e26e553620258141cd95189a0ae59ddb 049e9926202317f58c54b6351ff120fb69bf821f409909b1a1c5e335c0396707
++R 596a5e5aa86c74af47fe5b05e09689b1
 +U dan
- Z 6d870069833716bcaa0c118627808d33
++Z 4b80674bad29018c044451db12cfd533
diff --cc manifest.uuid
index 46d73f434812b3e282f741fe4b42b4380fe491e6,d0f5583815ebd3f2e8a6d2755179cfe394fbf563..241ead4e542914d0ffbc9867ca18d87455df0cf9
@@@ -1,1 -1,1 +1,1 @@@
- 180be266238e18c01f8bd52c75dd9aa3e26e553620258141cd95189a0ae59ddb
 -049e9926202317f58c54b6351ff120fb69bf821f409909b1a1c5e335c0396707
++0b904517bd6c4c59082381577246d3d2351b4265fc9151438ee4c33cf16f2eb1
diff --cc src/btree.c
Simple merge
index 03566347bef5edb9020ce69ff2e043cd35421229,0098ca3046b44a96fa8867c952e369d4398ffd23..e7cfe054962cc103597dd6ea88d5a386c9fd1d23
@@@ -720,106 -720,32 +720,133 @@@ do_execsql_test 17.3 
    ORDER BY 10+sum(a) OVER (ORDER BY a) DESC;
  } {16 13 11}
  
+ #-------------------------------------------------------------------------
+ #
+ reset_db
+ do_execsql_test 18.0 {
+   CREATE TABLE t1 ( t1_id INTEGER PRIMARY KEY );
+   CREATE TABLE t2 ( t2_id INTEGER PRIMARY KEY );
+   CREATE TABLE t3 ( t3_id INTEGER PRIMARY KEY );
+   INSERT INTO t1 VALUES(1),  (3), (5);
+   INSERT INTO t2 VALUES      (3), (5);
+   INSERT INTO t3 VALUES(10), (11), (12);
+ }
+ do_execsql_test 18.1 {
+   SELECT t1.* FROM t1, t2 WHERE 
+     t1_id=t2_id AND t1_id IN (
+         SELECT t1_id + row_number() OVER ( ORDER BY t1_id ) FROM t3
+     )
+ }
+ do_execsql_test 18.2 {
+   SELECT t1.* FROM t1, t2 WHERE 
+     t1_id=t2_id AND t1_id IN (
+         SELECT         row_number() OVER ( ORDER BY t1_id ) FROM t3
+     )
+ } {3}
 +#-------------------------------------------------------------------------
 +# Test error cases from chaining window definitions.
 +#
 +reset_db
 +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 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_catchsql_test 18.2.$tn $sql [list 1 $error]
 +}
 +
 +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 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 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 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