> Why first example, where recid is given as numeric constant, is using
> sequential scan, but second example, where recid is given as string
> constant works with index scan, as expected? Third example shows, that
> numeric constant must be typecasted in order to function properly.
>
> Is this normal behaviour of fields with bigint type?
Yes, it's a known performance problem in PostgreSQL 7.4 and below. I
believe it's been fixed in 7.5 CVS already.
Chris