pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Erik Wienhold <ewie@ewie.name>
To: zengman <zengman@halodbtech.com>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: pgsql-hackers <pgsql-hackers@lists.postgresql.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Subject: Re: Regression with large XML data input
Date: Thu, 25 Dec 2025 12:46:47 +0100
Message-ID: <89bbd852-eea9-42e8-bab6-bb8df59685de@ewie.name> (raw)
In-Reply-To: <tencent_2789D934383FA63637EFDB9E@qq.com>
References: <aIGknLuc8b8ega2X@paquier.xyz>
	<586b74bb-8941-420f-82c4-ba93e5b42b20@ewie.name>
	<tencent_2789D934383FA63637EFDB9E@qq.com>

On 2025-12-25 08:29 +0100, zengman wrote:
> > The whitespace can be preserved by setting xmlKeepBlanksDefault before
> > parsing.  See attached v2.  That function is deprecated, though.  But
> > libxml2 uses thread-local globals, so it should be safe.  Other than
> > that, I see no other way to set XML_PARSE_NOBLANKS with
> > xmlParseBalancedChunkMemory.
> > 
> > [1] https://gitlab.gnome.org/GNOME/libxml2/-/blob/408bd0e18e6ddba5d18e51d52da0f7b3ca1b4421/parserInterna...
> 
> Hi everyone, 
> 
> I have a small issue that needs resolving.
> 
> My environment:
> ```
> postgres@zxm-VMware-Virtual-Platform:~$ uname -i -s -r -v
> Linux 6.11.0-29-generic #29-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:29:41 UTC 2025 x86_64
> postgres@zxm-VMware-Virtual-Platform:~$ 
> postgres@zxm-VMware-Virtual-Platform:~$ xml2-config --version 
> 2.12.7
> ```
> 
> After setting COPT=-Werror, compilation fails with the following errors (warnings are enforced as errors):
> ```
> xml.c: In function ‘xml_parse’:
> xml.c:1919:25: error: ‘xmlKeepBlanksDefault’ is deprecated [-Werror=deprecated-declarations]
>  1919 |                         save_keep_blanks = xmlKeepBlanksDefault(preserve_whitespace ? 1 : 0);
>       |                         ^~~~~~~~~~~~~~~~
> In file included from xml.c:51:
> /usr/include/libxml2/libxml/parser.h:957:17: note: declared here
>   957 |                 xmlKeepBlanksDefault    (int val);
>       |                 ^~~~~~~~~~~~~~~~~~~~
> xml.c:1943:25: error: ‘xmlKeepBlanksDefault’ is deprecated [-Werror=deprecated-declarations]
>  1943 |                         xmlKeepBlanksDefault(save_keep_blanks);
>       |                         ^~~~~~~~~~~~~~~~~~~~
> /usr/include/libxml2/libxml/parser.h:957:17: note: declared here
>   957 |                 xmlKeepBlanksDefault    (int val);
>       |                 ^~~~~~~~~~~~~~~~~~~~
> xml.c:1956:17: error: ‘xmlKeepBlanksDefault’ is deprecated [-Werror=deprecated-declarations]
>  1956 |                 xmlKeepBlanksDefault(save_keep_blanks);
>       |                 ^~~~~~~~~~~~~~~~~~~~
> /usr/include/libxml2/libxml/parser.h:957:17: note: declared here
>   957 |                 xmlKeepBlanksDefault    (int val);
>       |                 ^~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> ```
> 
> These deprecation warnings do not impact the test results in any way. 
> Therefore, I have attached a patch to suppress these specific warnings. 

The patch works when building with COPT=-Werror.  I guess the change is
okay since we already make use of -Wno-deprecated-declarations in
src/backend/jit/llvm/Makefile:

	# LLVM 14 produces deprecation warnings.  We'll need to make some changes
	# before the relevant functions are removed, but for now silence the warnings.
	ifeq ($(GCC), yes)
	LLVM_CFLAGS += -Wno-deprecated-declarations
	endif

But do we need the same guard for GCC here as well?

Alternatively, can you upgrade to libxml2 2.13.3+ which undeprecated
xmlKeepBlanksDefault?

-- 
Erik Wienhold





view thread (36+ messages)  latest in thread

Message-ID: <89bbd852-eea9-42e8-bab6-bb8df59685de@ewie.name>
Permalink:  ../89bbd852-eea9-42e8-bab6-bb8df59685de@ewie.name/
Also on:    postgresql.org/message-id/89bbd852-eea9-42e8-bab6-bb8df59685de@ewie.name

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: ewie@ewie.name, zengman@halodbtech.com, michael@paquier.xyz, pgsql-hackers@lists.postgresql.org, tgl@sss.pgh.pa.us
  Subject: Re: Regression with large XML data input
  In-Reply-To: <89bbd852-eea9-42e8-bab6-bb8df59685de@ewie.name>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox