On 8/26/2013 11:44 AM, Jan Slodicka wrote:
if( nKey1==nKey2 &&
((UInt8*)pKey1)[0]==((UInt8*)pKey2)[0] && memcmp(pKey1,pKey2,nKey1)==0 )
return 0;
There's a problem here when comparing empty strings, that is, when nKey1
== nKey2 == 0. Why are you comparing elements at index 0 explicitly?
memcmp() should do the right thing.
// Try ascii comparison. // Benchmarks: English text - 6x
faster if( g_bUseAscii == -1 ) { // At first exclude languages,
where ascii
sorting produces bad results because of digraphs: // - Albanian:
DH, GJ,
LL, RR, SH, TH, XH, ZH // - Croatia: LJ, NJ // -
Czech/Slovak: CH // DZ
- unimportant, it sorts identically to D+Z // - Hungary: CS, DZ,
DZS, GY,
LY, NY, SZ, TY, ZS // Other european languages with latin-based
alphabet do
not use digraphs
Lithuanian has 'y' sorting between 'i' and 'j'.
--
Igor Tandetnik
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users