Add the "json" test case to speedtest1 and include it in "mix1".
FossilOrigin-Name: 2db3a3ee37a9d2fe9b94d16d35c24846c37abe73b89cde4dd763e01a2bfaa8b7
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
C Speedtest1\senhancements:\s\s(1)\sAdd\sthe\sability\sto\sscale\sperformance\sof\ntests\ssets\susing\s"/NNN"\safter\sthe\stestset\sname,\seven\sfor\stestsets\sin\sa\ncomma-separated\slist.\s\s(2)\sAdd\sthe\s"mix1"\smacro\stestset.
|
||||
D 2025-01-16T14:06:30.000
|
||||
C Add\sthe\s"json"\stest\scase\sto\sspeedtest1\sand\sinclude\sit\sin\s"mix1".
|
||||
D 2025-01-16T14:37:48.974
|
||||
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 ef3a1b9c0938b5202a6ad7a16bf53422f13f4c3901e9b973aaac168a30d75feb
|
||||
F test/speedtest1.c 572cc10da33f9ce696346fefddf8afc583745e448192fda8d81ae4be897da27f
|
||||
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 020d2c7528be6f11a5b2b849d7b2f04e47abe2b0842520ff60eb7defb3768e1c
|
||||
R 6782bdbb35165160181ae38f9abe3d27
|
||||
P 85667b3a572bc9afd8c862a0b2c5f47f76ca80d6e61302ca7d7c1b326d3dd578
|
||||
R 207656080a990b075c009fc5a42018e0
|
||||
U drh
|
||||
Z 6a345f2c4878196402ebe51d9f9059ab
|
||||
Z 5e27a73ae0785d981160c5186c684481
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
85667b3a572bc9afd8c862a0b2c5f47f76ca80d6e61302ca7d7c1b326d3dd578
|
||||
2db3a3ee37a9d2fe9b94d16d35c24846c37abe73b89cde4dd763e01a2bfaa8b7
|
||||
|
||||
+83
-2
@@ -42,7 +42,7 @@ static const char zHelp[] =
|
||||
" --stats Show statistics at the end\n"
|
||||
" --stmtscanstatus Activate SQLITE_DBCONFIG_STMT_SCANSTATUS\n"
|
||||
" --temp N N from 0 to 9. 0: no temp table. 9: all temp tables\n"
|
||||
" --testset T Run test-set T (main, cte, rtree, orm, fp, debug)\n"
|
||||
" --testset T Run test-set T (main, cte, rtree, orm, fp, json, debug)\n"
|
||||
" Can be a comma-separated list of values, with /SCALE suffixes\n"
|
||||
" or macro \"mix1\"\n"
|
||||
" --trace Turn on SQL tracing\n"
|
||||
@@ -2152,6 +2152,85 @@ void testset_debug1(void){
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
** Performance tests for JSON.
|
||||
*/
|
||||
void testset_json(void){
|
||||
speedtest1_begin_test(100, "construct table J1 with %d rows of text JSON",
|
||||
g.szTest*250);
|
||||
speedtest1_exec(
|
||||
"CREATE TABLE j1(x JSON TEXT);\n"
|
||||
"WITH RECURSIVE\n"
|
||||
" c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<%d),\n"
|
||||
" array1(y) AS (\n"
|
||||
" SELECT json_group_array(\n"
|
||||
" json_object('x',x,'y',random(),'z',hex(randomblob(50)))\n"
|
||||
" )\n"
|
||||
" FROM c\n"
|
||||
" ),\n"
|
||||
" c2(n) AS (VALUES(1) UNION ALL SELECT n+1 FROM c2 WHERE n<5)\n"
|
||||
"INSERT INTO j1(x)\n"
|
||||
" SELECT json_object('a',n,'b',n*2,'c',y,'d',3,'e',5,'f',6) FROM array1, c2;\n",
|
||||
g.szTest*250
|
||||
);
|
||||
speedtest1_end_test();
|
||||
|
||||
speedtest1_begin_test(110, "construct table J2 with %d rows of JSONB",
|
||||
g.szTest*250);
|
||||
speedtest1_exec(
|
||||
"CREATE TABLE j2(x JSON TEXT);\n"
|
||||
"WITH RECURSIVE\n"
|
||||
" c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<%d),\n"
|
||||
" array1(y) AS (\n"
|
||||
" SELECT json_group_array(\n"
|
||||
" json_object('x',x,'y',random(),'z',hex(randomblob(50)))\n"
|
||||
" )\n"
|
||||
" FROM c\n"
|
||||
" ),\n"
|
||||
" c2(n) AS (VALUES(1) UNION ALL SELECT n+1 FROM c2 WHERE n<5)\n"
|
||||
"INSERT INTO j2(x)\n"
|
||||
" SELECT jsonb_object('a',n,'b',n*2,'c',y,'d',3,'e',5,'f',6) FROM array1, c2;\n",
|
||||
g.szTest*250
|
||||
);
|
||||
speedtest1_end_test();
|
||||
|
||||
speedtest1_begin_test(120, "create indexes on JSON expressions");
|
||||
speedtest1_exec(
|
||||
"BEGIN;\n"
|
||||
"CREATE INDEX j1x1 ON j1(x->>'a');\n"
|
||||
"CREATE INDEX j1x2 ON j1(x->>'b');\n"
|
||||
"CREATE INDEX j1x3 ON j1(x->>'e');\n"
|
||||
"CREATE INDEX j1x4 ON j1(x->>'f');\n"
|
||||
"CREATE INDEX j2x1 ON j2(x->>'a');\n"
|
||||
"CREATE INDEX j2x2 ON j2(x->>'b');\n"
|
||||
"CREATE INDEX j2x3 ON j2(x->>'e');\n"
|
||||
"CREATE INDEX j2x4 ON j2(x->>'f');\n"
|
||||
"COMMIT;\n"
|
||||
);
|
||||
speedtest1_end_test();
|
||||
|
||||
speedtest1_begin_test(130, "json_replace()/set()/remove() on every row of J1");
|
||||
speedtest1_exec(
|
||||
"BEGIN;\n"
|
||||
"UPDATE j1 SET x=json_replace(x,'$.f',(x->>'f')+1);\n"
|
||||
"UPDATE j1 SET x=json_set(x,'$.e',(x->>'f')-1);\n"
|
||||
"UPDATE j1 SET x=json_remove(x,'$.d');\n"
|
||||
"COMMIT;\n"
|
||||
);
|
||||
speedtest1_end_test();
|
||||
|
||||
speedtest1_begin_test(140, "json_replace()/set()/remove() on every row of J2");
|
||||
speedtest1_exec(
|
||||
"BEGIN;\n"
|
||||
"UPDATE j2 SET x=jsonb_replace(x,'$.f',(x->>'f')+1);\n"
|
||||
"UPDATE j2 SET x=jsonb_set(x,'$.e',(x->>'f')-1);\n"
|
||||
"UPDATE j2 SET x=jsonb_remove(x,'$.d');\n"
|
||||
"COMMIT;\n"
|
||||
);
|
||||
speedtest1_end_test();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
** This testset focuses on the speed of parsing numeric literals (integers
|
||||
** and real numbers). This was added to test the impact of allowing "_"
|
||||
@@ -2423,7 +2502,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,fp/25,parsenumber,rtree/20";
|
||||
static char zMix1Tests[] = "main,orm/25,cte/20,json,fp/25,parsenumber,rtree/20";
|
||||
ARGC_VALUE_CHECK(1);
|
||||
zTSet = argv[++i];
|
||||
if( strcmp(zTSet,"mix1")==0 ) zTSet = zMix1Tests;
|
||||
@@ -2613,6 +2692,8 @@ int main(int argc, char **argv){
|
||||
testset_cte();
|
||||
}else if( strcmp(zThisTest,"fp")==0 ){
|
||||
testset_fp();
|
||||
}else if( strcmp(zThisTest,"json")==0 ){
|
||||
testset_json();
|
||||
}else if( strcmp(zThisTest,"trigger")==0 ){
|
||||
testset_trigger();
|
||||
}else if( strcmp(zThisTest,"parsenumber")==0 ){
|
||||
|
||||
Reference in New Issue
Block a user