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