Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Как получить определение индекса


Автор: solenko 25.7.2011, 22:43
Здравствуйте.

Есть индекс вида 
Код

CREATE UNIQUE INDEX index_account_groups_on_account_id_name ON account_groups(account_id, LOWER("name"))

Потом нужно восстановить описание этого индекса из системных таблиц.
Первую часть разобрался где искать, а вот LOWER("name") найти не получается. Подскажите в какой из таблиц искать эти данные.

Автор: solenko 26.7.2011, 07:59
вторую часть индекса можно получить вот таким вот запросом:
Код

SELECT
  i.indoption[1] AS options,
  CASE WHEN (o.opcdefault = FALSE) THEN
    pg_get_indexdef(i.indexrelid, 2, true) || ' ' || o.opcname
  ELSE
    pg_get_indexdef(i.indexrelid, 2, true)
  END AS coldef
FROM pg_index i
JOIN pg_attribute a ON (a.attrelid = i.indexrelid AND attnum = 2)
LEFT OUTER JOIN pg_opclass o ON (o.oid = i.indclass[1])
WHERE i.indexrelid = 16997::oid

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)