]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Performance tests for JSONB added.
authordrh <>
Wed, 27 Sep 2023 16:55:13 +0000 (16:55 +0000)
committerdrh <>
Wed, 27 Sep 2023 16:55:13 +0000 (16:55 +0000)
FossilOrigin-Name: 7c1be8e361db87458ac9d8fcee080c2b558936539c852bb80f0f7941d61bf15d

manifest
manifest.uuid
test/json/json-q1-b.txt [new file with mode: 0644]
test/json/json-speed-check.sh

index fd4fd000306541a1e1424ed211b326c752585d63..b1cbae3a58f84a5841623ec699ffdb08297004b9 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\spartial-index\sconstant\svalue\sfixes\sfrom\strunk\sinto\sthe\sjsonb\sbranch.
-D 2023-09-26T19:46:38.407
+C Performance\stests\sfor\sJSONB\sadded.
+D 2023-09-27T16:55:13.845
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -1300,8 +1300,9 @@ F test/jrnlmode2.test 8759a1d4657c064637f8b079592651530db738419e1d649c6df7048cd7
 F test/jrnlmode3.test 556b447a05be0e0963f4311e95ab1632b11c9eaa
 F test/json/README.md 63e3e589e1df8fd3cc1588ba1faaff659214003f8b77a15af5c6452b35e30ee2
 F test/json/json-generator.tcl dc0dd0f393800c98658fc4c47eaa6af29d4e17527380cd28656fb261bddc8a3f
+F test/json/json-q1-b.txt d1394d4ade1c9617539b19b48e0dd2df4f6ea918860978722e7a97d60618ca83
 F test/json/json-q1.txt 65f9d1cdcc4cffa9823fb73ed936aae5658700cd001fde448f68bfb91c807307
-F test/json/json-speed-check.sh 8b7babf530faa58bd59d6d362cec8e9036a68c5457ff46f3b1f1511d21af6737 x
+F test/json/json-speed-check.sh b060a9a6c696c0a807d8929400fa11bd7113edc58b0d66b9795f424f8d0db326 x
 F test/json101.test dc9d5a2a5b1fd1b54dbd71c538b17933cc98d84b4c1f821ead754933663dca55
 F test/json102.test 4c69694773a470f1fda34e5f4ba24920b35184fb66050b450fc2ef9ab5ad310b
 F test/json103.test 53df87f83a4e5fa0c0a56eb29ff6c94055c6eb919f33316d62161a8880112dbe
@@ -2122,8 +2123,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P e6045b4e1bf3a8e33926fc12b3c039f5e1002eaecbe277ffa82b0ec271a29d17 f459d0806cf044fd07743e4c91d0a5a6ddf45b3b41004bde4278f190d99a4cf5
-R 1d55abb00dbf638a471cf92ac6ee2784
+P 700bdbd7383f66a0da675c197204da4e7b6ed757155145ee98d572de32a5d0ae
+R cd229cd0127bc955a2b70dc896603e55
 U drh
-Z 2f2ccec484af750dd462546f4baf8eb1
+Z 76a0e61dc557712a0090ea7a119c4cd2
 # Remove this line to create a well-formed Fossil manifest.
index c0d71c6abffcabdccdc3aa6e69498f4d8725e1ce..ccac07358c4e3658d1e16b2b49f1f0ed6862663e 100644 (file)
@@ -1 +1 @@
-700bdbd7383f66a0da675c197204da4e7b6ed757155145ee98d572de32a5d0ae
\ No newline at end of file
+7c1be8e361db87458ac9d8fcee080c2b558936539c852bb80f0f7941d61bf15d
\ No newline at end of file
diff --git a/test/json/json-q1-b.txt b/test/json/json-q1-b.txt
new file mode 100644 (file)
index 0000000..c86a2db
--- /dev/null
@@ -0,0 +1,25 @@
+.mode qbox
+.timer on
+.param set $label 'q87'
+SELECT rowid, x->>$label FROM data1 WHERE x->>$label IS NOT NULL;
+
+CREATE TEMP TABLE t2(x JSON TEXT);
+WITH RECURSIVE
+  c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<25000),
+  array1(y) AS (
+    SELECT json_group_array(
+             json_object('x',x,'y',random(),'z',hex(randomblob(50)))
+           )
+      FROM c
+  ),
+  c2(n) AS (VALUES(1) UNION ALL SELECT n+1 FROM c2 WHERE n<5)
+INSERT INTO t2(x)
+  SELECT jsonb(json_object('a',n,'b',n*2,'c',y,'d',3,'e',5,'f',6))
+    FROM array1, c2;
+CREATE INDEX t2x1 ON t2(x->>'a');
+CREATE INDEX t2x2 ON t2(x->>'b');
+CREATE INDEX t2x3 ON t2(x->>'e');
+CREATE INDEX t2x4 ON t2(x->>'f');
+UPDATE t2 SET x=jsonb_replace(x,'$.f',(x->>'f')+1);
+UPDATE t2 SET x=jsonb_set(x,'$.e',(x->>'f')-1);
+UPDATE t2 SET x=jsonb_remove(x,'$.d');
index f7e7f1be58f7a13578001574a27004d95fbc8c58..c57bfecd7aa183604cd67054707f849d126edade 100755 (executable)
@@ -40,6 +40,7 @@ doCachegrind=1
 doVdbeProfile=0
 doWal=1
 doDiff=1
+doJsonB=0
 while test "$1" != ""; do
   case $1 in
     --nodiff)
@@ -54,6 +55,9 @@ while test "$1" != ""; do
     --gcc7)
         CC=gcc-7
         ;;
+    --jsonb)
+        doJsonB=1
+        ;;
     -*)
         CC_OPTS="$CC_OPTS $1"
         ;;
@@ -69,12 +73,18 @@ rm -f cachegrind.out.* jsonshell
 $CC -g -Os -Wall -I. $CC_OPTS ./shell.c ./sqlite3.c -o jsonshell -ldl -lpthread
 ls -l jsonshell | tee -a summary-$NAME.txt
 home=`echo $0 | sed -e 's,/[^/]*$,,'`
-echo ./jsonshell json100mb.db "<$home/json-q1.txt"
-valgrind --tool=cachegrind ./jsonshell json100mb.db <$home/json-q1.txt \
-      2>&1 | tee -a summary-$NAME.txt
+if test $doJsonB -eq 1; then
+  echo ./jsonshell json100mb_b.db "<$home/json-q1-b.txt"
+  valgrind --tool=cachegrind ./jsonshell json100mb_b.db <$home/json-q1-b.txt \
+        2>&1 | tee -a summary-$NAME.txt
+else
+  echo ./jsonshell json100mb.db "<$home/json-q1.txt"
+  valgrind --tool=cachegrind ./jsonshell json100mb.db <$home/json-q1.txt \
+        2>&1 | tee -a summary-$NAME.txt
+fi
 cg_anno.tcl cachegrind.out.* >jout-$NAME.txt
 echo '*****************************************************' >>jout-$NAME.txt
 sed 's/^[0-9=-]\{9\}/==00000==/' summary-$NAME.txt >>jout-$NAME.txt
-if test "$NAME" != "$BASELINE"; then
+if test "$NAME" != "$BASELINE" -a $doDiff -ne 0; then
   fossil xdiff --tk -c 20 jout-$BASELINE.txt jout-$NAME.txt
 fi