Bug 44079

GemStone/S 64 Bit

3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8.1, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2

3.3

GsQuery readstream with equality does not correctly handle cases where comparable objects are not equal

Some kinds of objects can be ordered using comparison operators such as <=, etc., but are not equal; in other words,  a <= b and a >= b does not mean a = b.

In particular, Strings and Symbols are comparable using <=, etc., and can be used as the indexed element within a single index. In this case, Strings and Symbols are mixed together in the comparison order within the internal btree, and index streaming will stream over a mixed collection.

Strings and Symbols with the same contents, however, are not equal using =.  When performing a query using =, the indexed results should only include results of the appropriate class. This is handled correctly in query results returned as a collection, but indexed streams (using BtreeReadStream) could return both Strings and Symbols with the matching contents.


Last updated: 6/5/15