Re: patch: function xmltable
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Craig Ringer <craig@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2016-12-04T22:12:55Z
Lists: pgsql-hackers
Attachments
- xmltable-19.patch (text/x-patch) patch
2016-12-04 23:00 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>: > > > 2016-12-03 16:03 GMT+01:00 Alvaro Herrera <alvherre@2ndquadrant.com>: > >> Pavel Stehule wrote: >> >> > 2016-12-02 23:25 GMT+01:00 Alvaro Herrera <alvherre@2ndquadrant.com>: >> >> > > This is looking much better now, but it still needs at least the >> > > following changes. >> > > >> > > First, we need to fix is the per_rowset_memcxt thingy. I think the >> way >> > > it's currently being used is rather ugly; it looks to me like the >> memory >> > > context does not belong into the XmlTableContext struct at all. >> > > Instead, the executor code should keep the memcxt pointer in a state >> > > struct of its own, and it should be the executor's responsibility to >> > > change to the appropriate context before calling the table builder >> > > functions. In particular, this means that the table context can no >> > > longer be a void * pointer; it needs to be a struct that's defined by >> > > the executor (probably a primnodes.h one). The void * pointer is >> > > stashed inside that struct. Also, the "routine" pointer should not be >> > > part of the void * struct, but of the executor's struct. So the >> > > execQual code can switch to the memory context, and destroy it >> > > appropriately. >> > > >> > > Second, we should make gram.y set a new "function type" value in the >> > > TableExpr it creates, so that the downstream code (transformTableExpr, >> > > ExecInitExpr, ruleutils.c) really knows that the given function is >> > > XmlTableExpr, instead of guessing just because it's the only >> implemented >> > > case. Probably this "function type" is an enum (currently with a >> single >> > > value TableExprTypeXml or something like that) in primnodes. >> > >> > It has sense - I was not sure about it - because currently it is only >> one >> > value, you mentioned it. >> >> True. This is a minor point. >> >> Are you able to do the memory context change I describe? >> > > I am not sure if I understand well to your ideas - please, check attached > patch. > attached patch without your patch 0001 Regards Pavel > > Regards > > Pavel > > >> >> -- >> Álvaro Herrera https://www.2ndQuadrant.com/ >> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services >> > >
Commits
-
Support XMLTABLE query expression
- fcec6caafa23 10.0 landed
-
Create <sect3> in the functions-xml section
- 4461a9bfd1ac 10.0 landed
-
Improve handling of "UPDATE ... SET (column_list) = row_constructor".
- 906bfcad7ba7 10.0 cited
-
Add xmlexists function
- 641459f26954 9.1.0 cited