Fix a shared-cache mode problem triggered when sqlite3_open16() was used to open the second or subsequent connections to a utf-8 database. (CVS 5059)

FossilOrigin-Name: 20946bf6dd704416c41edd863103e85fc7ab4ef2
diff --git a/test/shared.test b/test/shared.test
index 0b51e23..f05e965 100644
--- a/test/shared.test
+++ b/test/shared.test
@@ -9,7 +9,7 @@
 #
 #***********************************************************************
 #
-# $Id: shared.test,v 1.30 2008/02/08 18:25:48 danielk1977 Exp $
+# $Id: shared.test,v 1.31 2008/04/28 16:19:35 danielk1977 Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -636,6 +636,7 @@
   do_test shared-$av.8.1.2 {
     string range [execsql {PRAGMA encoding;}] 0 end-2
   } {UTF-16}
+
   do_test shared-$av.8.1.3 {
     sqlite3 db2 test.db
     execsql {
@@ -654,6 +655,7 @@
       PRAGMA encoding;
     }
   } {UTF-8}
+
   file delete -force test2.db test2.db-journal
   do_test shared-$av.8.2.1 {
     execsql {
@@ -670,6 +672,35 @@
     string range [execsql {PRAGMA encoding;} db2] 0 end-2
   } {UTF-16}
 
+  catch {db close}
+  catch {db2 close}
+  file delete -force test.db test2.db
+
+  do_test shared-$av.8.3.2 {
+    sqlite3 db test.db
+    execsql { CREATE TABLE def(d, e, f) }
+    execsql { PRAGMA encoding }
+  } {UTF-8}
+  do_test shared-$av.8.3.3 {
+    set zDb16 "[encoding convertto unicode test.db]\x00\x00"
+    set db16 [sqlite3_open16 $zDb16 {}]
+
+    set stmt [sqlite3_prepare $db16 "SELECT sql FROM sqlite_master" -1 DUMMY]
+    sqlite3_step $stmt
+    set sql [sqlite3_column_text $stmt 0]
+    sqlite3_finalize $stmt
+    set sql
+  } {CREATE TABLE def(d, e, f)}
+  do_test shared-$av.8.3.4 {
+    set stmt [sqlite3_prepare $db16 "PRAGMA encoding" -1 DUMMY]
+    sqlite3_step $stmt
+    set enc [sqlite3_column_text $stmt 0]
+    sqlite3_finalize $stmt
+    set enc
+  } {UTF-8}
+
+  sqlite3_close $db16
+
 # Bug #2547 is causing this to fail.
 if 0 {
   do_test shared-$av.8.2.3 {