Никита Кит:
>> ERROR: permission denied for relation pg_namespace
Ошибка намекает на то, что у вашего пользователя user_crm нет прав даже на чтение таблички pg_namespace.
Получаем два выхода
1). Запрашиваем эту таблицу от юзера с более высокими привилегиями
2). Даем этому юзеру привилегии для этой таблицы https://www.postgresql.org/docs/9.4/static/sql-gra...
Провожу сеанс гадания по имени пользователя: у него прав смотреть на системную таблицу быть не должно:)
Триггер, объявленный FOR EACH ROW выполняется для каждой измененной строки, а дефолтная настройка FOR EACH STATEMENT выполняет триггер один раз для одного запроса.
То есть
insert into users ( name ) values ( 'Vasya'), ('Petya'), ('Masha')
Триггер FOR EACH ROW выполнится 3 раза, FOR EACH STATEMENT - один раз.
new - собственно значение, которое будет вставлено вместо того, которое было бы вставлено без триггера.
Вы читали www.postgresql.org/docs/current/static/sql-createt... ?
И это только открытые сейчас критикалы. В целом, баги в монге стали легендарными в индустрии. И это в базе данных, которая не терпит легковесного отношения к себе. Когда занимаешься целостностью данных смузи надо оставить в коворкинге. Если это не проблемы с надежностью, то сложно себе представить что такое проблемы с надежностью.
lega: Так раскройте нам секрет правильной настройки монги, так чтобы надежнее традиционных RDBMS. Будет полезно и нам и разработчики mysql/postgresql , уверен, с удовольствием почитают, они всегда рады узнать новые способы повышения надёжности.
vpuhoff: А, если нужна именно подстрока, тогда прошу прощения, не совсем очевидно это было. В таком случае повторюсь, нормальным решением было бы все-таки создать специализированный индекс ( и дропнуть его после запроса, если он так мешает)
vpuhoff: Если выгрузка одна, то сложно придумать что-то более продвинутое, чем select <что-надо> from <откуда надо> where <текстовый атрибут> in (<список из 1500>). При этом надо удостовериться, что ваша реализация не проходит постоянно линейно по списку из 1500 атрибутов, а хэширует их и проверяет попадание атрибутов из таблицы в хэш.
Если ( вдруг ) она этого не делает, то надо сделать hash join ( явный или неявный ) с этим списком.
Что-то
select <что-надо> from <откуда надо>
join
values ( <список из 1500>)
Также, возможно, временная таблица будет нагляднее
>> 512мб это много?!
Абсолютно. Гигабайты памяти отгрызают среды типа Gnome, KDE. А в более легких средах сложно себе представить зачем может понадобиться больше памяти для задач типа интернет/видео/музыка/работа с документами.