diff --git a/manifest b/manifest index 53c98d8a15..c39b2dfd27 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index c21b7a4ae9..c68e5bff6e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b3581d2796c8cb6581b7156774698a05fc8f800e \ No newline at end of file +7f00ca5801889724c0e768961aa15f5ce0b8e7b5 \ No newline at end of file diff --git a/src/build.c b/src/build.c index fc0b70a536..679d019e9f 100644 --- a/src/build.c +++ b/src/build.c @@ -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 @@ -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); diff --git a/src/main.c b/src/main.c index bbbb2135fe..0ffe004097 100644 --- a/src/main.c +++ b/src/main.c @@ -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;