Thom Brown <thombrown(at)gmail(dot)com> writes:
> Is that the right behaviour though? Shouldn't the signed value reach
> the cast step rather than the absolute value? Or maybe Postgres could
> implicitly accept -12345::integer to be (-12345)::integer. Is there a
> blocking reason as to why it must work this way?
Yes. There is no reason to assume that - means the same thing for every
datatype. In general, :: should (and does) bind tighter than *every*
operator, to ensure that the appropriately typed operator is applied.
regards, tom lane