Re: Partner index does not exist or is inactive.

2008-03-26 Пенетрантность Dmitri Kuzmenko


Hello, Dmitry!

Dmitriy A. Beloshistov wrote:


Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1


Так не делаю, потому как от мастеров не слышал, что это кошерно.



это как раз очень даше кошерно.


Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки превратились... 

 при наличии специальной конструкции ALTER INDEX стало кошерным?

системные таблицы - слишком общее понятие. какие-то апдейтить 
разумеется нельзя, а другие - очень даже можно.

например, rdb$functions, если надо поменять имя функции из dll или само
имя dll.
и rdb$indices в плане активации-деактивации индекса тоже можно.
особенно если база битая, например, в справочниках убилась часть 
записей, рестор не пройдет из-за нарушения FK.

Это в 2.1 (а может и в 2.0) сейчас FB при такой ошибке пропускает
индекс и активирует остальные.
А до этих версий рестор обламывался, и в базе оставались 
неактивированными х.з. сколько индексов, причем неизвестно, таких

же проблемных или нормальных.

Мне даже софтину пришлось написать для внутреннего использования,
которая ищет все неактивные индексы, и пытается поштучно активировать
именно через update, ибо тут alter index или update пофиг. главное
commit :-)

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




RE: Partner index does not exist or is inactive.

2008-03-26 Пенетрантность Dmitriy A. Beloshistov

Привет! 

 Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки 
 превратились... 
 при наличии специальной конструкции ALTER INDEX стало кошерным?

системные таблицы - слишком общее понятие. какие-то апдейтить разумеется 
нельзя, а другие - очень даже можно.

Ну это от безысходности ;) 

Мне даже софтину пришлось написать для внутреннего использования, которая 
ищет все неактивные индексы, и пытается 
поштучно активировать именно через update, ибо тут alter index или update 
пофиг. главное commit :-)

Да я в принципе не против (мне если честно пофиг - update или alter активирует 
индекс). Хорошо бы собрать и включить в дистрибутив какую-никакую доку о том, 
что можно апдейтить, что нельзя и какой эффект будет. Не думаю, что тут все 
прозрачно и нет никаких подводных камней. 

WBR,Dmitry Beloshistov AKA [-=BDS=-] 





Re: Partner index does not exist or is inactive.

2008-03-26 Пенетрантность Dmitri Kuzmenko


Hello, Dmitriy!

Dmitriy A. Beloshistov wrote:

Да я в принципе не против (мне если честно пофиг - update или alter активирует индекс). 

 Хорошо бы собрать и включить в дистрибутив какую-никакую доку о том,
что можно апдейтить, что нельзя и какой эффект будет. 
Не думаю, что тут все прозрачно и нет никаких подводных камней. 


нет, нельзя такое делать. В доке должно быть написано, что никогда и ни 
при каких условиях нельзя модифицировать системные таблицы напрямую.

Красными буквами, шрифтом 24, жирным.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Partner index does not exist or is inactive.

2008-03-26 Пенетрантность Taras Kucher


Dmitri Kuzmenko пишет:
нет, нельзя такое делать. В доке должно быть написано, что никогда и ни 
при каких условиях нельзя модифицировать системные таблицы напрямую.

Красными буквами, шрифтом 24, жирным.



А потом те, кто прочитал эту доку придут сюда. И их пипец настигнет, 
когда кто-то из гуру даст рекомендацию на модификацию системных 
таблиц... и пойдёт молва о дырах безопасности в огнептице.


З.Ы. вариант чисто гипотетический, так как доки мало кто сначала читает :D

С уважением,
Тарас Кучер



Re: Partner index does not exist or is inactive.

2008-03-26 Пенетрантность Oleg Matveyev

IMHO
õ FB, ËÁË Õ ÌÀÂÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ, ÅÓÔØ [ÍÉÎÉÍÕÍ] Ä×Á ÕÒÏ×ÎÑ ×ÌÁÄÅÎÉÑ

