Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVkVh-002ASV-1k for pgsql-bugs@arkaria.postgresql.org; Sat, 06 Jun 2026 06:27:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wVkVe-00FcYO-15 for pgsql-bugs@arkaria.postgresql.org; Sat, 06 Jun 2026 06:27:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVkVd-00FcYF-2t for pgsql-bugs@lists.postgresql.org; Sat, 06 Jun 2026 06:27:54 +0000 Received: from mail-vk1-xa33.google.com ([2607:f8b0:4864:20::a33]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wVkVc-00000001MG2-0DtQ for pgsql-bugs@lists.postgresql.org; Sat, 06 Jun 2026 06:27:53 +0000 Received: by mail-vk1-xa33.google.com with SMTP id 71dfb90a1353d-59be89d310aso2571405e0c.0 for ; Fri, 05 Jun 2026 23:27:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780727269; cv=none; d=google.com; s=arc-20240605; b=D3HQ3u4a3dlANCo2ylpNA0E3EJr0iPs1WQX0Tg6F/XtkihfvK8TsXmh8deW2dL/44G k/MmQ67yiLKNbHPwsHMqnZ6snC2WNPiFHm3RNgh73BCSSNRIiCy0TTmw4FxaEr0hv4GV a7vTzF5k05+X4cJ8iPwGhNoksNdnfNWKLVnFD8/vdsHoWhxSz3nqLEcomSUSOV/OBs21 RAmIMmBbEjMs/D3T42DYJTyALZplzJv00pH+O/dQuceEEZgiYHK9yIoTM49f9bsKlXVF 7gbtryaWCwosipTpXhVrSNQGmBT+5kDCo4bDhz5ZTa1+uuC1ClXOcSZfnCDKUR0xWLzG EPSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=/CuukBueb1LUunXH3R1+k5L7FCx2L7AVH0EatqfHcjE=; fh=hl+vY2KM7yDwoHqNZtx+T1IOH7XYHmIp0KQMAWTnLEY=; b=FTpQmCcqwEvN9MloQ9VMzhvILEyTYOs62nnn489WBkfwampk7dCpZBGxqVBRtUpwNu VK8wdNyWwfGAWLUHMRWKHobyd7C+SLyu3Xnr2c54V3nk3MVeQ5ycjsLZXh99XEQzfu8P /YWUMGLlPfpeLDIV1/7ioXOnNZKIqx5yLjhhPGqXZCz+KbE2JPiILhru7Jd77O6OKzjG 3WcxxgA+Js+YnE8dH7IpCHYrSa2Zapsgth3YeVewgBsenzQjrx+i7sA3MP7WeQ3qZqGD nM1qQMfsxm3DVe6PVFRTNlV2MoVihGwT1sr2jW/VLo9LzkAzaLdU14Xbj8pMUYTJphx9 eEEA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780727269; x=1781332069; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/CuukBueb1LUunXH3R1+k5L7FCx2L7AVH0EatqfHcjE=; b=AqMgZ0iF811yuy+SPTFpGp9Ce9UfDmzagdWXkB64TpE7stvR7xR1fWpprCYN1TSYcn 2aeRzwFdOjkq6C2m4wOdNe4mLd0QP5UtNcSkrbPxsU3arIwclbDw1o6VJ+E/EtcsqRjj sKrqhxnGnJCRd2A7vxzKTAxVGgrHsRsvBI0gewsMV1E8S9wMV6N8nGEwVP/Kgv8GTtfK dxFf0OR1ccEhyQBAef5jZtQPJZWH3Uq6hE1vhp1pRWfPo8EImKeS3J9IEDIXW0ugRHmU WziTzbvHd1WBPX+vku6WHUM9b8WnT3Q14W+7nfAQr9XuPAltMLPtguO/Q1J+tqXkmm1Y vQfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780727269; x=1781332069; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/CuukBueb1LUunXH3R1+k5L7FCx2L7AVH0EatqfHcjE=; b=W39ukTL2IelvvYmFPIbHe8c8g+Ggmm3Q/eYX66hACiyiLF0EvYkAkECBJogof2yjeJ HJRE6eEHAu1bLYZXou18CwluK8D7NU2l6p6FV8WJUsTMxTEWBI7pm9EThhbVArtLR02x s44lkdPfrK3GvFTp5JZyMqh4dObucx3Sjgcr4XhYLebcEJWHMdkMDGEHOymNhLOyMBsN X6iIOM/nKhhV0GG7agT9/stt0pD4Nu7PSyzT+0E8CPNa59N8VC534yFlLlc240ZKhPGL yoYwJufUwbIlcu5SM47VsxRqkymLY5QPoYHc2pQ84/4p7+WFmsxzB0u16TTV26EMviqP O34w== X-Forwarded-Encrypted: i=1; AFNElJ9n6ydLcSZlRiodL8QPJLCjQeDooWzfuoEj42ZSAFwOAeOVWWJTv3yX6q7xxHYVqClvbqdAeE1S9PJ8@lists.postgresql.org X-Gm-Message-State: AOJu0YwhIGxEVhcIRqDLxvRhcTUysKQQD0nl7iVGeI2CtnFjBMOxORNc nZntvG3MRufZUCzbA3Rh3cavWCXdnfKbwLWVy6WobURThVa5nf2lV1EkgjEP2dNCBqGTDhiXKwW TcxD1F6x+Dxteaf+SueRF/nyhUSfGLcE= X-Gm-Gg: Acq92OEYp1nL2thfZzJ8hfkdLps3mSXZUTAqFmJ4MBUIAivyW8eSZChOiWBt+xKs65g Sq/e0HY4LpmEA9xVomNWcMmp6APD32tSHM+iTIOaAYbX3KjuI9h5mugXDvuMba9SSMWcRsvSzWN 35dHfWwpMh29Vx87gx15qtsEjRb7h3WsgT4dYc+lZmp8sApYn9xt8s0tqhjzOhPIaw+dl0+d7om SOviQjny2Ou9OkAcnBMZ2EUCI9Bn++sHaHHWJWLXlGMY6fnhYNf2K3HxIrp2wtT0JTjicVR/oXr 1aogzh1R8M/LAXgmGDRHBNVlt3JFGITZ05vFHIddiPBtOp9vf9yow0Pux3rzqPruoe0uIS7l2/9 HQKLdev6aC41wjMXo1OEkXrx7XqD48haeyUGS X-Received: by 2002:a05:6122:e251:b0:575:fa0b:bc23 with SMTP id 71dfb90a1353d-5acd3c65182mr2151912e0c.2.1780727269260; Fri, 05 Jun 2026 23:27:49 -0700 (PDT) MIME-Version: 1.0 References: <19491-7aafc221ec63f288@postgresql.org> In-Reply-To: From: Srinath Reddy Sadipiralla Date: Sat, 6 Jun 2026 11:57:38 +0530 X-Gm-Features: AVVi8CemwzzfGQ0gxJUfhvLNfDZsnupG-TpQsBML_zIDBduuwo48eCGtfB9JFx4 Message-ID: Subject: Re: BUG #19491: Segmentation fault triggered by IS NULL To: Ayush Tiwari Cc: 798604270@qq.com, pgsql-bugs@lists.postgresql.org, =?UTF-8?Q?=C3=81lvaro_Herrera?= Content-Type: multipart/alternative; boundary="0000000000005380d006538fe07e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005380d006538fe07e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Fri, Jun 5, 2026 at 9:41=E2=80=AFPM Ayush Tiwari wrote: > Hi, > > On Mon, 25 May 2026 at 22:06, Srinath Reddy Sadipiralla < > srinath2133@gmail.com> wrote: > >> Hi, >> >> I have reviewed the patch , i think the error message might be >> something like >> >> diff --git a/src/backend/parser/parse_expr.c >> b/src/backend/parser/parse_expr.c >> index 89d0f348303..59e34f082e4 100644 >> --- a/src/backend/parser/parse_expr.c >> +++ b/src/backend/parser/parse_expr.c >> @@ -4203,6 +4203,13 @@ transformJsonParseArg(ParseState *pstate, Node >> *jsexpr, JsonFormat *format, >> >> TEXTOID, -1, >> >> COERCION_IMPLICIT, >> >> COERCE_IMPLICIT_CAST, -1); >> + if(expr =3D=3D NULL) >> + ereport(ERROR, >> + (errcode(ERRCODE_CANNOT_COERCE), >> + errmsg("cannot cast type %s to %s", >> + format_type_be(*exprtype= ), >> + format_type_be(TEXTOID))= , >> + parser_errposition(pstate, >> exprLocation(raw_expr)))); >> *exprtype =3D TEXTOID; >> } >> > > Thanks, that reads better. v2 attached, raising ERRCODE_CANNOT_COERCE > right where the coercion fails: > > ERROR: cannot cast type sqljson_mystr to text > > which also covers the JSON() WITH UNIQUE KEYS path. > Thanks for the updated patch, LGTM. --=20 Thanks :) Srinath Reddy Sadipiralla EDB: https://www.enterprisedb.com/ --0000000000005380d006538fe07e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

On Fri, Jun 5, 2= 026 at 9:41=E2=80=AFPM Ayush Tiwari <ayushtiwari.slg01@gmail.com> wrote:
Hi= ,

On Mon, 25 May 2026 at 22:06, Srinath Reddy Sadipiralla <srinath2133@gmail.com> = wrote:
Hi,

I ha= ve reviewed the patch , i think the error message might be
something lik= e

diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/= parse_expr.c
index 89d0f348303..59e34f082e4 100644
--- a/src/backend/= parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -4203,6 = +4203,13 @@ transformJsonParseArg(ParseState *pstate, Node *jsexpr, JsonFor= mat *format,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0TEXTOID, -1,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0COERCION_IMPLICIT,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0COERCE_IMPLICIT_CAST, -1);
+ =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if(expr =3D= =3D NULL)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ereport(ERROR,
+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 (errcode(ERRCODE_CANNOT_COERCE),
+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0errmsg("cannot cast type %s to %s",+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 format_type_be(*exprtype),
+ =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 format_type_= be(TEXTOID)),
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0parser_errposition(p= state, exprLocation(raw_expr))));
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *exprtype =3D TEXTOID;
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }=C2=A0

Thanks, that reads better. =C2=A0v2 attached= , raising ERRCODE_CANNOT_COERCE
right where the coercion fails:

= =C2=A0 ERROR: =C2=A0cannot cast type sqljson_mystr to text

whic= h also covers the JSON() WITH UNIQUE KEYS path.

Thanks for the updated patch, LGTM.
=C2=A0
--
Thanks = :)
Srinath Reddy Sadipiralla
EDB:=C2=A0https://www= .enterprisedb.com/
--0000000000005380d006538fe07e--