Bruno Wolff III <bruno(at)wolff(dot)to> writes:
> I am going to assume that one of the sc.cpfcnpj's above is really rc.cpfcnpj
> since that corresponds to the explain below.
No, actually the explain plan corresponds to the sc.cpfcnpj = sc.cpfcnpj
condition. I didn't twig to the typo until I started to wonder why the
plan had the condition in the wrong place (attached to the seqscan and
not the join step).
> sc.cpfcnpj and rc.cpfcnpj are different length varchars. You made need
> an explicit cast to allow the use of indexes.
AFAIK the cross-type issues only apply to crossing actual types, not
lengths. That does look like an error in the database schema, though.
regards, tom lane