]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
speedtest1: Improvements to the "json" testset. Better balance in "mix1".
authordrh <>
Thu, 16 Jan 2025 20:08:59 +0000 (20:08 +0000)
committerdrh <>
Thu, 16 Jan 2025 20:08:59 +0000 (20:08 +0000)
FossilOrigin-Name: 2cc73c5e08f1a16fe8accf0af6af061e42d27635883d09234516fd470e99bc0a

manifest
manifest.uuid
test/speedtest1.c

index 82d8bd5ec6e0a4eb3487a19c1195e0e92e0b7fe5..08f99e6eef08a87f66b5cf8712059bf86b266f24 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Revamp\sthe\s"json"\stestset\sin\sspeedtest1.
-D 2025-01-16T17:19:06.045
+C speedtest1:\s\sImprovements\sto\sthe\s"json"\stestset.\s\sBetter\sbalance\sin\s"mix1".
+D 2025-01-16T20:08:59.559
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -1677,7 +1677,7 @@ F test/speed3.test 694affeb9100526007436334cf7d08f3d74b85ef
 F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715
 F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
 F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c
-F test/speedtest1.c 6c9f30a9035aeafc767b770f0c576d45701ed928f7e354f6c18b6bbccbf81417
+F test/speedtest1.c 26f1b44de121c114d1487baa5b040c0f2d5fe6bb57febb7ae51ece6ab919783d
 F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
 F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
@@ -2205,8 +2205,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 2db3a3ee37a9d2fe9b94d16d35c24846c37abe73b89cde4dd763e01a2bfaa8b7
-R c60371158767e3daeea4a8672be014f0
+P d33508836bc88314a205bfa9d80f3ebe695163cf0c46d500ad674535975408fb
+R dd0ac0f4915c519ed5a12a3b5d1c6f66
 U drh
-Z 3720db8250a91ea5623fb5048e644ae1
+Z 81cac1efd10a78c1a3b6a5cb8d65a46e
 # Remove this line to create a well-formed Fossil manifest.
