]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Store the text encoding in the database (as meta value 4). (CVS 1435)
authordanielk1977 <danielk1977@noemail.net>
Sat, 22 May 2004 08:09:11 +0000 (08:09 +0000)
committerdanielk1977 <danielk1977@noemail.net>
Sat, 22 May 2004 08:09:11 +0000 (08:09 +0000)
FossilOrigin-Name: 7f00ca5801889724c0e768961aa15f5ce0b8e7b5

manifest
manifest.uuid
src/build.c
src/main.c

index 53c98d8a15a416552bfaacb15d15b330a46bdf1c..c39b2dfd2793d4ecf4ca1f2a151540fcf8f13a53 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C A\sfew\sbugfixes\srelated\sto\sUTF-16\sdatabases.\ssqlite3_open()\sstill\sassumes\sa\nUTF-8\sdatabase,\sand\ssqlite3_open16()\sstill\sassumes\sa\sUTF-16\sdb.\s(CVS\s1434)
-D 2004-05-22T07:27:46
+C Store\sthe\stext\sencoding\sin\sthe\sdatabase\s(as\smeta\svalue\s4).\s(CVS\s1435)
+D 2004-05-22T08:09:11
 F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -27,7 +27,7 @@ F src/auth.c 5c2f0bea4729c98c2be3b69d6b466fc51448fe79
 F src/btree.c 51dfa34da5f42762b228d7360cf3273ee403bce8
 F src/btree.h b65140b5ae891f30d2a39e64b9f0343225553545
 F src/btree_rb.c 9d7973e266ee6f9c61ce592f68742ce9cd5b10e5
-F src/build.c 95969f37eb4edf62660d83e314df6d08b8a19fe7
+F src/build.c 35cbeb439b49cca5eb5e8a1de010a5194f4523e8
 F src/copy.c 4d2038602fd0549d80c59bda27d96f13ea9b5e29
 F src/date.c 0eb0a89960bb45c7f7e768748605a7a97b0c8064
 F src/delete.c 2e1dda38345416a1ea1c0a6468589a7472334dac
@@ -37,7 +37,7 @@ F src/func.c cfbb7096efb58e2857e3b312a8958a12774b625a
 F src/hash.c 440c2f8cb373ee1b4e13a0988489c7cd95d55b6f
 F src/hash.h 762d95f1e567664d1eafc1687de755626be962fb
 F src/insert.c e510d62d23b4de4d901e7ccbbe7833b7fb3b9570
-F src/main.c a2be4b3976818f3fe5dfdc5709c330599da7acc3
+F src/main.c 25f197c6e2d8dd24f993a218824c81356cf269e5
 F src/md5.c 8e39fdae6d8776b87558e91dcc94740c9b635a9c
 F src/os.c ddcda92f7fd71b4513c57c1ec797917f206d504e
 F src/os.h 6e446a17cbeb6c2ce470683a0bb8d9c63abe8607
@@ -195,7 +195,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P c4a8246864eee7cb993ab7b703324d92c284d72a
-R 92babf97adb0222e27f8107a93f8fb2a
+P b3581d2796c8cb6581b7156774698a05fc8f800e
+R 4a21a58cde782ee5391b183bd4ae3e26
 U danielk1977
-Z c69763de411eab46b3116a06db08807c
+Z ae26e12ee15e175d842a96dadc5dd1c3
index c21b7a4ae9c840103133cf4056ad6a3dbf066313..c68e5bff6e478abb5232e124f739e7ebefe7aa6e 100644 (file)
@@ -1 +1 @@
-b3581d2796c8cb6581b7156774698a05fc8f800e
\ No newline at end of file
+7f00ca5801889724c0e768961aa15f5ce0b8e7b5
\ No newline at end of file
index fc0b70a5369c67d0259e445288434bb7787031a4..679d019e9fc6d535c931af4038cdeeb095b54585 100644 (file)
@@ -23,7 +23,7 @@
 **     ROLLBACK
 **     PRAGMA
 **
-** $Id: build.c,v 1.192 2004/05/21 13:39:50 drh Exp $
+** $Id: build.c,v 1.193 2004/05/22 08:09:11 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include <ctype.h>
@@ -543,6 +543,8 @@ void sqlite3StartTable(
     if( !isTemp ){
       sqlite3VdbeAddOp(v, OP_Integer, db->file_format, 0);
       sqlite3VdbeAddOp(v, OP_SetCookie, 0, 1);
+      sqlite3VdbeAddOp(v, OP_Integer, db->enc, 0);
+      sqlite3VdbeAddOp(v, OP_SetCookie, 0, 4);
     }
     sqlite3OpenMasterTable(v, isTemp);
     sqlite3VdbeAddOp(v, OP_NewRecno, 0, 0);
index bbbb2135fe566d0e64147bf1a60a4fb03f423689..0ffe0040970c647b51cb5d7f8360c4ed3f6676a6 100644 (file)
@@ -14,7 +14,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: main.c,v 1.182 2004/05/22 03:05:34 danielk1977 Exp $
+** $Id: main.c,v 1.183 2004/05/22 08:09:40 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -217,12 +217,15 @@ static int sqlite3InitOne(sqlite *db, int iDb, char **pzErrMsg){
   **    meta[1]   File format of schema layer.
   **    meta[2]   Size of the page cache.
   **    meta[3]   Synchronous setting.  1:off, 2:normal, 3:full
-  **    meta[4]
+  **    meta[4]   Db text encoding. 1:UTF-8 2:UTF-16 LE 3:UTF-16 BE
   **    meta[5]   Pragma temp_store value.  See comments on BtreeFactory
   **    meta[6]
   **    meta[7]
   **    meta[8]
   **    meta[9]
+  **
+  ** Note: The hash defined TEXT_Utf* symbols in sqliteInt.h correspond to
+  ** the possible values of meta[4].
   */
   if( rc==SQLITE_OK ){
     int i;
@@ -241,6 +244,13 @@ static int sqlite3InitOne(sqlite *db, int iDb, char **pzErrMsg){
   if( iDb==0 ){
     db->next_cookie = meta[0];
     db->file_format = meta[1];
+    if( meta[4] ){
+      /* If meta[4] is still zero, then we are opening a previously empty
+      ** file. Leave db->enc to the default value set by the sqlite3_open()
+      ** call in this case.
+      */
+      db->enc = (u8)meta[4];
+    }
     size = meta[2];
     if( size==0 ){ size = MAX_PAGES; }
     db->cache_size = size;