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