powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Временные таблицы и сессии
10 сообщений из 10, страница 1 из 1
Временные таблицы и сессии
    #35151751
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла проблемка:
приложение создает временную таблицу с фиксированным именем.
В другой паралельной сессии идет попытка создать такую же временную таблицу с тем же именем, и разумеется все падает.
Задача - сделать так, чтобы каждая сессия создавала для себя, изолированную от других подключений, временную таблицу.
В худшем случае можно давать таблицам уникальные имена (реализовать в данной конкретной задаче не просто), но есть ли решение покрасивше? Пытаюсь сейчас разобраться с временными схемами (pg_temp_nnn), в документации пока не нашел как с ними правильно работать (создавать), может кто подскажет?
Спасибо.
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151767
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С какой ошибкой падает? Я считал, что временные таблицы видны внутри сессий и не могут пересекаться.
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151774
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С ошибкой, что таблица уже существует и нельзя ее создать :)
Это ошибка приложения, а не СУБД, тут ничего не попишешь.
Таблицы получаются нифига не изолированными, пометка CREATE LOCAL TEMP TABLE не спасает, поскольку все временные таблицы в PostgreSQL глобальные.
Остается только либо для каждой сессии выдавать отдельное (временное) пространство имен, с которым не могу пока разобраться, либо таблицы создавать с уникальными именами.
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151786
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZashibisТаблицы получаются нифига не изолированными, пометка CREATE LOCAL TEMP TABLE не спасает, поскольку все временные таблицы в PostgreSQL глобальные.
вы уверены, или я что-то не так понял тут
Вы можете привести текст постгресовой ошибки?
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151795
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По указанной вами ссылке речь идет о создании временной таблицы внутри ХП, в моем же случае таблицы создаются обычным SQL-запросом, и получают глобальные имена.
Можете сами попробвать, открыть две сессии psql, в первой сессии выполнить
Код: plaintext
1.
CREATE TEMP TABLE temp(i int);
А во второй сессии сделать из нее выборку, и увидите, что таблица хоть и временная, но глобальная.
По поводу текста ошибки: программа пытается создать таблицу, перед этим делает проверку, существует ли такая таблица. Если существует - удаляет ее. В этот момент паралельный поток натыкается на то, что его таблицу кто-то грохнул, и ругается.
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151831
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, проблема обнаружена: просто помимо временной таблицы, существовала еще и постоянная, с таким же именем, что и вызывало все глюки.
А временные таблицы сессий все-таки изолированы.
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151833
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZashibisИзвиняюсь, проблема обнаружена: просто помимо временной таблицы, существовала еще и постоянная, с таким же именем, что и вызывало все глюки.
А временные таблицы сессий все-таки изолированы.А я предупреждал
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151836
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вопрос такой - как изолировать ХП.
Временных ХП в PostgreSQL не существует, я так понял.
(проект переносится из MS SQL Server)
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151839
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZashibisТогда вопрос такой - как изолировать ХП.
Временных ХП в PostgreSQL не существует, я так понял.
(проект переносится из MS SQL Server)Что значит "изолировать ХП"? Давай подробнее проблему опиши.
...
Рейтинг: 0 / 0
Временные таблицы и сессии
    #35151874
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно в приложении для различных нужд создаются временные ХП (в MS SQL Server они реально существуют). Эти хранимки создаются (разная начинка для разных задач но всегда с одни именем), выполняются, и тут же удаляются.
Не спрашивайте меня зачем так сделано, логика авторов 1С 7.7 мне неподвластна :)
Когда мы это дело переводим на PostgreSQL, то выясняется, что в паралельных потоках эти хранимки мешают друг другу, поскольку создаются как обычные, а не временные.
Сейчас делаю так, чтобы к их именам подставлялась некая случайная строка (id коннекта), другого пути тут не вижу.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Временные таблицы и сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]