Re: [PATCH] Bug in XPATH() if expression returns a scalar value

Florian G. Pflug <fgp@phlo.org>

From: Florian Pflug <fgp@phlo.org>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: PG Hackers <pgsql-hackers@postgresql.org>
Date: 2011-06-08T08:14:09Z
Lists: pgsql-hackers
On Jun6, 2011, at 14:56 , Peter Eisentraut wrote:
> On tis, 2011-05-31 at 16:19 +0200, Florian Pflug wrote:
>> If people deem this to be a problem, we could instead add a separate
>> function XPATH_VALUE() that returns VARCHAR, and make people use that
>> for scalar-value-returning expressions.
> 
> Why not replicate what contrib/xml2 provides, namely
> 
> xpath_string()
> xpath_number()
> xpath_bool()
> 
> That way, types are preserved.


But then you lose the ability to evaluate user-supplied
XPath expressions, because there's no way of telling which of these
function to use.

Since XPATH_BOOL() can be emulated by doing XPATH(...)::text::boolean
if XPATH() implements the more lenient behaviour I proposed, that
seems like a bad tradeoff overall.

best regards,
Florian Pflug