> What is relevant is not determined by the type of the object, but by > the task at hand, in other words by the comparator.
No. There is only one meaning of "equal". Two things are either equal or not. How to compare them is determined by only their type. You are correct, James, types are defined by the set of attributes or properties: things that have the same attributes are of the same type. Agree. You are also correct that two objects of the same type are equivalent when all of their attributes are identical. This may be called "byte equal". Agree too. However, sometimes, in comparison we want to ignore some of the attributes, or compare derived ones. Many busses can carry 25 people, and may be considered equal if we simply need to transport people. Busses certainly differ by other attributes. When we talk about error correction, if a word does not exist in the dictionary, we want to find a closest one --- different by one character, perhaps. These two words are called equal, although they are not byte equal. See for example http://en.wikipedia.org/wiki/Hamming_distance Thus, equality or inequality is, in general, established with respect to a metric (a set of attributes and a rule to combine them). The list of these attributes and the rule must be known to the comparator. Thus different comparators differ by the set of attributes and rules that they apply. Therefore, one can speak of types of comparators, as these are their attributes. Therefore, I agree with Simon: it is the comparison ( "=", BETWEEN, IN , etc) statements that must be modified with a collation, not their operands. Roman _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users