172 похожих чатов

Всем привет) Может кто подсказать, как можно создать индексы на

партиционируемой таблице (конкурентно) не зная имен партиций?
Т.е. партиции живут своей жизнь, бизнес логика иногда создает новые, старые удаляет. Из-за этого не получится сделать миграцию, где я пропишу партиции по конкретным именам для создания индекса сначала конкурентно на них а потом на мастер таблице.
А создавать индекс не конкурентно на всей таблице не хочется из-за локов в проде(

5 ответов

33 просмотра

почему не по всем? какая в этом логика? и причем тут логи на проде?

Ilia-Pisanyi🐳 Автор вопроса
Alexey Bulgakov
почему не по всем? какая в этом логика? и причем т...

Нужны на всех партициях. Не логи а локи, исправил) Думал сделать в функции plpgsql но они транзакционные и конкурентно создавать индексы не получится. Цель - создать индексы на всех партициях не зная их имен конкурентно

Ilia Pisanyi🐳
Нужны на всех партициях. Не логи а локи, исправил)...

не надо знать их имена. можно найти имена всех партиций и динамически сформировать create index

Ilia-Pisanyi🐳 Автор вопроса
Alexey Bulgakov
не надо знать их имена. можно найти имена всех пар...

Не понял как. Найти имена всех партиций через pg_inherits? Для этого нужна функция а она транзакционная. Другого способа я не знаю(

Ilia Pisanyi🐳
Не понял как. Найти имена всех партиций через pg_i...

у меня сделано так... CREATE OR REPLACE VIEW ibt_processing.v_partitions AS SELECT tbl.sch_name, tbl.tbl_name, tbl.borders[1]::timestamp with time zone AS range1, tbl.borders[2]::timestamp with time zone AS range2 FROM ( SELECT pt.sch_name, pt.tbl_name, regexp_match(pg_get_expr(c1.relpartbound, c1.oid), 'FOR VALUES FROM \(''(\d\d\d\d-\d\d-\d\d.*)''\) '::text || 'TO \(''(\d\d\d\d-\d\d-\d\d.*)''\)'::text) AS borders FROM ibt_processing.part_tables pt JOIN pg_class c2 ON pt.tbl_name::text = c2.relname AND c2.relkind = 'p'::"char" JOIN pg_inherits i ON c2.oid = i.inhparent JOIN pg_class c1 ON i.inhrelid = c1.oid AND c1.relpartbound IS NOT NULL JOIN pg_namespace n ON c1.relnamespace = n.oid AND pt.sch_name::text = n.nspname) tbl;

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта