Passing tokens to a function

Started by Scott Baileyalmost 17 years ago2 messagesgeneral
Jump to latest
#1Scott Bailey
artacus@comcast.net

I'd like to make an XMLTABLE() function, probably in plpython (not C).
And I'd like to follow the SQL/XML standard. So a function call should
look something like this:

SELECT *
FROM XMLTABLE('//node'
PASSING xmldoc
COLUMNS id INT PATH '@id',
name VARCHAR(30) PATH 'name')

Is this possible to pass in the tokens or do I need to abandon the
standard and just take parameters, probably something more like:

SELECT *
FROM XMLTABLE('//node', xmldoc,
array[xt_column('id', INT, '@id'), xt_column('name', VARCHAR(30), 'name')])

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Scott Bailey (#1)
Re: Passing tokens to a function

Scott Bailey <artacus@comcast.net> writes:

I'd like to make an XMLTABLE() function, probably in plpython (not C).
And I'd like to follow the SQL/XML standard. So a function call should
look something like this:

SELECT *
FROM XMLTABLE('//node'
PASSING xmldoc
COLUMNS id INT PATH '@id',
name VARCHAR(30) PATH 'name')

Is this possible to pass in the tokens or do I need to abandon the
standard and just take parameters,

The latter, unless you want to modify the parser (see gram.y).

The SQL committee's willingness to invent random syntax like this
is not one of their better habits :-(

regards, tom lane