BUG #19486: Regression in SQL-language functions using XML values and IS DOCUMENT
PG Bug reporting form <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: a.prototype7@gmail.com
Date: 2026-05-18T07:54:29Z
Lists: pgsql-bugs
The following bug has been logged on the website:
Bug reference: 19486
Logged by: Artem Zarubin
Email address: a.prototype7@gmail.com
PostgreSQL version: 18.4
Operating system: Debian 13
Description:
Hello, I found a regression in SQL-language functions using XML values and
`IS DOCUMENT`.
Tested commits:
bad: 98dd6c2046965e51da015681e81c20109be46d71, PostgreSQL 18.4
bad: 5107398e6d5ecad96f3d1c0efcfc9aa02b9cdff9, PostgreSQL 19devel
good: e9e7b66044c9e3dfa76fd1599d5703acd3e4a3f5, parent of 0dca5d68
PostgreSQL 18devel before SQL-function plan cache changes
The server was configured with:
./configure --enable-tap-tests --enable-debug --enable-cassert
--with-libxml
SQL-script to reproduce:
CREATE OR REPLACE FUNCTION xml_to_text_no_inline(pXml xml) RETURNS text
LANGUAGE sql
IMMUTABLE
SET search_path = pg_catalog
AS $$
SELECT CASE WHEN pXml IS DOCUMENT
THEN (xpath('/*/text()', pXml))[1]::text
ELSE pXml::text
END;
$$;
SELECT xml_to_text_no_inline(XMLPARSE(CONTENT '2019-12-16T00:00:00.000'));
Expected result:
2019-12-16T00:00:00.000
Actual result:
ERROR: could not parse XML document
DETAIL: line 1: Start tag expected, '<' not found
2019-12-16T00:00:00.000
^
CONTEXT: SQL function "xpath" statement 1
SQL function "xml_to_text_no_inline" statement 1
---
Best regards,
Artem Zarubin
Postgres Professional: https://postgrespro.com/
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
postgres_fdw: Fix deparsing of remote column names in stats import.
- 5107398e6d5e 19 (unreleased) cited
-
pgbench: fix verbose error message corruption with multiple threads
- 98dd6c204696 18 (unreleased) cited
-
Add GiST and btree sortsupport routines for range types
- e9e7b66044c9 18.0 cited