In the file where.c, near the bottom of the function isSortingIndex there is a line:
if( j>=nTerm || (i>=pIdx->nColumn && pIdx->onError!=OE_None) ){ Comment out the second part of the expression as follows: if( j>=nTerm /* || (i>=pIdx->nColumn && pIdx->onError!=OE_None) */){ At the moment I'm thinking that second part should just be removed, but I'm not completely sure - maybe it should be replaced with something else. At any rate it's just an optimization, so it is safe to comment it out. --- mike cariotoglou <[EMAIL PROTECTED]> wrote: > I have found a bug in the way sqlite treats ORDER BY clauses. > to reproduce the bug, run this script against an empty database (memory db > would do): > > =========================================== > CREATE TABLE Eidh ( > ekey VARCHAR(12) NOT NULL, > perigrafh VARCHAR(30) NOT NULL, > PRIMARY KEY(ekey)); > > > INSERT INTO Eidh VALUES('0001','bla'); > > CREATE TABLE KinApo ( > ekey VARCHAR(12) NOT NULL , > date DATE, > polhths INTEGER); > > INSERT INTO KinApo VALUES('0001',38353,40); > INSERT INTO KinApo VALUES('0001',38353,30); > INSERT INTO KinApo VALUES('0001',38353,20); > > select kinapo.ekey, kinapo.polhths > from eidh inner join kinapo on eidh.ekey=kinapo.ekey > order by eidh.ekey, kinapo.polhths > ============================================== > > versin 3.2.2 of sqlite gives the following result set, which is unordered: > > 0001 40 > 0001 30 > 0001 20 > > also, EXPLAIN shows that no sorting is taking place. > > This is a SERIOUS malfunction! > can you pls verify this in other environments (I am using dll 3.2.2, locally > compiled), > and do something about it. > > > > __________________________________ Do you Yahoo!? Yahoo! Mail - You care about security. So do we. http://promotions.yahoo.com/new_mail