Re: [sqlite] What does this code do?

2005-05-22 Thread D. Richard Hipp
On Sun, 2005-05-22 at 10:19 +0200, Ludvig Strigeus wrote: > Why not pass a single number to sqlite3VdbeRecordCompare instead, that > just says how many fields to compare? That seems simpler. Why was the > current design chosen. > The reason for not passing in a nField value is that the BTree layer

Re: [sqlite] What does this code do?

2005-05-22 Thread Ludvig Strigeus
What if the last field of record1 is a NULL, and the last field of record2 is an empty string. Then there's no way to tell sqlite3VdbeRecordCompare that you don't want to compare those items. If you set nKey1 and nKey2 to the last offsets of each record, the last items will be compared too. Why n

Re: [sqlite] What does this code do?

2005-05-21 Thread Dan Kennedy
--- Ludvig Strigeus <[EMAIL PROTECTED]> wrote: > In sqlite3VdbeRecordCompare() > > /* Read the serial types for the next element in each key. */ > idx1 += sqlite3GetVarint32(&aKey1[idx1], &serial_type1);f > if( d1>=nKey1 && sqlite3VdbeSerialTypeLen(serial_type1)>0 ) break; > idx2

[sqlite] What does this code do?

2005-05-21 Thread Ludvig Strigeus
In sqlite3VdbeRecordCompare() /* Read the serial types for the next element in each key. */ idx1 += sqlite3GetVarint32(&aKey1[idx1], &serial_type1); if( d1>=nKey1 && sqlite3VdbeSerialTypeLen(serial_type1)>0 ) break; idx2 += sqlite3GetVarint32(&aKey2[idx2], &serial_type2); if( d