From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | Craig Ringer <craig(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: patch: function xmltable |
Date: | 2017-01-16 22:51:13 |
Message-ID: | 20170116225113.mwmuxkfu5zhmcdcx@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Given
https://www.postgresql.org/message-id/20170116210019.a3glfwspg5lnfrnm@alap3.anarazel.de
which is going to heavily change how the executor works in this area, I
am returning this patch to you again. I would like a few rather minor
changes:
1. to_xmlstr can be replaced with calls to xmlCharStrdup.
2. don't need xml_xmlnodetostr either -- just use xml_xmlnodetoxmltype
(which returns text*) and extract the cstring from the varlena. It's
a bit more wasteful in terms of cycles, but I don't think we care.
If we do care, change the function so that it returns cstring, and
have the callers that want text wrap it in cstring_to_text.
3. have a new perValueCxt memcxt in TableExprState, child of buildercxt,
and switch to it just before GetValue() (reset it just before
switching). Then, don't worry about leaks in GetValue. This way,
the text* conversions et al don't matter.
After that I think we're going to need to get this working on top of
Andres' changes. Which I'm afraid is going to be rather major surgery,
but I haven't looked.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2017-01-16 23:30:00 | Re: patch: function xmltable |
Previous Message | Tom Lane | 2017-01-16 22:48:42 | Re: [COMMITTERS] pgsql: Permit dump/reload of not-too-large >1GB tuples |