- ÄÌÑ ×ÓÅÈ (ÓÏÇÌÁÓÎÏ ÄÏËÉ)
- ÄÌÑ ÇÕÒÕ (ËÏÇÄÁ ÔÙ ÐÏÎÉÍÁÅÛØ/ÞÕ×ÓÔ×ÕÅÛØ/ÚÎÁÅÛØ ËÁË ÏÎÏ ÒÁÂÏÔÁÅÔ É ÞÅÍ 
ÇÒÏÚÉÔ)

ÐÏ ÄÏËÕÍÅÎÔÁÃÉÉ ÎÁ ÓËÒÉÐËÅ ÎÁÄÏ ÉÇÒÁÔØ ÓÍÙÞËÏÍ - ÔÏÞÎÏ ÐÏÌÕÞÉÛØ ÏÖÉÄÁÅÍÙÊ 
ÒÅÚÕÌØÔÁÔ
ÎÏ ÎÁÒÏÄ ÔÁËÏÅ ×ÙÄÅÌÙ×ÁÅÔ... 





Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Кузнецов Евгений
Доброго времени суток!

On 25 мар, 08:09, Taras Kucher  wrote:
 Может заодно кто-то подскажет как активировать все индексы? А то
 пришлось каждый по отдельности редактировать. А в IBExpert не нашел как
 это сделать автоматом :)

Можно попробовать создать скрипт с помощью запроса к системным
таблицам,
примерно такого (нуждается в проверке)

select 'ALTER INDEX ' || rdb$index_name || ' ACTIVE;' from rdb$indices
where rdb$system_flag is null
and rdb$foreign_key is null
and rdb$index_inactive = 1

С уважением, Евгений

Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность WildSery

On Tue, 25 Mar 2008 08:09:41 +0300, Taras Kucher [EMAIL PROTECTED] wrote:

 как активировать все индексы?

set term ^ ;
execute block as
   declare variable SQLCommand varchar(100);
   declare variable trigger_name varchar(32);
   declare variable trigger_inactive integer;
begin
   for select rtrim(t.rdb$trigger_name), t.rdb$trigger_inactive
 from rdb$triggers t
 where not exists (select 1 from rdb$check_constraints chk where 
t.rdb$trigger_name = chk.rdb$trigger_name) and
   ((t.rdb$system_flag != 1) or (t.rdb$system_flag is null))
 order by t.rdb$trigger_name
 into trigger_name, trigger_inactive
   do
 if (trigger_inactive = 1) then begin
   SQLCommand = 'ALTER TRIGGER ' || trigger_name || ' ACTIVE;';
   execute statement SQLCommand;
 end
end^
set term ; ^


-- 
Сергей Смирнов.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность WildSery

On Tue, 25 Mar 2008 10:58:24 +0300, WildSery wildsery-JGs/[EMAIL PROTECTED] 
wrote:


  if (trigger_inactive = 1) then begin

Можно сократить, включив в условие запроса.
Я упрощал из своей, у меня там ветвление условия активации есть...

-- 
Сергей Смирнов.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность WildSery

On Tue, 25 Mar 2008 11:50:49 +0300, Vlad Khorsun [EMAIL PROTECTED] wrote:

  :)))

Дааа. Понедельник прошёл тяжело.
  :'(
Извините.

-- 
Сергей Смирнов.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Vlad Khorsun



 как активировать все индексы?



   SQLCommand = 'ALTER TRIGGER ' || trigger_name || ' ACTIVE;';


   :)))

--
Хорсун Влад

PS обычно активируют в два прохода - сначала все не FK, потом только FK 





Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность WildSery

On Tue, 25 Mar 2008 11:50:49 +0300, Vlad Khorsun [EMAIL PROTECTED] wrote:

set term ^ ;
execute block as
declare variable SQLCommand varchar(100);
declare variable idx varchar(32);
begin
for select i.rdb$index_name
  from rdb$indices i
  where i.rdb$index_inactive = 1 and i.rdb$system_flag is null and 
i.rdb$foreign_key is null
  union all
  select i.rdb$index_name
  from rdb$indices i
  where i.rdb$index_inactive = 1 and i.rdb$system_flag is null and 
