List:Falcon Storage Engine« Previous MessageNext Message »
From:Ann W. Harrison Date:November 26 2008 4:36pm
Subject:Handling prefix keys
View as plain text  
<svoj> I'm asking about it because this comparison won't work with 
prefix keys, as falcon doesn't get full key value.

I'm surprised that works at all, given this code from 
StorageInterface::index_read


		case HA_READ_BEFORE_KEY:    // ???
		case HA_READ_PREFIX_LAST_OR_PREV: // ???
		case HA_READ_PREFIX_LAST:   // ???
		case HA_READ_PREFIX:
		case HA_READ_KEY_OR_PREV:
		default:
			DBUG_RETURN(HA_ERR_UNSUPPORTED);


But yes, an index can return a record number that doesn't have a value
that matches the search criteria for a particular transaction.  There's
no transaction information in the index.  After a key value is updated,
there are entries in the index for both values - only one of which can
be seen by any particular transaction.

The server may throw out values that don't match the criteria, but
(if I remember correctly) it stops the scan after an error, so we have
to validate records ourselves.


Best,

Ann
Thread
Handling prefix keysAnn W. Harrison26 Nov