Re: List of Index Columns & Expressions

Поиск
Список
Период
Сортировка
От David E. Wheeler
Тема Re: List of Index Columns & Expressions
Дата
Msg-id 204ADCAA-853B-4B5A-A080-4DFA0470B790@justatheory.com
обсуждение исходный текст
Ответ на Re: List of Index Columns & Expressions  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Jan 10, 2013, at 2:16 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

>> Is there some way to only get the relevant index expression from indexprs, rather than the whole expression?
>
> pg_get_indexdef() is your friend.  You really, really don't want to
> write any client-side code that inspects indexprs directly.  It'll
> break.

Ah-hah, somehow I missed that. So this:
       SELECT s.i, pg_catalog.pg_get_indexdef( ci.oid, s.i+1, false)         FROM pg_catalog.pg_index x         JOIN
pg_catalog.pg_classct    ON ct.oid = x.indrelid         JOIN pg_catalog.pg_class ci    ON ci.oid = x.indexrelid
JOINpg_catalog.pg_namespace n ON n.oid = ct.relnamespace         JOIN generate_series(0,
current_setting('max_index_keys')::int- 1) s(i)           ON x.indkey[s.i] IS NOT NULL        WHERE ct.relname = 'foo'
       AND ci.relname = 'idx_foo_stuff'          AND n.nspname  = 'public'        ORDER BY s.i 

Returns:
i | pg_get_indexdef
---+-----------------0 | id1 | abs(id)2 | (bar_ids[1])

Which is perfect. Thanks!

David




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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: List of Index Columns & Expressions
Следующее
От: Tom Lane
Дата:
Сообщение: Re: PL/perl should fail on configure, not make