xpath index not being used

Поиск
Список
Период
Сортировка
От Irooniam
Тема xpath index not being used
Дата
Msg-id AANLkTik2TtydDYr1rjdpIrcHPi2Dy6rfIBC8-p8-S8e5@mail.gmail.com
обсуждение исходный текст
Ответы Re: xpath index not being used  (Craig Ringer <craig@postnewspapers.com.au>)
Список pgsql-general
Hello,

I've searched the mailing list and I tried using defining a xpath index per the post, but my query is still not using it.

Essentially, I'm storing a fragment of xml and I want to create xpath indexes on them.

The two rows I'm going to insert look like this (alex & bob are the only names repeated):
<names><name>frank</name><name>mason</name><name>bob</name><name>alex</name></names>
<names><name>alex</name><name>bob</name><name>cola</name><name>doda</name></names>

create table test (data xml);
CREATE TABLE

CREATE INDEX name_test ON test (((xpath('//names/name/text()', data))[1]::text));
CREATE INDEX

I can select with a where clause without issue:
select * from test where ((xpath('//names/name[. ="bob"]/text()', data))[1]::text) = 'bob';
                                         data                                        
--------------------------------------------------------------------------------------
 <names><name>alex</name><name>bob</name><name>cola</name><name>doda</name></names>
 <names><name>frank</name><name>mason</name><name>bob</name><name>alex</name></names>
(2 rows)


However, when I check which index it's using, it's not using the xpath index:
explain select * from test where ((xpath('//names/name[. ="bob"]/text()', data))[1]::text) = 'bob';
                                               QUERY PLAN                                               
---------------------------------------------------------------------------------------------------------
 Seq Scan on test  (cost=0.00..1.03 rows=1 width=32)
   Filter: (((xpath('//names/name[. ="bob"]/text()'::text, data, '{}'::text[]))[1])::text = 'bob'::text)
(2 rows)


Any help on what I'm doing wrong would be appreciated.

В списке pgsql-general по дате отправления:

Предыдущее
От: Scott Marlowe
Дата:
Сообщение: Re: Differences between Postgres and MySql
Следующее
От: Michael Friedrich
Дата:
Сообщение: Re: NASA needs Postgres - Nagios help