From: dan Date: Fri, 20 Jan 2023 15:13:30 +0000 (+0000) Subject: Add tests for changing the database encoding via RESET_DATABASE/VACUUM. And test... X-Git-Tag: version-3.41.0~109 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab5ebc4082512721f3a6d24b101225dab7b4b472;p=thirdparty%2Fsqlite.git Add tests for changing the database encoding via RESET_DATABASE/VACUUM. And test that it is not possible to trick another connection with this. FossilOrigin-Name: b869054acb8f171cbc16808eb87be85e6e38d5c5670522ff4e49aef92250d5b2 --- diff --git a/manifest b/manifest index 5f2dc0f220..a2636c4d92 100644 --- 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. diff --git a/manifest.uuid b/manifest.uuid index 3b33e58075..8563c8bed4 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -edcb83fa0d3c832d044b267d608fed31a2ac841b81c7c9406b2136ac43d61a1a \ No newline at end of file +b869054acb8f171cbc16808eb87be85e6e38d5c5670522ff4e49aef92250d5b2 \ No newline at end of file diff --git a/test/resetdb.test b/test/resetdb.test index bdb8354110..f2d325164c 100644 --- a/test/resetdb.test +++ b/test/resetdb.test @@ -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