index e1c19508096f1621f3084f80b39789308ca4e5d7..d6dcda86adf2a63557f365ba47967d39fbdbfa31 100644 (file)
@@ -1 +1 @@
-d33508836bc88314a205bfa9d80f3ebe695163cf0c46d500ad674535975408fb
+2cc73c5e08f1a16fe8accf0af6af061e42d27635883d09234516fd470e99bc0a
index 95a451e7b7d88497eefc527ee3f5ca1aa132d198..c84d2c5919661d8f3fa92433ec8b4fc9c8a1ebf7 100644 (file)
@@ -2166,7 +2166,7 @@ void testset_json(void){
      "  jval(n,j) AS (\n"
      "    VALUES(0,'{}'),(1,'[]'),(2,'true'),(3,'false'),(4,'null'),\n"
      "          (5,'{x:1,y:2}'),(6,'0.0'),(7,'3.14159'),(8,'-99.9'),\n"
-     "          (9,'[1,2,3,4]')\n"
+     "          (9,'[1,2,\"\\n\\u2192\\\"\\u2190\",4]')\n"
      "  ),\n"
      "  c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<26*26-1),\n"
      "  array1(y) AS MATERIALIZED (\n"
@@ -2218,20 +2218,32 @@ void testset_json(void){
   );
   speedtest1_end_test();
 
-  speedtest1_begin_test(130, "json_replace()/set()/remove() on every row of J1");
+  speedtest1_begin_test(140, "queries against J1");
+  speedtest1_exec(
+    "WITH c(n) AS (VALUES(0) UNION ALL SELECT n+1 FROM c WHERE n<7)\n"
+    "  SELECT sum(x->>format('$.c[%%d].x',n)) FROM c, j1;\n"
+    "WITH c(n) AS (VALUES(1) UNION ALL SELECT n+1 FROM c WHERE n<5)\n"
+    "  SELECT sum(x->>format('$.\"c\"[#-%%d].y',n)) FROM c, j1;\n"
+    "SELECT sum(x->>'$.d.ez' + x->>'$.d.\"xz\"' + x->>'a' + x->>'$.c[10].y') FROM j1;\n"
+    "SELECT x->>'$.d.tz[2]', x->'$.d.tz' FROM j1;\n"
+  );
+  speedtest1_end_test();
+
+
+  speedtest1_begin_test(150, "json_insert()/set()/remove() on every row of J1");
   speedtest1_exec(
     "BEGIN;\n"
-    "UPDATE j1 SET x=jsonb_replace(x,'$.f',(x->>'f')+1);\n"
+    "UPDATE j1 SET x=jsonb_insert(x,'$.g',(x->>'f')+1);\n"
     "UPDATE j1 SET x=jsonb_set(x,'$.e',(x->>'f')-1);\n"
     "UPDATE j1 SET x=jsonb_remove(x,'$.d');\n"
     "COMMIT;\n"
   );
   speedtest1_end_test();
 
-  speedtest1_begin_test(140, "json_replace()/set()/remove() on every row of J2");
+  speedtest1_begin_test(160, "json_insert()/set()/remove() on every row of J2");
   speedtest1_exec(
     "BEGIN;\n"
-    "UPDATE j2 SET x=json_replace(x,'$.f',(x->>'f')+1);\n"
+    "UPDATE j2 SET x=json_insert(x,'$.g',(x->>'f')+1);\n"
     "UPDATE j2 SET x=json_set(x,'$.e',(x->>'f')-1);\n"
     "UPDATE j2 SET x=json_remove(x,'$.d');\n"
     "COMMIT;\n"
@@ -2259,25 +2271,25 @@ void testset_parsenumber(void){
   const int NROW = 100*g.szTest;
   int ii;
 
-  speedtest1_begin_test(100, "parsing small integers");
+  speedtest1_begin_test(100, "parsing %d small integers", NROW);
   for(ii=0; ii<NROW; ii++){
     sqlite3_exec(g.db, zSql1, 0, 0, 0);
   }
   speedtest1_end_test();
 
-  speedtest1_begin_test(110, "parsing large integers");
+  speedtest1_begin_test(110, "parsing %d large integers", NROW);
   for(ii=0; ii<NROW; ii++){
     sqlite3_exec(g.db, zSql2, 0, 0, 0);
   }
   speedtest1_end_test();
 
-  speedtest1_begin_test(200, "parsing small reals");
+  speedtest1_begin_test(200, "parsing %d small reals", NROW);
   for(ii=0; ii<NROW; ii++){
     sqlite3_exec(g.db, zSql3, 0, 0, 0);
   }
   speedtest1_end_test();
 
-  speedtest1_begin_test(210, "parsing large reals");
+  speedtest1_begin_test(210, "parsing %d large reals", NROW);
   for(ii=0; ii<NROW; ii++){
     sqlite3_exec(g.db, zSql4, 0, 0, 0);
   }
@@ -2511,7 +2523,7 @@ int main(int argc, char **argv){
         }
         g.eTemp = argv[i][0] - '0';
       }else if( strcmp(z,"testset")==0 ){
-        static char zMix1Tests[] = "main,orm/25,cte/20,json,fp/25,parsenumber,rtree/20";
+        static char zMix1Tests[] = "main,orm/25,cte/20,json,fp/3,parsenumber/25,rtree/10";
         ARGC_VALUE_CHECK(1);
         zTSet = argv[++i];
         if( strcmp(zTSet,"mix1")==0 ) zTSet = zMix1Tests;
@@ -2684,6 +2696,7 @@ int main(int argc, char **argv){
         fatal_error("bad modifier on testset name: \"%s\"", zThisTest);
       }
       g.szTest = g.szBase*integerValue(zSep+1)/100;
+      if( g.szTest<=0 ) g.szTest = 1;
       zSep[0] = 0;
     }else{
       g.szTest = g.szBase;