I've found this a bit strange: insert into catalog_related (itemid, related_itemid, rank) select distinct itemid, null::bigint, 0::float4 from catalog_categoryitem where catid is null or catid<>0 and itemid not in (select itemid from catalog_related); create table catalog_related ( itemid bigint, updated timestamp default now(), related_itemid bigint, rank float4 ); without the explicit cast for the null I get ERROR: column "related_itemid" is of type bigint but expression is of type text LINE 1: insert into catalog_related (itemid, related_itemid, rank) ^ HINT: You will need to rewrite or cast the expression. PostgreSQL 8.3.4 on x86_64-pc-linux-gnu -- Ivan Sergio Borgonovo http://www.webthatworks.it -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general