i.rdb$foreign_key is not null
  into idx
do begin
SQLCommand = 'ALTER INDEX ' || idx || ' ACTIVE;';
suspend;
end
end^
set term ; ^


-- 
Сергей Смирнов.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Ded


Vlad Khorsun wrote:

Возникает, когда пытаюсь связать таблицы отношением 1:1



   Нет такого отношения в SQL


   Ась? 8-O

--
Regards. Ded.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Vlad Khorsun


Ded ...


Vlad Khorsun wrote:

Возникает, когда пытаюсь связать таблицы отношением 1:1



   Нет такого отношения в SQL


   Ась? 8-O


CREATE RELATION BETWEEN T1 AND T2 AS 1:1 ??? 8-O

--
Хорсун Влад 





Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Ded


WildSery wrote:


execute block as


Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1
Commit

Дипломчик-то у тебя не красный часом? :-D

--
Regards. Ded.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Ded


Vlad Khorsun wrote:


   Нет такого отношения в SQL



   Ась? 8-O



CREATE RELATION BETWEEN T1 AND T2 AS 1:1 ??? 8-O


   Почём трава? Ей-богу хороша. Или это в FB3 такой синтаксис будет? 
:-D Мине как-то родней вот так


Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1

--
Regards. Ded.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Vlad Khorsun


Ded ...


Vlad Khorsun wrote:


   Нет такого отношения в SQL



   Ась? 8-O



CREATE RELATION BETWEEN T1 AND T2 AS 1:1 ??? 8-O


   Почём трава? Ей-богу хороша. Или это в FB3 такой синтаксис будет? :-D


   Если обещаешь перейти - в 2.0 введу :^)


Мине как-то родней вот так

Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1


   Выдыхай, бобёр (с) :) Где тут отношение 1:1 ? :)))

--
Хорсун Влад 





Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Boulitchev Aleksey



:-D Мине как-то родней вот так

Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1


они ведь сделают, правда? да?

Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 USING 
[index] T2_PK

--
Булычев Алексей
http://www.stella-npf.ru




Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Ded


Vlad Khorsun wrote:


Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1



   Выдыхай, бобёр (с) :) Где тут отношение 1:1 ? :)))


   Скажешь какое, если не 1:1 - выдохну :) Пока что вижу, что T2 может 
содержать ID только содержащийся в ПК Т1 и только один раз.


--
Regards. Ded.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Vlad Khorsun


Ded ...


Vlad Khorsun wrote:


Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1



   Выдыхай, бобёр (с) :) Где тут отношение 1:1 ? :)))


   Скажешь какое, если не 1:1 - выдохну :) Пока что вижу, что T2 может 
содержать ID только содержащийся в ПК Т1 и только один раз.


   Это уже не смешно. Я вижу constraint и вижу foreign key, но не вижу циферок.

--
Хорсун Влад

PS любую шутку можно довести до абсурда
PPS но не всегда это нужно делать 





Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Vlad Khorsun


Boulitchev Aleksey ...



:-D Мине как-то родней вот так

Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1


они ведь сделают, правда? да?

Alter Table T2 Add Constraint T2_PK Primary Key (ID)
Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 USING 
[index] T2_PK


   Ему пофигу, он на 1.5 навсегда застрял :)

--
Хорсун Влад 





Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Andrei Yeryomin
On 25 мар, 14:35, Ded wrote:

 Почём трава? Ей-богу хороша. Или это в FB3 такой синтаксис будет?
 :-D Мине как-то родней вот так

 Alter Table T2 Add Constraint T2_PK Primary Key (ID)
 Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1


0..1:1 наверное всё-таки будет.

--
Regards. Andrei Yeryomin.

Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность WildSery

On Tue, 25 Mar 2008 14:31:33 +0300, Ded [EMAIL PROTECTED] wrote:

 Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1

Так не делаю, потому как от мастеров не слышал, что это кошерно.

 Дипломчик-то у тебя не красный часом?

Ещё не решил, какой купить. Своего нету :)

-- 
Сергей Смирнов.



RE: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Dmitriy A. Beloshistov


 Дипломчик-то у тебя не красный часом?
Ещё не решил, какой купить. Своего нету :) 

Универа ?-))) 

WBR,Dmitry Beloshistov AKA [-=BDS=-] 


Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Ded


WildSery wrote:

Дипломчик-то у тебя не красный часом?



Ещё не решил, какой купить. Своего нету :)


   А говорил - дипломированный проктолог-иллюзионист, обманщик :-D

--
Regards. Ded.




Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Dmitri Kuzmenko


Hello, WildSery!

WildSery wrote:

Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1


Так не делаю, потому как от мастеров не слышал, что это кошерно.


это как раз очень даше кошерно.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Ded


Vlad Khorsun wrote:

PS любую шутку можно довести до абсурда
PPS но не всегда это нужно делать



   Затупил, прошу пардону :(

--
Regards. Ded.



RE: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Dmitriy A. Beloshistov

Привет. 

WildSery wrote:
Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1
 
 Так не делаю, потому как от мастеров не слышал, что это кошерно.

это как раз очень даше кошерно.

Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки 
превратились... при наличии специальной конструкции ALTER INDEX стало кошерным?

WBR,Dmitry Beloshistov AKA [-=BDS=-] 


Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Vlad Khorsun


Ded ...


Vlad Khorsun wrote:

PS любую шутку можно довести до абсурда
PPS но не всегда это нужно делать



   Затупил, прошу пардону :(


   А я уж начал в себе сомневаться, разволновался, панимаишь :)

--
Хорсун Влад 





Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность Ded


Dmitriy A. Beloshistov wrote:


Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки 
превратились... при наличии специальной конструкции ALTER INDEX стало кошерным?


В обычной жизни - ты прав. В аварийной ситуации базы, отресторенной без 
активирования индексов...


select count(*) from rdb$indices

  COUNT
===

   3241

Ломает, в общем. И именно в частном случае именно Alter Index, который 
именно это и только это и делает. Пока, во всяком случае. Но есть таки 
некоторые основания надеяться, что эта логика проживёт долго.


--
Regards. Ded.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность WildSery

On Tue, 25 Mar 2008 18:37:28 +0300, Ded [EMAIL PROTECTED] wrote:

 А говорил

А, этот Этот коричневый, конечно. С зелёными звёздами.

-- 
Сергей Смирнов.



Re: Partner index does not exist or is inactive.

2008-03-25 Пенетрантность DmitryLe

 Дипломчик-то у тебя не красный часом? :-D
А у тебя? :-))
Дмитрий

Partner index does not exist or is inactive.

2008-03-24 Пенетрантность Taras Kucher


Доброго времени суток.

Что значит сие выражение:
Unsuccessful execution caused by an unavailable resource.
Cannot create foreign key constraint . Partner index does not 
exist or is inactive.


Возникает, когда пытаюсь связать таблицы отношением 1:1
Индекс у внешней таблицы существует и активен.

FB v. 2.1.0.17735


С уважением,
Тарас Кучер




Re: Partner index does not exist or is inactive.

2008-03-24 Пенетрантность Vlad Khorsun


Taras Kucher ...


Доброго времени суток.

Что значит сие выражение:
Unsuccessful execution caused by an unavailable resource.
Cannot create foreign key constraint . Partner index does not exist or is 
inactive.


   Нет первичного\уникального ключа в главной таблице


Возникает, когда пытаюсь связать таблицы отношением 1:1


   Нет такого отношения в SQL


Индекс у внешней таблицы существует и активен.


   Чем докажешь ?

--
Хорсун Влад 





Re: Partner index does not exist or is inactive.

2008-03-24 Пенетрантность Taras Kucher


Vlad Khorsun пишет:



Индекс у внешней таблицы существует и активен.


   Чем докажешь ?


Каюсь - при ресторе поставил чек Деактивировать индексы. :)

Может заодно кто-то подскажет как активировать все индексы? А то 
пришлось каждый по отдельности редактировать. А в IBExpert не нашел как 
это сделать автоматом :)



С уважением,
Кучер Тарас