Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Определить вид сортировки для каждой колонки индекса / 4 сообщений из 4, страница 1 из 1
18.09.2015, 18:53
    #39055611
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить вид сортировки для каждой колонки индекса
Таким запросом получаю все колонки, по которым построен индекс:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
                                SELECT a.attname as column_name
                                     , i.relname as index_name
                                 FROM  pg_class t
                                     , pg_class i
                                     , pg_index ix
                                     , pg_attribute a
                                WHERE t.oid = ix.indrelid
                                  AND i.oid = ix.indexrelid
                                  AND a.attrelid = t.oid
                                  AND a.attnum = ANY(ix.indkey)
                                  AND i.relname = 'customers_composite_idx'
                                  AND t.relname = 'customers'



Как определить вид сортировки (asc/desc) каждой колонки?
...
Рейтинг: 0 / 0
18.09.2015, 22:34
    #39055731
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить вид сортировки для каждой колонки индекса
Вобще эту информацию можно получить из словаря БД?

ПС
Похоже, что PgAdmin III при генерации DDL индекса не обращает внимания на порядок сортировки отдельных колонок.
...
Рейтинг: 0 / 0
21.09.2015, 14:38
    #39057401
grufos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить вид сортировки для каждой колонки индекса
Максим Н,

вот здесь подробно рассказано где и как что лежит в системных таблицах касательно вашего вопроса.
http://stackoverflow.com/questions/18121103/how-to-get-the-index-column-orderasc-desc-nulls-first-from-postgresql

если кратко, то:
Код: sql
1.
CASE WHEN i.indoption[k-1] & 1 = 1 THEN 'DESC' ELSE 'ASC' END AS descasc


где, i это pg_catalog.pg_index, k - это unnest(pg_catalog.pg_index.indkey)
почитайте ссылку.
...
Рейтинг: 0 / 0
21.09.2015, 19:09
    #39057730
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить вид сортировки для каждой колонки индекса
grufos,

Спасибо!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Определить вид сортировки для каждой колонки индекса / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]