xpath() subquery for empty array - Mailing list pgsql-general

From Roy Walter
Subject xpath() subquery for empty array
Date
Msg-id 4A59ABA9.9080209@brookhouse.co.uk
Whole thread Raw
Responses Re: xpath() subquery for empty array
List pgsql-general
In postgres 8.4 When running xpath() queries it seems that empty results are always returned. So if I query a table containing 1000 XML documents a 1000 rows will always be fetched even if the xpath() element of the query only matches 10 documents.

The documentation states:
The function xpath evaluates the XPath expression xpath against the XML value xml. It returns an array of XML values corresponding to the node set produced by the XPath expression.
Yet it seems that empty node sets (arrays) are also returned. So, my thought was to run a subquery to eliminate empty arrays, e.g.:
SELECT x
FROM (SELECT xpath('//entry[contains(p, ''searchtext'')]/@*', docxml)
AS x FROM docs) AS y WHERE x <> [test for empty array?????????]
How do I test for an empty array in postgres?

Thanks in advance,
Roy

pgsql-general by date:

Previous
From: Craig Ringer
Date:
Subject: Re: Weird disk/table space consumption problem
Next
From: Phoenix Kiula
Date:
Subject: Best practices for moving UTF8 databases