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 1wpVg2-001gcw-1V for pgsql-bugs@arkaria.postgresql.org; Thu, 30 Jul 2026 18:40:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wpVg0-00CfKO-0u for pgsql-bugs@arkaria.postgresql.org; Thu, 30 Jul 2026 18:40:16 +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 1wpO1i-00BGNY-1u for pgsql-bugs@lists.postgresql.org; Thu, 30 Jul 2026 10:30:10 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wpO1e-000000013xf-3WIt for pgsql-bugs@lists.postgresql.org; Thu, 30 Jul 2026 10:30:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Message-ID:Date:Reply-To:Cc:From:To:Subject: Content-Transfer-Encoding:MIME-Version:Content-Type:Sender:Content-ID: Content-Description:In-Reply-To:References; bh=7Re4PqPU+TOxoo6tZzy7fUTjPEVLxCU3pU5xNspigqM=; b=Ux4l8zgfkyIZ6ojUGQIEEm2vFz ipqj7fX9LQS7EvE973DEzLa+FGsSclKpCz5wTkbUM7gxUflmbivUbbI0Y8gYHg5f+b2lkssCVlwf6 hLYUXWtRnWrSqfXzzbR00tXDltKwJ0shJmxsOzeJvMBPjNqfcCaPOHEOhs9ZBZ1NRpyGFN7AEHilS kKH1+UmSSquvhE+79Cr7TrSZneUilGobAwnS4ouxnU3ttJ5CzMiaMDQTrLdw+MVGBhxTAAKKYF39P 7ugwJ+vSLXRxHddN/s+6sLA+MsBm29geJQ3MldnXs67F3J1MXyidj30ydGV+xyi5+h44psAd/RYlz kvD6KaIg==; Received: from wrigleys.postgresql.org ([2a02:16a8:dc51::60]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wpO1e-003JHn-0n for pgsql-bugs@lists.postgresql.org; Thu, 30 Jul 2026 10:30:06 +0000 Received: from localhost ([127.0.0.1] helo=wrigleys.postgresql.org) by wrigleys.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1wpO1c-00000007r24-2wX9 for pgsql-bugs@lists.postgresql.org; Thu, 30 Jul 2026 10:30:04 +0000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: BUG #19589: JSON_QUERY rejects domain-over-bytea input when using FORMAT JSON ENCODING UTF8. To: pgsql-bugs@lists.postgresql.org From: PG Bug reporting form Cc: dllggyx@outlook.com Reply-To: dllggyx@outlook.com, pgsql-bugs@lists.postgresql.org Date: Thu, 30 Jul 2026 10:29:19 +0000 Message-ID: <19589-edd0b3b861601fef@postgresql.org> X-Auto-Response-Suppress: All Auto-Submitted: auto-generated List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk The following bug has been logged on the website: Bug reference: 19589 Logged by: Yuxiao Guo Email address: dllggyx@outlook.com PostgreSQL version: 18.4 Operating system: Ubuntu 20.04 x86-64, docker image postgres:18.4 Description: =20 Query A and Query B are equivalent, but while JSON_QUERY(... FORMAT JSON ENCODING UTF8 ...) accepts a direct bytea input, it incorrectly rejects a domain-over-bytea input with the error JSON ENCODING clause is only allowed for bytea input type. PoC: ```sql CREATE DOMAIN d_json_bytea AS bytea; -- Query A SELECT JSON_QUERY(convert_to(txt, 'utf8') FORMAT JSON ENCODING UTF8, '$') AS j FROM (VALUES ('[1,2]')) AS src(txt); -- Query B SELECT JSON_QUERY(b FORMAT JSON ENCODING UTF8, '$') AS j FROM ( SELECT convert_to(txt, 'utf8')::d_json_bytea AS b FROM ( SELECT txt FROM ( SELECT '[1,2]'::text AS txt UNION ALL SELECT '[9,9]'::text WHERE false ) AS u WHERE txt LIKE '[%' ) AS filtered ) AS typed; ``` Result of Query A: j -------- [1, 2] (1 row) Result of Query B: ERROR: JSON ENCODING clause is only allowed for bytea input type LINE 1: SELECT JSON_QUERY(b FORMAT JSON ENCODING UTF8, '$') AS j