-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-C All\sthe\ssqlite3GetCollSeq()\sfunction\sto\sspecify\san\sarbitrary\stext\sencoding.
-D 2009-08-20T02:34:15
+C Set\sthe\s"type"\scorrectly\sof\sbuilt-in\sBINARY\scollating\ssequences\sfor\sUTF16.
+D 2009-08-20T02:49:31
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 0f7761c5d1c62ae7a841e3393ffaff1fa0f5c00a
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/legacy.c 303b4ffcf1ae652fcf5ef635846c563c254564f6
F src/lempar.c 0c4d1ab0a5ef2b0381eb81a732c54f68f27a574d
F src/loadext.c 0e88a335665db0b2fb4cece3e49dcb65d832635a
-F src/main.c 1e87aa66fd43d4a11c9aa4ed1407d0894b359a52
+F src/main.c c2fc25f25edf7bfb4b70622e21dc6c8476b6d66d
F src/malloc.c b1725183bcc4ce2e569f1b65da844dc3e4c7a643
F src/mem0.c f2f84062d1f35814d6535c9f9e33de3bfb3b132c
F src/mem1.c e6d5c23941288df8191b8a98c28e3f57771e2270
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl 672f81d693a03f80f5ae60bfefacd8a349e76746
-P 2467eb68ace46f6185fd14758446a5c887caffe3
-R fefce6705301a1ffd6d7c50ffcad3a36
+P 4ee44322ca3c92ed8d6f5d4a3f89d219bf379595
+R a229bfa6fe4f806b055faae10403d403
U drh
-Z 98ec124f66a48a1bb94d3a6b8f22b8e4
+Z e854e162390a77ab2c2b41dc6df78930
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
-iD8DBQFKjLYqoxKgR168RlERAroAAJ0Svkm1+MWBNNctkTg7ND8Sf9xrSQCghvrq
-XTAW3zqMFKerQ0WAo8MAen8=
-=ZqkO
+iD8DBQFKjLm+oxKgR168RlERAsLHAJwN2kz7PF+0ZFK6UY6zOKEcdbVNmACfRdSQ
+gRzico4HrGZ+RZD/AC3jBKY=
+=Uer1
-----END PGP SIGNATURE-----
** and the encoding is enc.
*/
static int createCollation(
- sqlite3* db,
+ sqlite3* db,
const char *zName,
- int enc,
+ int enc,
+ int collType,
void* pCtx,
int(*xCompare)(void*,int,const void*,int,const void*),
void(*xDel)(void*)
pColl->pUser = pCtx;
pColl->xDel = xDel;
pColl->enc = (u8)(enc2 | (enc & SQLITE_UTF16_ALIGNED));
+ pColl->type = collType;
}
sqlite3Error(db, SQLITE_OK, 0);
return SQLITE_OK;
){
sqlite3 *db;
int rc;
- CollSeq *pColl;
int isThreadsafe;
*ppDb = 0;
** and UTF-16, so add a version for each to avoid any unnecessary
** conversions. The only error that can occur here is a malloc() failure.
*/
- createCollation(db, "BINARY", SQLITE_UTF8, 0, binCollFunc, 0);
- createCollation(db, "BINARY", SQLITE_UTF16BE, 0, binCollFunc, 0);
- createCollation(db, "BINARY", SQLITE_UTF16LE, 0, binCollFunc, 0);
- createCollation(db, "RTRIM", SQLITE_UTF8, (void*)1, binCollFunc, 0);
+ createCollation(db, "BINARY", SQLITE_UTF8, SQLITE_COLL_BINARY, 0,
+ binCollFunc, 0);
+ createCollation(db, "BINARY", SQLITE_UTF16BE, SQLITE_COLL_BINARY, 0,
+ binCollFunc, 0);
+ createCollation(db, "BINARY", SQLITE_UTF16LE, SQLITE_COLL_BINARY, 0,
+ binCollFunc, 0);
+ createCollation(db, "RTRIM", SQLITE_UTF8, SQLITE_COLL_USER, (void*)1,
+ binCollFunc, 0);
if( db->mallocFailed ){
goto opendb_out;
}
assert( db->pDfltColl!=0 );
/* Also add a UTF-8 case-insensitive collation sequence. */
- createCollation(db, "NOCASE", SQLITE_UTF8, 0, nocaseCollatingFunc, 0);
-
- /* Set flags on the built-in collating sequences */
- db->pDfltColl->type = SQLITE_COLL_BINARY;
- pColl = sqlite3FindCollSeq(db, SQLITE_UTF8, "NOCASE", 0);
- if( pColl ){
- pColl->type = SQLITE_COLL_NOCASE;
- }
+ createCollation(db, "NOCASE", SQLITE_UTF8, SQLITE_COLL_NOCASE, 0,
+ nocaseCollatingFunc, 0);
/* Open the backend database driver */
db->openFlags = flags;
int rc;
sqlite3_mutex_enter(db->mutex);
assert( !db->mallocFailed );
- rc = createCollation(db, zName, enc, pCtx, xCompare, 0);
+ rc = createCollation(db, zName, enc, SQLITE_COLL_USER, pCtx, xCompare, 0);
rc = sqlite3ApiExit(db, rc);
sqlite3_mutex_leave(db->mutex);
return rc;
int rc;
sqlite3_mutex_enter(db->mutex);
assert( !db->mallocFailed );
- rc = createCollation(db, zName, enc, pCtx, xCompare, xDel);
+ rc = createCollation(db, zName, enc, SQLITE_COLL_USER, pCtx, xCompare, xDel);
rc = sqlite3ApiExit(db, rc);
sqlite3_mutex_leave(db->mutex);
return rc;
assert( !db->mallocFailed );
zName8 = sqlite3Utf16to8(db, zName, -1);
if( zName8 ){
- rc = createCollation(db, zName8, enc, pCtx, xCompare, 0);
+ rc = createCollation(db, zName8, enc, SQLITE_COLL_USER, pCtx, xCompare, 0);
sqlite3DbFree(db, zName8);
}
rc = sqlite3ApiExit(db, rc);