Thomas F.O'Connell wrote:

Since the current stable version of postgres (7.4.x) doesn't
allow cross-datatype comparisons of indexes, is it always
necessary to cast my application data explicitly in order for an
index to be used, even among the integer types?

E.g., If I have a table with a bigint primary key and application
data compared against that primary key, must I always explicitly
cast the application data to bigint if I want postgres to use the
index?

SELECT * FROM some_table WHERE primary_key_column = 42

vs.

SELECT * FROM some_table WHERE primary_key_column = 42::int8

There's no way to tell postgres to treat incoming data implicitly
as the type of the column, right?

You can always set your initial sequence values to > 4.2 billion (2^32) which could also probably expose some 4-byte integer assumptions your code may make. You'd not need to use an explicit cast in that scenario either.


Mike Mascari


---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match

Reply via email to