]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add extra OOM test.
authordan <dan@noemail.net>
Fri, 15 Jun 2018 20:46:12 +0000 (20:46 +0000)
committerdan <dan@noemail.net>
Fri, 15 Jun 2018 20:46:12 +0000 (20:46 +0000)
FossilOrigin-Name: ac251f72608c27c1512a0b3457524f5378a0b13d93d829cf0ed8bc178bc54a73

manifest
manifest.uuid
src/window.c
test/window1.test
test/windowfault.test

index bbd225f77b56fdbb82e4df3e772a529da7e9bb4f..be0313c98f4bffc24e02e457389ad6f8626a0baa 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sanother\sproblem\sin\slead()/lag().\sAnd\ssome\serrors\sthat\scould\soccur\nfollowing\sOOM\sfaults.
-D 2018-06-15T19:01:35.254
+C Add\sextra\sOOM\stest.
+D 2018-06-15T20:46:12.018
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 498b77b89a8cb42f2ee20fcd6317f279a45c0d6ff40d27825f94b69884c09bbe
@@ -583,7 +583,7 @@ F src/where.c 0bcbf9e191ca07f9ea2008aa80e70ded46bcdffd26560c83397da501f00aece6
 F src/whereInt.h b90ef9b9707ef750eab2a7a080c48fb4900315033274689def32d0cf5a81ebe4
 F src/wherecode.c 3317f2b083a66d3e65a03edf316ade4ccb0a99c9956273282ebb579b95d4ba96
 F src/whereexpr.c 19cf35cdd9bf6d5589d8a5c960d99259761136187a2319a6e14d11cf1abe14c2
-F src/window.c ffc0a18a6ef54a7ef2ebc1757016f20420e79615421cfcc3eab33bc7fa164d9e
+F src/window.c d80ec071618365ed740495848c1ea05a674bf83c498acff10b3ab7a4209a37cc
 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
 F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
@@ -1617,14 +1617,14 @@ F test/win32heap.test 10fd891266bd00af68671e702317726375e5407561d859be1aa04696f2
 F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972
 F test/win32longpath.test 169c75a3b2e43481f4a62122510210c67b08f26d
 F test/win32nolock.test ac4f08811a562e45a5755e661f45ca85892bdbbc
-F test/window1.test fb076d9229d92bce9652fd676b1d942fe01601461e34ac138991464b5f3aec50
+F test/window1.test 3398c54113aedf04f4bf63ec22e8f30f87f6d56caa5e6313df0f7f1ee6d927e1
 F test/window2.tcl 0983de5eade5eeda49469244799d5331bfe3199fca3f6c6d2a836aa08f4fba1b
 F test/window2.test 79747b2edde4ad424e0752b27529aedc86e91f3d8d88846fa17ff0cb67f65086
 F test/window3.tcl 654d61d73e10db089b22514d498bb23ec310f720c0f4b5f69f67fda83d672048
 F test/window3.test 41727668ee31d2ba50f78efcb5bf1bda2c5cffd889aa65243511004669d1ac25
 F test/window4.tcl ce0c14185ba651de53994df8ac11da472b6bbd3534e148ad3ce87de6aa0426ed
 F test/window4.test 13b8cac12e78017d6c1873742efcb120f3d5b2debfdb412271bfb84969087037
-F test/windowfault.test bca3b1f1ae9191e10383a0656dc2a83de4accffe82789e14cde2add75014b2a9
+F test/windowfault.test 7d3655fcac44c903b1aa31d40e13d170c71b089551f0e6ed17b02f66fb731fb6
 F test/with1.test 58475190cd8caaeebea8cfeb2a264ec97a0c492b8ffe9ad20cefbb23df462f96
 F test/with2.test e0030e2f0267a910d6c0e4f46f2dfe941c1cc0d4f659ba69b3597728e7e8f1ab
 F test/with3.test 5e8ce2c585170bbbc0544e2a01a4941fa0be173ba5265e5c92eb588cd99a232d
@@ -1741,7 +1741,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 3839fb18f917e4f705821198d624b19d84eb07f1ee29ad23314ab7cec6bf6a2b
-R adaed58fd90921940e34c45d3932d470
+P fadd4dc119d8df0d871f4d839b7a11070e2ffb8927e84b3e7a94f34196db3de3
+R ac4dec8988017d1c9bddc25e0a619905
 U dan
