The following bug has been logged online: Bug reference: 5358 Logged by: Gurjeet Singh Email address: singh.gurj...@gmail.com PostgreSQL version: 8.4.2 Operating system: Windows Vista 64bit Description: Throwing unexpected ERROR Details:
I am using Postgres Plus Standard Server version: PostgreSQL 8.4.2, compiled by Visual C++ build 1400, 32-bit create table public.test( a bytea, c text ) select relname, pg_relation_size( 'public."' || relname || '"' )/1024 from (select distinct relname from (select r.relname, c.attname, c.attnotnull, t.typname from pg_namespace as s, pg_class as r, pg_attribute as c, pg_type as t where s.oid = r.relnamespace and r.oid = c.attrelid and c.atttypid = t.oid and s.nspname = 'public' and t.typname in ('bytea', 'text') ) as s1 ) as s2 where pg_relation_size( 'public."' || relname || '"' ) <> 0; ERROR: relation "public.pg_type" does not exist ********** Error ********** ERROR: relation "public.pg_type" does not exist SQL state: 42P01 When I comment out the last WHERE clause, the query runs fine. It seems that the WHERE predicate is being pushed into the subqueries a bit too soon. Here's the EXPLAIN: Subquery Scan s2 (cost=123.50..124.23 rows=21 width=64) -> HashAggregate (cost=123.50..123.71 rows=21 width=64) -> Nested Loop (cost=10.93..123.44 rows=21 width=64) Join Filter: (r.relnamespace = s.oid) -> Seq Scan on pg_namespace s (cost=0.00..1.08 rows=1 width=4) Filter: (nspname = 'public'::name) -> Nested Loop (cost=10.93..121.03 rows=107 width=68) -> Hash Join (cost=10.93..82.03 rows=107 width=4) Hash Cond: (c.atttypid = t.oid) -> Seq Scan on pg_attribute c (cost=0.00..61.57 rows=2257 width=8) -> Hash (cost=10.90..10.90 rows=2 width=4) -> Seq Scan on pg_type t (cost=0.00..10.90 rows=2 width=4) Filter: (typname = ANY ('{bytea,text}'::name[])) -> Index Scan using pg_class_oid_index on pg_class r (cost=0.00..0.35 rows=1 width=72) Index Cond: (r.oid = c.attrelid) Filter: (pg_relation_size(((('public."'::text || (r.relname)::text) || '"'::text))::regclass, 'main'::text) <> 0) Best regards, -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs