The following bug has been logged online: Bug reference: 2006 Logged by: Atanas Hristov Email address: [EMAIL PROTECTED] PostgreSQL version: 8.1 Beta 3 Operating system: FreeBSD 5 Description: queryoptimizer and comparing a primary key of biginteger and a literal Details:
foo=# CREATE TABLE foo (id BIGINT, CONSTRAINT foo_pk PRIMARY KEY(id) ); foo=# EXPLAIN ANALYZE SELECT 'foo' FROM foo WHERE id = CAST(0 AS BIGINT); QUERY PLAN ---------------------------------------------------------------------------- -------------------------------- Index Scan using foo_pk on foo (cost=0.00..4.82 rows=2 width=0) (actual time=0.113..0.113 rows=0 loops=1) Index Cond: (id = 0::bigint) foo=# EXPLAIN ANALYZE SELECT 'foo' FROM foo WHERE id = 0; -- WHY POSTGRES DOES NOT IMPLICITLY DO CASTING OF THE LITERAL "0" ?????? QUERY PLAN ---------------------------------------------------------------------------- ------------------ Seq Scan on foo (cost=0.00..22.50 rows=2 width=0) (actual time=0.003..0.003 rows=0 loops=1) Filter: (id = 0) ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq