powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Странное поведение при большом количестве временных таблиц
6 сообщений из 6, страница 1 из 1
Странное поведение при большом количестве временных таблиц
    #38416428
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.
Насоздавал на днях в базе кучу временных таблиц, которые должны задействоваться в автоматически генерированных SQL-запросах (но пока задействовать не стал). Вот скрипты создания таких таблиц:
Код: sql
1.
2.
3.
4.
create global temporary table TMP_S_<N> (
  VAL varchar(256),
  constraint u_TMP_S_<N>_VAL unique (VAL)
) on commit delete rows


Код: sql
1.
2.
3.
4.
create global temporary table TMP_I_<N> (
  VAL varchar(256),
  constraint u_TMP_S_<N>_VAL unique (VAL)
) on commit delete rows


<N> - это число от 0 до 20

И начались следующие чудеса. После заполнения данных в совсем другие таблицы , коммитом и последующем вызове команды на обновление статистики индексов
Код: sql
1.
SET STATISTICS INDEX some_index


где (some_index - это индекс для другой не временной таблицы) выдаётся ошибка:

авторunsuccessful metadata update request depth exceeded. (Recursive definition?)

Ещё замечено, что при ещё одном подключении к базе при попытке выполнить обновление статистики любого индекса происходит эта же самая ошибка. Если первое подключение, которые заливало данные отвалится, то ошибка во втором подключении исчезает.

Куда вообще смотреть в этом случае? Может кто-то сталкивался с подобным?

PS: повторюсь, временные таблицы пока не задействованы . Они просто созданы, но пока не заполняются данными и не участвуют в запросах.
PPS: если убрать ограничение на уникальность знчения полей временных таблиц, то ошибка исчезает.
PPPS: Win7 x64, FB 2.5.2 26540 пробовал и 64- и 32-битный вариант
...
Рейтинг: 0 / 0
Странное поведение при большом количестве временных таблиц
    #38416506
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen,

если всё именно так как описано то это похоже на баг. Кстати почему проверяется именно контроль уникальности, а не первичный ключ? К временным таблицам постоянные не привязывались? По идее так делать нельзя и Влад это недавно правил.
...
Рейтинг: 0 / 0
Странное поведение при большом количестве временных таблиц
    #38416527
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen,

воспроизводимый пример, конечно же, уже в трекере ?
...
Рейтинг: 0 / 0
Странное поведение при большом количестве временных таблиц
    #38416571
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис , связей с другими таблицами не создавалось. Ограничения уникальности, а не первичный ключ сделано потому, что от первичного ключа нету смысла. Вообще подобные таблицы сделаны для того, чтобы избавится от таких вот запросов (условный пример):
Код: sql
1.
2.
3.
select t.col1 
from some_sable t
where t.col2 in ('value_1', 'value_2' ... 'value_n')


запросы автогенерированные и количество этих самых 'value_1', 'value_2' ... 'value_n' может переваливать за 1500, а firebird это уже не переваривает.

Планируется задействовать временные таблицы так (тоже условный пример):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
-- Заполняем временную таблицу
insert into tmp1(val) 
values('value_1')
values('value_2')
...
values('value_n')

-- Выполняем запрос
select t.col1 
from some_sable t
join tmp_s_0 tmp1 on tmp1.val = t.col2



Т.е. ограничение по уникальности сделано чисто для того, чтобы быть уверенным, что генератор SQL-запросов не ошибся и не вставил во временную таблицу 2 и более неуникальных значения.

hvlad , если бы было время, я бы так и сделал. К сожалению, пока завален работой :(
...
Рейтинг: 0 / 0
Странное поведение при большом количестве временных таблиц
    #38416627
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen hvlad , если бы было время, я бы так и сделал. К сожалению, пока завален работой :(Ну хотя бы на текущем снапшоте проверить можешь ?
...
Рейтинг: 0 / 0
Странное поведение при большом количестве временных таблиц
    #38416997
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Firebird-2.5.3.26709-0_x64 - полёт нормальный
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Странное поведение при большом количестве временных таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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