Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ebd3fe2

Browse files
authored
Update TODO.md
1 parent c867aa7 commit ebd3fe2

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

‎functions/db_validation/TODO.md‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
1. Добавить проверку уникальных индексов, чтобы все колонки из индекса были с ограничением `NOT NULL`. Иначе ограничение уникальности не работает и нужно делать [по другому](https://github.com/rin-nas/postgresql-patterns-library/tree/master#%D0%BA%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9-%D1%83%D0%BD%D0%B8%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81-%D0%B3%D0%B4%D0%B5-%D0%BE%D0%B4%D0%BD%D0%BE-%D0%B8%D0%B7-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82-%D0%B1%D1%8B%D1%82%D1%8C-null).
3030
1. Добавить параметр для игнорирования индексов `indexes_ignore_regexp`. Пример: `^pgcompact_index_\d+$`.
3131
1. При обнаружении избыточных индексов рекомендовать удалять индексы с названием по маске `(_ccnew$|^pgcompact_index_\d+$)`, а не индексы с другими названиями
32-
1. B-деревья подходят для индексирования только скалярных данных. В массивах должен быть GIN индекс вместо btree.
32+
1. B-деревья подходят для индексирования только скалярных данных. Для массивов должен быть GIN индекс вместо btree.
3333
1. Добавить проверку на вероятно избыточный индекс, если для `field` есть `lower(field)`, `upper(field)`, `date(field)`. Рекомендовать удалить индекс на `field`!
3434
1. Обнаруживать (и рекомендовать удалять, а не выдавать ошибку) такие избыточные индексы:
3535
1. `CREATE UNIQUE INDEX ON paid_services.snapshot_package_limit USING btree (order_item_id, service_id, sort(uniq(zone_ids)))`
@@ -39,6 +39,12 @@
3939
1. CASCADE использовать в миграциях опасно.
4040
Удаление может рекурсивно пойти по FK и удалить существующие объекты БД и записи в таблицах.
4141
Рекомендовать выстроить цепочку удаления объектов в правильной последовательности.
42+
1. Валидатор даёт неправильную рекомендацию по удалению избыточного индекса. Нужно смотреть на связанные ограничения?
43+
```sql
44+
ERROR: Таблица public.preset__currency уже имеет индекс CREATE UNIQUE INDEX preset__currency_id_uindex ON public.preset__currency USING btree (id)
45+
Удалите избыточный индекс CREATE UNIQUE INDEX preset__currency_pk ON public.preset__currency USING btree (id)
46+
CONTEXT: PL/pgSQL function db_validation.schema_validate() line 109 at RAISE
47+
```
4248
1. Типы колонок
4349
1. 🚨 Вместо устаревшего `CHAR(n) / VARCHAR(n)` нужно использовать `TEXT` с ограничением, например: `check(length(col) between 0 and 100)`
4450
1. 🚨 Для текстовых колонок `TEXT` и `VARCHAR` без ограничения длины и с отсутствием ограничения `check(...)` необходимо делать ограничение с валидацией `check(length(col) between X and Y)`

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /