
Terminator
19.09.2018
06:10:22
@vkuptcov будет жить. Поприветствуем!
@yanchumak будет жить. Поприветствуем!

Yaroslav
19.09.2018
06:17:24

DiJey (Pavel)
19.09.2018
06:22:07

Google

DiJey (Pavel)
19.09.2018
06:22:50
из под рута если ;)

Yaroslav
19.09.2018
06:23:01

DiJey (Pavel)
19.09.2018
06:24:11

Yaroslav
19.09.2018
06:25:02

DiJey (Pavel)
19.09.2018
06:26:22
Уже не помню, но мне БД нельзя было останавливать и было нужно достаточно срочно.

Yaroslav
19.09.2018
06:28:48

DiJey (Pavel)
19.09.2018
06:30:04
Мне нужно было файл лога пересоздать, после релоад он почему то не пересоздавался, видимо думал что еще пишет в тот же.

Сагындык
19.09.2018
06:32:50

Yaroslav
19.09.2018
06:41:42

DiJey (Pavel)
19.09.2018
06:42:35
Тем не менее пересоздался, менял настройки логирования.

Yaroslav
19.09.2018
06:47:56
Тем не менее пересоздался, менял настройки логирования.
Вы документацию и исходники, которые я цитировал, видели? ;)
Т.е., если у Вас "pg_ctl reload" и pg_reload_conf работают не одинаково, то либо не получилось послать сигнал postmaster-у (permissions?), либо Вы сделали "pg_ctl reload" не тому кластеру, например.

X
19.09.2018
08:58:38
Привет! вопросик следующий надо сделать табличку и у строк должен быть родитель, и вложенность может быть любая, первое что пришло в голову это таблица с колонкой родителя, если родитель наивысший - нул, если нет - указываем в колонке айди строки и искать по таблице рекурсивно. Есть ли какие еще идеи по реализации. Спасибо!

Google

Andrey
19.09.2018
09:01:20

Vladimir
19.09.2018
09:01:26
id-parentId типичный вариант, который часто применяется для таких задач. Стоит еще рассмотреть Nested sets и его вариации с прекалькулироваными значениями. В качестве отправной точки https://en.wikipedia.org/wiki/Nested_set_model

X
19.09.2018
09:01:45

Terminator
19.09.2018
09:49:38
@blacky0x0 будет жить. Поприветствуем!

Alexandr
19.09.2018
10:15:02
Привет. Есть таблица Calendar у которой есть ссылки на таблицы Employee и Company(поля соответсвенно называются employeeId и companyId одно из значений всегда null). Как сделать на уровне базы данных, что бы нельзя было создать записи в таблицы календарь где (пример companyId = 2 и employeeId = null 2) существуют 2 раза

Daniil
19.09.2018
10:20:02
то есть где две записи с одинаковыми companyId и employeeId ?

Mike Chuguniy
19.09.2018
10:20:18

Yaroslav
19.09.2018
10:20:36


elfiki
19.09.2018
10:53:24
пацаны, короче задача есть
есть две таблицы
связаны многое (табл1) к одному (табл2)
вот нужно при инсерте в табл1, если нет данных в табл2, то создавать их, а если есть, то ничего не делать.
кроме триггеров можно как-то по-простому это делать?

Terminator
19.09.2018
10:53:51
@justvit будет жить. Поприветствуем!

Alexandr
19.09.2018
11:01:55
Вопрос только я сделал без этой части UNIQUE (empl_id, company_id))
Это же я так понимаю никак не повлияет?

Yaroslav
19.09.2018
11:02:58
кроме триггеров можно как-то по-простому это делать?
Конечно, нет — либо триггеры, либо вручную.
(Да, если кто-то вспомнит про RULES — их очень не советуют, и не без причины.)
Кстати, а как это у Вас так получается, что в любой вставке в табл1 есть вся информация для новой записи в табл2? ;)
Это же я так понимаю никак не повлияет?
Да я же вопрос задавал. ;)
А почему не просто:
CREATE TABLE Calendar(empl_id int UNIQUE, company_id int UNIQUE, CHECK (num_nulls(empl_id, company_id) = 1));
В таком случае? Что тут не так, как Вы хотели?

elfiki
19.09.2018
11:06:18

Yaroslav
19.09.2018
11:08:05

Google

elfiki
19.09.2018
11:08:25

Alexandr
19.09.2018
11:09:12

Yaroslav
19.09.2018
11:13:19


Леонид
19.09.2018
11:14:06
Народ есть вопрос по постгре, никак ничего понять не могу, правильно ли запрос написал.
В ней таблица estate_properties с домами, которые имеют номер улицы, название улицы итд.
Из всего этого работает full text search который по строке адреса находит несколько нужных домов.
Но тут есть другая таблица user_properties, куда юзер загрузил данные и там только колонка, которая содержит полный или нет адрес.
Нужно сделать апдейт для каждой колонки в user_properties и вставить туда id из таблицы estate_properties который будет найден по full text search.
Пробовал такой вариант и он отрабатывает 30 минут, хотя в таблице user_properties только 81 строка.
UPDATE import_user_properties AS iup
SET estate_hash = ep.estate_hash
FROM estate_properties AS ep
WHERE ep.address_fts @@ plainto_tsquery('english', iup.address)
AND iup.estate_hash is null
AND iup.address is not null
AND NOT EXISTS (SELECT 1 FROM import_user_properties WHERE estate_hash = ep.estate_hash);
Может есть какойнить правильный способ апдейтить таблицу из выборки другой таблицы


Yaroslav
19.09.2018
11:16:36
Народ есть вопрос по постгре, никак ничего понять не могу, правильно ли запрос написал.
В ней таблица estate_properties с домами, которые имеют номер улицы, название улицы итд.
Из всего этого работает full text search который по строке адреса находит несколько нужных домов.
Но тут есть другая таблица user_properties, куда юзер загрузил данные и там только колонка, которая содержит полный или нет адрес.
Нужно сделать апдейт для каждой колонки в user_properties и вставить туда id из таблицы estate_properties который будет найден по full text search.
Пробовал такой вариант и он отрабатывает 30 минут, хотя в таблице user_properties только 81 строка.
UPDATE import_user_properties AS iup
SET estate_hash = ep.estate_hash
FROM estate_properties AS ep
WHERE ep.address_fts @@ plainto_tsquery('english', iup.address)
AND iup.estate_hash is null
AND iup.address is not null
AND NOT EXISTS (SELECT 1 FROM import_user_properties WHERE estate_hash = ep.estate_hash);
C виду, Вы сделали CROSS JOIN import_user_properties и estate_properties, так что неудивительно.
По крайней мере, я не вижу между ними связи в запросе...


Леонид
19.09.2018
11:17:20
объясните плес)

Yaroslav
19.09.2018
11:18:25
объясните плес)
А что тут объяснять? Вы попробуйте аналогичный SELECT, сколько записей получится?

Леонид
19.09.2018
11:20:26
а хотя их и джойнить нечем

Vitaly
19.09.2018
11:26:04
Коллеги, привет. Подскажите, кто-то пробовал перенести tablespace в новую БД ?

Yaroslav
19.09.2018
11:26:21
а хотя их и джойнить нечем
Вот я именно об этом. :)
> хотя в таблице user_properties только 81 строка
Значит, и аналогичный SELECT должен возвращать не более 81 строки (иначе UPDATE будет работать "как повезёт").

Леонид
19.09.2018
11:28:28

Yaroslav
19.09.2018
11:31:03

Леонид
19.09.2018
11:31:24

Terminator
19.09.2018
11:31:43
@select_username будет жить. Поприветствуем!

Леонид
19.09.2018
11:39:59
запрос свалился на 300 секунд

Google

Леонид
19.09.2018
11:40:15
и умер
там проблема еще, что в таблице estate_properties около 121 млн записей

Alexander
19.09.2018
11:45:02

Yaroslav
19.09.2018
11:45:07
и умер
Что такое "умер"?
И, кстати, у Вас там LIMIT без ORDER BY — Вы уверены, что это нормально, т.е. под условия всегда подходит одна запись?
> там проблема еще, что в таблице estate_properties около 121 млн записей
Ну а индекс есть соотвествующий? Вы план запроса смотрели?

Леонид
19.09.2018
11:48:02

Yaroslav
19.09.2018
11:48:59

Леонид
19.09.2018
11:50:14
по какой колонке, ато я понять не могу

Yaroslav
19.09.2018
11:51:46

Леонид
19.09.2018
11:51:57

Yaroslav
19.09.2018
11:51:58

Леонид
19.09.2018
11:52:01
сек

Yaroslav
19.09.2018
11:53:23
любой)))
То есть Вас устраивает, что, например, каждое выполнение этого запроса будет давать разные результаты? ;)
Дело Ваше, конечно...

Леонид
19.09.2018
11:53:50
кстати может дело в postgre сервере, пытаюсь что-то выполнить и он возвращает ошибку
через раз
1 раз выполнит какойнить SELECT а другой уже нет и пишет эту ошибку. Но само приложение, которое работает онлайн сейчас работает стабильно

Google

Леонид
19.09.2018
11:59:05
может это интернет у меня не очень

Vitaly
19.09.2018
12:03:27
А в чём вопрос?
Вопрос — возможно ли это? Насколько трудно? Стандартных утилит для этого нет, насколько я понимаю?

Valery
19.09.2018
12:03:28
Парни, подскажите пожалуйста, при использовании pg_pathman, когда выполняем слияние партиций (merge_range_partitions), будут ли блокировки?

Yaroslav
19.09.2018
12:03:30

Леонид
19.09.2018
12:04:34

Valery
19.09.2018
12:04:54

Alexander
19.09.2018
12:09:10

Vitaly
19.09.2018
12:12:01

Yukari
19.09.2018
12:14:02
Добавь тс, добавь туда файлы, перенеси данные в новую тс