diff --git a/manifest b/manifest index 47c04c09f7..8d35391dab 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Some\sextra\stests\sfor\sthe\sOP_MustBeInt\sopcode.\s(CVS\s1769) -D 2004-06-30T02:29:03 +C Minor\sfixes\sfor\sUTF-16\sdatabases.\s(CVS\s1770) +D 2004-06-30T02:35:51 F Makefile.in cb7a9889c38723f72b2506c4236ff30a05ff172b F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd @@ -64,16 +64,16 @@ F src/table.c 4521c278892f60e4d630788c0ea5cf4db1e75c49 F src/tclsqlite.c f72288553ca3cdaf686baab4b1797dd98140c501 F src/test1.c 151df224f7202c2a0d907638f22ed4b0e2378ba9 F src/test2.c dafd8bd314a554bf376c6d3a8c83fd69219f5a40 -F src/test3.c 7bf0d3fb811a68e009f4c0b228d6daad49176efb +F src/test3.c 7163c577f1dd73ad4a1d3730ea6541af3274c964 F src/test4.c a921a69821fd30209589228e64f94e9f715b6fe2 F src/test5.c b001fa7f1b9e2dc5c2331de62fc641b5ab2bd7a1 F src/tokenize.c 900374b6b37f04748bcd48c2d29a41c251542935 F src/trigger.c 6aaf6d79cc2157c70a06031dd1531707d644cfb4 F src/update.c b66b1896c9da54678ba3eff2bf0b4d291a95986a F src/utf.c f03535db72bfa09e24202ccdd245f21d2fc65f0a -F src/util.c 43d0289d49f43c66847ebbeddfb85a2a0d1ddd2d +F src/util.c 94796d2b31600beee7de426c3946022ef3508d46 F src/vacuum.c 353c7f69dbeb6738434d81798465cc0698844640 -F src/vdbe.c aa0339933c31e4bb3bb83831a185d60be1060cb5 +F src/vdbe.c b1a0357089b2118c9509703ec6208cb75fb08413 F src/vdbe.h 75b241c02431b9c0f16eaa9cdbb34146c6287f52 F src/vdbeInt.h d83fd7389838453d8392915c21f432014afc99cf F src/vdbeapi.c ba3722f45db3d3c3509bf5d24f4f868f4c64449d @@ -89,14 +89,14 @@ F test/bigfile.test a1101b46528ad7282fb9b323d25da18672a3bd0a F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578 F test/bind.test ca031e902f63fb7d69545b4a47b0c7aea8747ffe F test/blob.test 8727a7b46b2073a369cfc9bcb6f54dd366b9d884 -F test/btree.test f1dc208d59b1c28f853ba09dd2553fc3382d22b6 +F test/btree.test 973791eb269ab320c1a2bf0c440adee28ea936d2 F test/btree2.test aa4a6d05b1ea90b1acaf83ba89039dd302a88635 F test/btree4.test 3797b4305694c7af6828675b0f4b1424b8ca30e4 F test/btree5.test 8e5ff32c02e685d36516c6499add9375fe1377f2 F test/btree6.test a5ede6bfbbb2ec8b27e62813612c0f28e8f3e027 F test/btree7.test 429b96cfef5b51a7d512cfb4b5b3e453384af293 F test/capi2.test fe61f341e953f73c29bacfcbdaf688cd7b0e0d38 -F test/capi3.test f16c92be7d9a0b66893651c44bebc05386daeb5b +F test/capi3.test 3a7f759ce26a300ecdd288be901fcb0727f8773a F test/collate1.test 2ee4fa3a47a652ccf56c5ddf65dcc44d9bad82ef F test/collate2.test c1a3b41f761b28853c5696037f92de928f93233b F test/collate3.test e60b428e07ec945492ba90ff1c895902ee3a8a50 @@ -164,17 +164,17 @@ F test/tester.tcl f36cc22d0532725073ca78272d7834d56dceb6d9 F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35 F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b F test/threadtest2.c 97a830d53c24c42290501fdfba4a6e5bdd34748b -F test/trace.test 0c5da18f986bf2c83b2669f2691931264cdaab6d +F test/trace.test 0ed72787440d97c6de6b6ecb4c022e6f78d5d94a F test/trans.test 29645b344d2b9b6792793562b12340177ddd8f96 F test/trigger1.test dc015c410161f1a6109fd52638dfac852e2a34de F test/trigger2.test 0767ab30cb5a2c8402c8524f3d566b410b6f5263 F test/trigger3.test 70931be83fa3f563f7a5ca9e88b86f476af73948 F test/trigger4.test 97c11d3cf43d752b172809bb82536372ee5e399c -F test/types.test 6c49e574970866558365a025b44c9fd8a162ef0d +F test/types.test 41aa7ad65b6e7dc07fd1a06acc218dc6e8118578 F test/types2.test 5d725fcb68dbd032c6d4950d568d75fa33872687 F test/unique.test 0e38d4cc7affeef2527720d1dafd1f6870f02f2b F test/update.test b29bd9061a1150426dab6959806fcc73a41b1217 -F test/utf16.test b20a8cea5877d53fa2cf177a38b0d5f4b84b70b4 +F test/utf16.test 459c2f5ab80c60092c603630a348c32d6e59c558 F test/vacuum.test 3922b97f958986a9ab198c30480f54361087a06f F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102 F test/view.test b42c98499ae9fbf578cd7a4b020d23057c8825fb @@ -232,7 +232,7 @@ F www/tclsqlite.tcl 19191cf2a1010eaeff74c51d83fd5f5a4d899075 F www/vdbe.tcl 59288db1ac5c0616296b26dce071c36cb611dfe9 F www/version3.tcl 563ba3ac02f64da27ab17f3edbe8e56bfd0293fb F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4 -P 73eec675059f6d2178c6175268e80750378bf07b -R 62daf07c155b652cd6cf4ae16d676643 -U drh -Z d7a37b25656f17819dd729b71cc53465 +P b9d5858ca171e11afaeb9712efa0fc1a0e79102b +R 1713a91d92d6107dcb2c5c63e12187e6 +U danielk1977 +Z 23a2baa08de6f312dfc7ecc222823a86 diff --git a/manifest.uuid b/manifest.uuid index 4591046071..d8114505e5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b9d5858ca171e11afaeb9712efa0fc1a0e79102b \ No newline at end of file +6c5c11e07e157c15cf99078fce2a1bc478e287ce \ No newline at end of file diff --git a/src/test3.c b/src/test3.c index 0e2020ba97..4a102e0cc4 100644 --- a/src/test3.c +++ b/src/test3.c @@ -13,7 +13,7 @@ ** is not included in the SQLite library. It is used for automated ** testing of the SQLite library. ** -** $Id: test3.c,v 1.46 2004/06/29 13:18:24 danielk1977 Exp $ +** $Id: test3.c,v 1.47 2004/06/30 02:35:51 danielk1977 Exp $ */ #include "sqliteInt.h" #include "pager.h" @@ -420,7 +420,7 @@ static int btree_update_meta( } if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; for(i=1; i @@ -594,7 +594,7 @@ int sqlite3StrNICmp(const char *zLeft, const char *zRight, int N){ */ int sqlite3IsNumber(const char *z, int *realnum, u8 enc){ int incr = (enc==SQLITE_UTF8?1:2); - if( enc==SQLITE_UTF16LE ) z++; + if( enc==SQLITE_UTF16BE ) z++; if( *z=='-' || *z=='+' ) z += incr; if( !isdigit(*z) ){ return 0; diff --git a/src/vdbe.c b/src/vdbe.c index 97e2ee2d7a..004e07d066 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -43,7 +43,7 @@ ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** -** $Id: vdbe.c,v 1.394 2004/06/29 13:54:50 drh Exp $ +** $Id: vdbe.c,v 1.395 2004/06/30 02:35:51 danielk1977 Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -702,6 +702,7 @@ case OP_Real: { pTos->enc = SQLITE_UTF8; pTos->r = sqlite3VdbeRealValue(pTos); pTos->flags |= MEM_Real; + sqlite3VdbeChangeEncoding(pTos, db->enc); break; } diff --git a/test/btree.test b/test/btree.test index d86c1d33e7..4396bea4f9 100644 --- a/test/btree.test +++ b/test/btree.test @@ -11,7 +11,7 @@ # This file implements regression tests for SQLite library. The # focus of this script is btree database backend # -# $Id: btree.test,v 1.28 2004/06/20 03:06:18 dougcurrie Exp $ +# $Id: btree.test,v 1.29 2004/06/30 02:35:51 danielk1977 Exp $ set testdir [file dirname $argv0] @@ -372,14 +372,14 @@ do_test btree-5.1 { } {0 0 0 0 0 0 0 0 0 0} do_test btree-5.2 { set rc [catch { - btree_update_meta $::b1 1 2 3 4 5 6 7 8 9 10 + btree_update_meta $::b1 0 1 2 3 4 5 6 7 8 9 } msg] lappend rc $msg } {1 SQLITE_ERROR} do_test btree-5.3 { btree_begin_transaction $::b1 set rc [catch { - btree_update_meta $::b1 1 2 3 4 5 6 7 8 9 10 + btree_update_meta $::b1 0 1 2 3 4 5 6 7 8 9 } msg] lappend rc $msg } {0 {}} @@ -393,7 +393,7 @@ do_test btree-5.5 { } {0 0 0 0 0 0 0 0 0 0} do_test btree-5.6 { btree_begin_transaction $::b1 - btree_update_meta $::b1 10 20 30 40 50 60 70 80 90 100 + btree_update_meta $::b1 0 10 20 30 40 50 60 70 80 90 btree_commit $::b1 btree_get_meta $::b1 } {0 10 20 30 40 50 60 70 80 90} diff --git a/test/capi3.test b/test/capi3.test index 56a06a85a3..7dce3722df 100644 --- a/test/capi3.test +++ b/test/capi3.test @@ -11,7 +11,7 @@ # This file implements regression tests for SQLite library. The # focus of this script testing the callback-free C/C++ API. # -# $Id: capi3.test,v 1.17 2004/06/29 14:03:58 danielk1977 Exp $ +# $Id: capi3.test,v 1.18 2004/06/30 02:35:51 danielk1977 Exp $ # set testdir [file dirname $argv0] @@ -405,12 +405,10 @@ do_test capi3-5.0 { } set sql "SELECT * FROM t1" set STMT [sqlite3_prepare $DB $sql -1 TAIL] - sqlite3_column_count $STMT } 3 check_header $STMT capi3-5.1 {a b c} {VARINT BLOB VARCHAR(16)} - do_test capi3-5.2 { sqlite3_step $STMT } SQLITE_ROW @@ -440,6 +438,7 @@ do_test capi3-5.12 { sqlite3_finalize $STMT } SQLITE_OK +set ::ENC [execsql {pragma encoding}] db close do_test capi3-6.0 { @@ -468,13 +467,14 @@ do_test capi3-7.1 { set ::bt [btree_open test.db 10 0] btree_begin_transaction $::bt set meta [btree_get_meta $::bt] - lset meta 5 2 - eval [concat btree_update_meta $::bt $meta] + lset meta 2 2 + eval [concat btree_update_meta $::bt [lrange $meta 0 end]] btree_commit $::bt btree_close $::bt } {} do_test capi3-7.2 { sqlite3 db test.db +breakpoint catchsql { SELECT * FROM sqlite_master; } @@ -498,6 +498,7 @@ do_test capi3-8.2 { # Build a 5-field row record consisting of 5 null records. This is # officially black magic. + unset data set data [binary format c6 {6 0 0 0 0 0}] btree_insert $::bc 5 $data @@ -518,8 +519,14 @@ do_test capi3-8.4 { # Build a 5-field row record. The first field is a string 'table', and # subsequent fields are all NULL. Replace the other broken record with - # this one and try to read the schema again. - set data [binary format c6a5 {6 23 0 0 0 0} table] + # this one and try to read the schema again. The broken record uses + # either UTF-8 or native UTF-16 (if this file is being run by + # utf16.test). + if { [string match UTF-16* $::ENC] } { + set data [binary format c6a10 {6 33 0 0 0 0} [utf16 table]] + } else { + set data [binary format c6a5 {6 23 0 0 0 0} table] + } btree_insert $::bc 5 $data btree_close_cursor $::bc diff --git a/test/trace.test b/test/trace.test index 20fdbe45e7..011917a3ae 100644 --- a/test/trace.test +++ b/test/trace.test @@ -12,11 +12,12 @@ # # This file implements tests for the "sqlite3_trace()" API. # -# $Id: trace.test,v 1.1 2004/06/29 11:26:59 drh Exp $ +# $Id: trace.test,v 1.2 2004/06/30 02:35:51 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl +set ::stmtlist {} do_test trace-1.1 { set rc [catch {db trace 1 2 3} msg] lappend rc $msg diff --git a/test/types.test b/test/types.test index 9ca1947482..c874a61c9e 100644 --- a/test/types.test +++ b/test/types.test @@ -12,7 +12,7 @@ # it tests that the different storage classes (integer, real, text etc.) # all work correctly. # -# $Id: types.test,v 1.7 2004/05/27 19:59:33 drh Exp $ +# $Id: types.test,v 1.8 2004/06/30 02:35:51 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -260,11 +260,19 @@ do_test types-2.4.2 { } } [list $string10 $string500 $string500000] -# Check that all the record sizes are as we expected. -do_test types-2.4.3 { - set root [db eval {select rootpage from sqlite_master where name = 't4'}] - record_sizes $root -} {12 503 500004} +# Check that all the record sizes are as we expected. This is dependant on +# the database encoding. +if { [execsql {pragma encoding}] == "UTF-8" } { + do_test types-2.4.3 { + set root [db eval {select rootpage from sqlite_master where name = 't4'}] + record_sizes $root + } {12 503 500004} +} else { + do_test types-2.4.3 { + set root [db eval {select rootpage from sqlite_master where name = 't4'}] + record_sizes $root + } {22 1003 1000004} +} do_test types-2.5.1 { execsql { diff --git a/test/utf16.test b/test/utf16.test index b722c44352..a399ee8f53 100644 --- a/test/utf16.test +++ b/test/utf16.test @@ -10,7 +10,7 @@ #*********************************************************************** # This file runs all tests. # -# $Id: utf16.test,v 1.2 2004/06/29 23:52:48 danielk1977 Exp $ +# $Id: utf16.test,v 1.3 2004/06/30 02:35:51 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -32,14 +32,13 @@ if { [llength $argv]>0 } { memdb.test minmax.test misc1.test misc2.test misc3.test notnull.test null.test progress.test quote.test rowid.test select1.test select2.test select3.test select4.test select5.test select6.test sort.test - subselect.test tableapi.test table.test tclsqlite.test temptable.test - trace.test trans.test trigger1.test trigger2.test trigger3.test + subselect.test tableapi.test table.test temptable.test + trace.test trigger1.test trigger2.test trigger3.test trigger4.test types2.test types.test unique.test update.test vacuum.test view.test where.test } foreach f $F {lappend FILES $testdir/$f} } -puts $FILES rename sqlite3 real_sqlite3 proc sqlite3 {args} {