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
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to