Re: Regression with large XML data input

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Jim Jones <jim.jones@uni-muenster.de>
Cc: Erik Wienhold <ewie@ewie.name>, Michael Paquier <michael@paquier.xyz>, Robert Treat <rob@xzilla.net>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-29T12:11:11Z
Lists: pgsql-hackers
Jim Jones <jim.jones@uni-muenster.de> writes:
> Out of curiosity, what's the reasoning behind keeping node_list instead
> of directly using parsed_nodes in the xmlParseBalancedChunkMemory call?

In the original coding, there was a hazard of the node list getting
leaked if the caller passed parsed_nodes == NULL.  Or at least I
thought there was.  It may be that all releases of libxml2 are smart
enough to free the node list if there's no way to pass it back,
but I guess we had reason not to trust it.  Possibly there's something
about that in the discussion that led up to 6082b3d5d, though I see
I neglected to mention it in the commit message.

			regards, tom lane



Commits

  1. Remove unnecessary complication around xmlParseBalancedChunkMemory.

  2. Avoid regression in the size of XML input that we will accept.

  3. Use xmlParseInNodeContext not xmlParseBalancedChunkMemory.

  4. Revert "Add support for parsing of large XML data (>= 10MB)"