-Z c764ee39de01fb711121f341b2196d9e
+Z 6a66cbb2264aaed6cff49821f754986b
index a0411a5455030c4360626f389e8969c35e544bd9..3ba860c5d2c50b81963336e55eac405548f6455b 100644 (file)
@@ -1 +1 @@
-fadd4dc119d8df0d871f4d839b7a11070e2ffb8927e84b3e7a94f34196db3de3
\ No newline at end of file
+ac251f72608c27c1512a0b3457524f5378a0b13d93d829cf0ed8bc178bc54a73
\ No newline at end of file
index 845d67907a3ee6e6dfbb88a67db14df9418587be..00f3f44c8b57b824594e671cf91ce769b03cf41d 100644 (file)
@@ -627,7 +627,7 @@ static int selectWindowRewriteSelectCb(Walker *pWalker, Select *pSelect){
 ** pWin->iEphCsr, where N is the number of elements in (*ppSub) after
 ** appending the new one.
 */
-static int selectWindowRewriteEList(
+static void selectWindowRewriteEList(
   Parse *pParse, 
   Window *pWin,
   ExprList *pEList,               /* Rewrite expressions in this list */
@@ -635,7 +635,6 @@ static int selectWindowRewriteEList(
 ){
   Walker sWalker;
   WindowRewrite sRewrite;
-  int rc;
 
   memset(&sWalker, 0, sizeof(Walker));
   memset(&sRewrite, 0, sizeof(WindowRewrite));
@@ -648,10 +647,9 @@ static int selectWindowRewriteEList(
   sWalker.xSelectCallback = selectWindowRewriteSelectCb;
   sWalker.u.pRewrite = &sRewrite;
 
-  rc = sqlite3WalkExprList(&sWalker, pEList);
+  (void)sqlite3WalkExprList(&sWalker, pEList);
 
   *ppSub = sRewrite.pSub;
-  return rc;
 }
 
 /*
@@ -709,10 +707,8 @@ int sqlite3WindowRewrite(Parse *pParse, Select *p){
     ** many columns the table will have.  */
     pMWin->iEphCsr = pParse->nTab++;
 
-    rc = selectWindowRewriteEList(pParse, pMWin, p->pEList, &pSublist);
-    if( rc ) return rc;
-    rc = selectWindowRewriteEList(pParse, pMWin, p->pOrderBy, &pSublist);
-    if( rc ) return rc;
+    selectWindowRewriteEList(pParse, pMWin, p->pEList, &pSublist);
+    selectWindowRewriteEList(pParse, pMWin, p->pOrderBy, &pSublist);
     pMWin->nBufferCol = (pSublist ? pSublist->nExpr : 0);
 
     /* Create the ORDER BY clause for the sub-select. This is the concatenation
index 2c99aa132b522284aac7f82d3d62b384f165631e..9c2a0a558378d08d179e5e632158bf91898e57be 100644 (file)
@@ -265,6 +265,10 @@ do_execsql_test 7.2 {
   4 6 8   6 8 10   8 10 default   10 {} default   {} {} default
 }
 
+do_execsql_test 7.3 {
+  SELECT row_number() OVER (ORDER BY x) FROM t1
+} {1 2 3 4 5}
+
 
 finish_test
 
index 5df9dd8c27f0a351a6eee168696cb52774e0b687..d185e9f9138cc559f7b37b4f34a12fbdc993ebdb 100644 (file)
@@ -46,6 +46,18 @@ do_faultsim_test 1 -start 1 -faults oom-* -prep {
   faultsim_test_result {0 {1 1 1 1 4 4 {} 8 {} 4 4 2 2 2 1 4 8 8 12 4 8 4 3 3 3 2 4 12 8 {} 8 12 4}}
 }
 
+do_faultsim_test 2 -faults oom-* -prep {
+  faultsim_restore_and_reopen
+} -body {
+  execsql {
+    SELECT min(d) OVER win, max(d) OVER win
+    FROM t1
+    WINDOW win AS (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
+  }
+} -test {
+  faultsim_test_result {0 {4 12 8 12 12 12}}
+}
+
 
 finish_test