Alban

Thanks for your help, your suggestion worked.

I need another xpath expression to find any Attribute with  Name ="xxxx"
under the Attributes node. (not just if it is in a specific position)
see   query below.
How do I create an index for this xpath expression ?

Thanks
Chris


 SELECT * FROM time_series
        WHERE
array_upper((xpath('/AttributeList/Attributes/Attribute[Name="xxxxx"]',
external_attributes)),1) > 0


On Sun, Mar 7, 2010 at 1:11 PM, Alban Hertroys <
dal...@solfertje.student.utwente.nl> wrote:

> On 7 Mar 2010, at 11:02, Chris Roffler wrote:
>
> > I still have some problems with my xml index
> >
> > CREATE INDEX xml_index
> >   ON time_series
> >   USING btree
> >   ((
> >   (xpath('/AttributeList/Attributes/Attribute/Name/text()',
> external_attributes))[1]::text));
> >
> > When I run the following query the index is not used :
> >
> > select id from time_series where
> > array_upper(
> > (xpath('/AttributeList/Attributes/Attribute[Name="Attribute122021"]',
> external_attributes))
> > , 1) > 0
> >
> > Any Idea on how to configure the index ?
>
> There are a couple of cases where Postgres won't use your index, but in
> this case it's quite clearly because you're asking for (quite) a different
> expression than the one you indexed.
>
> You seem to want to test for the existence of nodes with a specific name,
> maybe this is what you're looking for?:
>
> SELECT id FROM time_series t1 WHERE EXISTS (
>        SELECT 1
>          FROM time_series t2
>         WHERE (xpath('/AttributeList/Attributes/Attribute/Name/text()',
> external_attributes))[1]::text = ('Attribute122021', external_attributes)
>           AND t2.id = t1.id
> );
>
> It's just a guess at what you're trying to do, so I may very well have
> gotten it wrong. The important part is that you need to use the expression
> you indexed in your where clause, or the database has no idea you mean
> something similar as to what you indexed.
>
> Alban Hertroys
>
> --
> If you can't see the forest for the trees,
> cut the trees and you'll see there is no forest.
>
>
> !DSPAM:1034,4b9389d6296921789322580!
>
>
>

Reply via email to