Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
Возникла проблемка: приложение создает временную таблицу с фиксированным именем. В другой паралельной сессии идет попытка создать такую же временную таблицу с тем же именем, и разумеется все падает. Задача - сделать так, чтобы каждая сессия создавала для себя, изолированную от других подключений, временную таблицу. В худшем случае можно давать таблицам уникальные имена (реализовать в данной конкретной задаче не просто), но есть ли решение покрасивше? Пытаюсь сейчас разобраться с временными схемами (pg_temp_nnn), в документации пока не нашел как с ними правильно работать (создавать), может кто подскажет? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 15:23 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
С какой ошибкой падает? Я считал, что временные таблицы видны внутри сессий и не могут пересекаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 15:46 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
С ошибкой, что таблица уже существует и нельзя ее создать :) Это ошибка приложения, а не СУБД, тут ничего не попишешь. Таблицы получаются нифига не изолированными, пометка CREATE LOCAL TEMP TABLE не спасает, поскольку все временные таблицы в PostgreSQL глобальные. Остается только либо для каждой сессии выдавать отдельное (временное) пространство имен, с которым не могу пока разобраться, либо таблицы создавать с уникальными именами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 16:08 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
ZashibisТаблицы получаются нифига не изолированными, пометка CREATE LOCAL TEMP TABLE не спасает, поскольку все временные таблицы в PostgreSQL глобальные. вы уверены, или я что-то не так понял тут Вы можете привести текст постгресовой ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 16:25 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
По указанной вами ссылке речь идет о создании временной таблицы внутри ХП, в моем же случае таблицы создаются обычным SQL-запросом, и получают глобальные имена. Можете сами попробвать, открыть две сессии psql, в первой сессии выполнить Код: plaintext 1. По поводу текста ошибки: программа пытается создать таблицу, перед этим делает проверку, существует ли такая таблица. Если существует - удаляет ее. В этот момент паралельный поток натыкается на то, что его таблицу кто-то грохнул, и ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 16:38 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, проблема обнаружена: просто помимо временной таблицы, существовала еще и постоянная, с таким же именем, что и вызывало все глюки. А временные таблицы сессий все-таки изолированы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 17:38 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
ZashibisИзвиняюсь, проблема обнаружена: просто помимо временной таблицы, существовала еще и постоянная, с таким же именем, что и вызывало все глюки. А временные таблицы сессий все-таки изолированы.А я предупреждал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 17:42 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
Тогда вопрос такой - как изолировать ХП. Временных ХП в PostgreSQL не существует, я так понял. (проект переносится из MS SQL Server) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 17:47 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
ZashibisТогда вопрос такой - как изолировать ХП. Временных ХП в PostgreSQL не существует, я так понял. (проект переносится из MS SQL Server)Что значит "изолировать ХП"? Давай подробнее проблему опиши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 17:52 |
|
||
|
Временные таблицы и сессии
|
|||
|---|---|---|---|
|
#18+
Собственно в приложении для различных нужд создаются временные ХП (в MS SQL Server они реально существуют). Эти хранимки создаются (разная начинка для разных задач но всегда с одни именем), выполняются, и тут же удаляются. Не спрашивайте меня зачем так сделано, логика авторов 1С 7.7 мне неподвластна :) Когда мы это дело переводим на PostgreSQL, то выясняется, что в паралельных потоках эти хранимки мешают друг другу, поскольку создаются как обычные, а не временные. Сейчас делаю так, чтобы к их именам подставлялась некая случайная строка (id коннекта), другого пути тут не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2008, 18:43 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35151767&tid=2004576]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 282ms |

| 0 / 0 |
