Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
11.10.2019, 12:30
|
|||
---|---|---|---|
|
|||
Какой-то глюк psql вместо одной строки выводит все больше и больше с каждым разом. |
|||
#18+
Всем привет. Есть скрипт. Скрипт создает временные таблицы (on commit drop), затем на основе этих таблиц и постоянных таблиц возвращает выборку. Если этот же скрипт выполнить в pg_admin он возвращает 1 строку. Если этот скрипт выполнить в psql он выозвращает сначала 9 потом 16 строк, и с каждым разом строк все больше и больше. Причем не важно из-под Linux запускаю psql или из-под Win. Результат с каждым разом все больше и больше. При этом в pg_admin все как надо - всегда одна строка. В чем может быть причина этого глюка и как от него избавиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.10.2019, 13:36
|
|||
---|---|---|---|
|
|||
Какой-то глюк psql вместо одной строки выводит все больше и больше с каждым разом. |
|||
#18+
Тааааак. Похоже какие-то проблемы с темповыми таблицами. Такое впечатление что рни не дропаются при отключении. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.10.2019, 13:41
|
|||
---|---|---|---|
|
|||
Какой-то глюк psql вместо одной строки выводит все больше и больше с каждым разом. |
|||
#18+
Короче, из одной консоли запускаю скрипт. Он выводил кучу значений. А когда из другой консоли создал и дропнул такие же таблицы, только не темповые, а постоянные, из первой консоле при выполнении того же скрипта не находит эти же временные таблицы!!!! Т.е. один и тот же скрипт дает разный результат, если в другой сессии создать и дропнуть таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.10.2019, 13:57
|
|||
---|---|---|---|
|
|||
Какой-то глюк psql вместо одной строки выводит все больше и больше с каждым разом. |
|||
#18+
Итак, вот этот скрипт: Код: sql 1.
В pg_admin выполняется нормально. Возвращает 1. В psql через параметр -c выполняется нормально. Код: sql 1. 2. 3.
Возвращает 1. НО !!!!!!! Если запустить его из файла, через -f Предварительно создав файл: Код: sql 1.
Получается вот такая штуковина: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.10.2019, 13:57
|
|||
---|---|---|---|
|
|||
Какой-то глюк psql вместо одной строки выводит все больше и больше с каждым разом. |
|||
#18+
почему так? о_О ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.10.2019, 14:01
|
|||
---|---|---|---|
|
|||
Какой-то глюк psql вместо одной строки выводит все больше и больше с каждым разом. |
|||
#18+
Видно же, что в одном случае вся пачка выполняется в одной транзакции, в другом - нет. Беглое гугление выдает: https://postgrespro.ru/docs/postgresql/9.6/app-psql Каждая строка SQL-команд, заданная ключом -c, передаётся на сервер как один запрос. Поэтому сервер выполняет её в одной транзакции, даже когда эта строка содержит несколько команд SQL, если только в ней не содержатся явные команды BEGIN/COMMIT, разделяющие её на несколько транзакций ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.10.2019, 14:14
|
|||
---|---|---|---|
|
|||
Какой-то глюк psql вместо одной строки выводит все больше и больше с каждым разом. |
|||
#18+
Alexander A. SakВидно же, что в одном случае вся пачка выполняется в одной транзакции, в другом - нет. Беглое гугление выдает: https://postgrespro.ru/docs/postgresql/9.6/app-psql Каждая строка SQL-команд, заданная ключом -c, передаётся на сервер как один запрос. Поэтому сервер выполняет её в одной транзакции, даже когда эта строка содержит несколько команд SQL, если только в ней не содержатся явные команды BEGIN/COMMIT, разделяющие её на несколько транзакций Спасибо! Вы абсолютно правы! ГазМяс - чемпион! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=1995009]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 145ms |
0 / 0 |