]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add tests for changing the database encoding via RESET_DATABASE/VACUUM. And test...
authordan <Dan Kennedy>
Fri, 20 Jan 2023 15:13:30 +0000 (15:13 +0000)
committerdan <Dan Kennedy>
Fri, 20 Jan 2023 15:13:30 +0000 (15:13 +0000)
FossilOrigin-Name: b869054acb8f171cbc16808eb87be85e6e38d5c5670522ff4e49aef92250d5b2

manifest
manifest.uuid
test/resetdb.test

index 5f2dc0f2208de9cfa81964327de344e1532416a0..a2636c4d923a2e12357390051191b43d9d6b68f4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C The\sjson_group_array(),\sjson_group_object(),\sand\sfts5_source_id()\sfunctions\nshould\sall\sbe\sdeterministic\sand\sinnocuous.
-D 2023-01-20T13:34:14.031
+C Add\stests\sfor\schanging\sthe\sdatabase\sencoding\svia\sRESET_DATABASE/VACUUM.\sAnd\stest\sthat\sit\sis\snot\spossible\sto\strick\sanother\sconnection\swith\sthis.
+D 2023-01-20T15:13:30.927
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -1401,7 +1401,7 @@ F test/regexp1.test 8f2a8bc1569666e29a4cee6c1a666cd224eb6d50e2470d1dc1df995170f3
 F test/regexp2.test 55ed41da802b0e284ac7e2fe944be3948f93ff25abbca0361a609acfed1368b5
 F test/reindex.test cd9d6021729910ece82267b4f5e1b5ac2911a7566c43b43c176a6a4732e2118d
 F test/releasetest_data.tcl 0db8aee0c348090fd06da47020ab4ed8ec692e0723427b2f3947d4dfb806f3b0
-F test/resetdb.test 8062cf10a09d8c048f8de7711e94571c38b38168db0e5877ba7561789e5eeb2b
+F test/resetdb.test 54c06f18bc832ac6d6319e5ab23d5c8dd49fdbeec7c696d791682a8006bd5fc3
 F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb
 F test/returning1.test 3ef7b264598b3292be0cdb028e4acb7524c5fd409b33b78449f894dfd68db334
 F test/returningfault.test ae4c4b5e8745813287a359d9ccdb9d5c883c2e68afb18fb0767937d5de5692a4
@@ -2043,8 +2043,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 fa10e561f5dcdb23af862c2e486e877d379f12eae077ae5fd3da6028f1c20b49
-R 718b83cc19a44dec024fb936444aa2a9
-U drh
-Z 4832a833a8d0d90e46ba63422162c0e7
+P edcb83fa0d3c832d044b267d608fed31a2ac841b81c7c9406b2136ac43d61a1a
+R 256a5cfc3dc4d3993f2dc607c3e1a445
+U dan
+Z a4fc650deb2f62fe6d4560b413bf6d10
 # Remove this line to create a well-formed Fossil manifest.
index 3b33e58075f87693cfde91da38a0d1b7bd9dfb4a..8563c8bed453e7cbadee954c89cfb7da1fa07b94 100644 (file)
@@ -1 +1 @@
-edcb83fa0d3c832d044b267d608fed31a2ac841b81c7c9406b2136ac43d61a1a
\ No newline at end of file
+b869054acb8f171cbc16808eb87be85e6e38d5c5670522ff4e49aef92250d5b2
\ No newline at end of file
index bdb835411017b40fe1c039ca6518ab389ade3855..f2d325164ca364f9ea97fb1580fe3bd56ac90040 100644 (file)
@@ -255,4 +255,46 @@ do_execsql_test 740 {
   PRAGMA integrity_check;
 } {1 ok}
 
+#-------------------------------------------------------------------------
+ifcapable utf16 {
+  reset_db
+  do_execsql_test 800 {
+    PRAGMA encoding = 'utf8';
+    CREATE TABLE t1(a, b);
+    PRAGMA encoding;
+  } {UTF-8}
+  
+  db close
+  sqlite3 db test.db
+
+  sqlite3 db2 test.db
+  do_execsql_test -db db2 810 {
+    CREATE TEMP TABLE t2(x);
+    INSERT INTO t2 VALUES('hello world');
+    SELECT name FROM sqlite_schema;
+  } {t1}
+  do_test 820 {
+    db eval "PRAGMA encoding = 'utf16'"
+    sqlite3_db_config db RESET_DB 1
+  } {1}
+  do_test 830 {
+    db eval VACUUM
+    sqlite3_db_config db RESET_DB 0
+  } {0}
+  do_test 840 {
+    string range [db eval {
+      CREATE TABLE t1(a, b);
+      INSERT INTO t1 VALUES('one', 'two');
+      PRAGMA encoding;
+    }] 0 5
+  } {UTF-16}
+
+  do_test 850 {
+    catchsql { SELECT * FROM t1; } db2 
+  } {1 {attached databases must use the same text encoding as main database}}
+  do_test 860 {
+    catchsql { SELECT * FROM t2; } db2 
+  } {1 {attached databases must use the same text encoding as main database}}
+}
+
 finish_test