]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Ensure rtreedoc.test is not run for builds without the rtree extension.
authordan <Dan Kennedy>
Wed, 15 Sep 2021 10:49:31 +0000 (10:49 +0000)
committerdan <Dan Kennedy>
Wed, 15 Sep 2021 10:49:31 +0000 (10:49 +0000)
FossilOrigin-Name: 42dff223470e9c096b8486ef232ac41b70d0875d8ae07630bfaaea1515ffa8d0

ext/rtree/rtreedoc.test
manifest
manifest.uuid

index 18ad89b0d0e2ae0ffa4cc9ff75f45b5741d8c1a5..c19a336ae21a2020dc54e261949fc32bdeb818e8 100644 (file)
@@ -19,6 +19,11 @@ source [file join [file dirname [info script]] rtree_util.tcl]
 source $testdir/tester.tcl
 set testprefix rtreedoc
 
+ifcapable !rtree {
+  finish_test
+  return
+}
+
 # This command returns the number of columns in table $tbl within the
 # database opened by database handle $db
 proc column_count {db tbl} {
@@ -1067,8 +1072,6 @@ do_execsql_test 2.1 {
   SELECT count(*) FROM r1_node;
 } 6
 
-do_execsql_test 2.2 { SELECT nodeno, rnode(data) FROM r1_node WHERE nodeno=1 } 6
-
 # EVIDENCE-OF: R-27261-09153 All nodes other than the root have an entry
 # in the %_parent shadow table that identifies the parent node.
 #
@@ -1124,6 +1127,68 @@ do_execsql_test 3.2 {
   hello world  123 456
 }
 
+#-------------------------------------------------------------------------
+#-------------------------------------------------------------------------
+# Section 7.2 of documentation.
+#-------------------------------------------------------------------------
+#-------------------------------------------------------------------------
+set testprefix rtreedoc-12
+reset_db
+forcedelete test.db2
+
+# EVIDENCE-OF: R-13571-45795 The scalar SQL function rtreecheck(R) or
+# rtreecheck(S,R) runs an integrity check on the rtree table named R
+# contained within database S.
+#
+# EVIDENCE-OF: R-36011-59963 The function returns a human-language
+# description of any problems found, or the string 'ok' if everything is
+# ok.
+#
+do_execsql_test 1.0 {
+  CREATE VIRTUAL TABLE rt1 USING rtree(id, a, b);
+  WITH s(i) AS (
+    VALUES(1) UNION ALL SELECT i+1 FROM s WHERE i<200
+  )
+  INSERT INTO rt1 SELECT i, i, i FROM s;
+
+  ATTACH 'test.db2' AS 'aux';
+  CREATE VIRTUAL TABLE aux.rt1 USING rtree(id, a, b);
+  INSERT INTO aux.rt1 SELECT * FROM rt1;
+}
+
+do_execsql_test 1.1.1 { SELECT rtreecheck('rt1'); } {ok}
+do_execsql_test 1.1.2 { SELECT rtreecheck('main', 'rt1'); } {ok}
+do_execsql_test 1.1.3 { SELECT rtreecheck('aux', 'rt1'); } {ok}
+do_catchsql_test 1.1.4 { 
+  SELECT rtreecheck('nosuchdb', 'rt1'); 
+} {1 {SQL logic error}}
+
+# Corrupt the table in database 'main':
+do_execsql_test 1.2.1 { UPDATE rt1_node SET nodeno=21 WHERE nodeno=3; }
+do_execsql_test 1.2.1 { SELECT rtreecheck('rt1')=='ok'; } {0}
+do_execsql_test 1.2.2 { SELECT rtreecheck('main', 'rt1')=='ok'; } {0}
+do_execsql_test 1.2.3 { SELECT rtreecheck('aux', 'rt1')=='ok'; } {1}
+do_execsql_test 1.2.4 { UPDATE rt1_node SET nodeno=3 WHERE nodeno=21; }
+
+# Corrupt the table in database 'aux':
+do_execsql_test 1.2.1 { UPDATE aux.rt1_node SET nodeno=21 WHERE nodeno=3; }
+do_execsql_test 1.2.1 { SELECT rtreecheck('rt1')=='ok'; } {1}
+do_execsql_test 1.2.2 { SELECT rtreecheck('main', 'rt1')=='ok'; } {1}
+do_execsql_test 1.2.3 { SELECT rtreecheck('aux', 'rt1')=='ok'; } {0}
+do_execsql_test 1.2.4 { UPDATE rt1_node SET nodeno=3 WHERE nodeno=21; }
+
+# EVIDENCE-OF: R-45759-33459 Example: To verify that an R*Tree named
+# "demo_index" is well-formed and internally consistent, run: SELECT
+# rtreecheck('demo_index');
+do_execsql_test 2.0 {
+  CREATE VIRTUAL TABLE demo_index USING rtree(id, x1,x2, y1,y2);
+  INSERT INTO demo_index SELECT id, a, b, a, b FROM rt1;
+}
+do_execsql_test 2.1 { SELECT rtreecheck('demo_index') } {ok}
+do_execsql_test 2.2 {
+  UPDATE demo_index_rowid SET nodeno=44 WHERE rowid=44;
+  SELECT rtreecheck('demo_index');
+} {{Found (44 -> 44) in %_rowid table, expected (44 -> 4)}}
 
 finish_test
 
index c687e345fcc259aed80e8b37313fef4bd46b4f9d..84ea4b1cddce04369275e87567c23311a48314f7 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\stest\scases\sto\srtreedoc.test.
-D 2021-09-14T20:07:58.871
+C Ensure\srtreedoc.test\sis\snot\srun\sfor\sbuilds\swithout\sthe\srtree\sextension.
+D 2021-09-15T10:49:31.090
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -418,7 +418,7 @@ F ext/rtree/rtree_util.tcl db734b4c5e75fed6acc56d9701f2235345acfdec750b5fc7b5879
 F ext/rtree/rtreecheck.test d67d5b3e9e45bfa8cd90734e8e9302144ac415b8e9176c6f02d4f92892ee8a35
 F ext/rtree/rtreecirc.test aec664eb21ae943aeb344191407afff5d392d3ae9d12b9a112ced0d9c5de298e
 F ext/rtree/rtreeconnect.test 225ad3fcb483d36cbee423a25052a6bbae762c9576ae9268332360c68c170d3d
-F ext/rtree/rtreedoc.test 96a8ba02be159e0c5609436088554a8334ae6915ed7c7c6d253d5805bc635797
+F ext/rtree/rtreedoc.test 91293ef6c10524d8c945ffc5be20732f62eb8b98f84615b44d46a20a74e9a561
 F ext/rtree/rtreefuzz001.test 0fc793f67897c250c5fde96cefee455a5e2fb92f4feeabde5b85ea02040790ee
 F ext/rtree/sqlite3rtree.h 03c8db3261e435fbddcfc961471795cbf12b24e03001d0015b2636b0f3881373
 F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
@@ -1923,7 +1923,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 08cab8921e670a0d1758b505fe8c7455f6194cec69d1b7b77de91688be1028a6
-R 5be907d2a923f63a4c3d70b386c4aa09
+P afe0ec4d589d87a07c0daf3fc4de884b82a8bceed593ba4e44caa1cf033a6715
+R 728a755bef19edd9fdf994a23836ae11
 U dan
-Z ea31cce18f18a49bc61bfa81b5109a46
+Z 0702556107dd7dc6065447ebc315749b
index 448b14da936412a2bf983008883640a19b61967a..4d51c723589aa55cb17ea171d0cb2444a34c5d9d 100644 (file)
@@ -1 +1 @@
-afe0ec4d589d87a07c0daf3fc4de884b82a8bceed593ba4e44caa1cf033a6715
\ No newline at end of file
+42dff223470e9c096b8486ef232ac41b70d0875d8ae07630bfaaea1515ffa8d0
\ No newline at end of file