Страница 1 из 1

there are 1 dependencies

Добавлено: 25 июн 2007, 13:38
sydenis
В чём может быть проблема (FB2.0.1):
Есть таблица TAB1 с полем old_id, есть ХП PROC1 которая это поле юзает.
С клиента (fibplus) поочерёдно посылаем
drop procedure proc1;
commit;
alter table tab1 drop old_id;
commit;
первый комит проходит нормально, второй выдаёт:
This operation is not defined for system tables. unsuccessful metadata update. cannot delete.COLUMN OLD_ID. there are 1 dependencies.
Он не проходит даже после рестарта FB. Если посмотреть зависимости через IBE, то он указывает как раз на несуществующую PROC1...
Можно конечно пробовать вручную чистить системные таблицы, но наверно это не здорово. Спасает тока b/r.
Надо сказать, что перед этим в базе идёт большое измение метаданных, но TAB1 оно не касается - она только создаётся.

Добавлено: 25 июн 2007, 15:57
WildSery
Чего-то ты недоговариваешь.
Если сделать не дроп, а скажем, альтер пустым телом, зависимости остаются?

Добавлено: 25 июн 2007, 17:01
Merlin
Была такая бага на IB4, не всегда, требовался какой-то дополнителный эффект. Мож зацепили чего.

Добавлено: 25 июн 2007, 18:41
sydenis
в общем-то сейчас это не сильно напрягает - просто странно...
а насчёт "недоговариваешь" - дык скажи об чём - я договорю :))
"альтер пустым телом" - как дожен выглядеть?

вот нашёл в RDB$DEPENDENCIES запись
RDB$DEPENDENT_NAME = 'PROC1',
RDB$DEPENDED_ON_NAME = 'TAB1',
RDB$FIELD_NAME = 'OLD_ID',
хотя proc1 давно в базе нет

если её вручную потереть - большие грабли не всплывут?

Добавлено: 25 июн 2007, 18:47
Merlin
Если в том, что её нет, уверен апаслютна (а не глядишь в разных окнах иксперта в разные базы, например), то никаких.

Добавлено: 25 июн 2007, 21:54
sydenis
дело, видимо, в клиенте (который fibplus).
Попробовал после удаления процедуры переоткрыть БД
db.Close;
db.Open;
и стало всё проходить нормально, хотя раньше old_id не удавалось удалить даже много позже, после рестарта FB или из другого клиента (IBE)..
такая вот удивительная история...