Re: Server goes to Recovery Mode when run a SQL

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: PegoraroF10 <marcos@f10.com.br>
Cc: pgsql-general@postgresql.org
Date: 2020-08-14T20:40:19Z
Lists: pgsql-general
PegoraroF10 <marcos@f10.com.br> writes:
> CREATE FUNCTION public.fntextonumero(finteger public.i32, ftext text)
> RETURNS boolean
>     LANGUAGE sql STABLE
>     AS $$
>   SELECT ftext = finteger::text;
> $$;

Huh.  The crash goes away if you change that to

   SELECT finteger::text = ftext;

It looks like ExecInitSubPlan is just assuming that the outer side
of the hashable comparison condition is on the left, and this
function is confusing it by swapping that around to the right.
Kinda surprising that we never identified that problem before ---
this code's been like this for years.

			regards, tom lane



Commits

  1. Be more careful about the shape of hashable subplan clauses.