Subject | Re: stuck |
---|---|
Author | Alexander V.Nevsky |
Post date | 2003-09-03T09:56:29Z |
--- In firebird-support@yahoogroups.com, Helen Borrie <helebor@t...>
wrote:
validity of _source_ BLR when altering and dropping procedures. No
questions about _destination_ BLR. Dependencies are stored in system
table specially assigned for this, IMHO engine can just clear
dependencies of source and create for destination. Perhaps this is
just my ignorance on internals. Thanks to FB developers, we at least
can now drop procedure which contain invalid calls of another ones,
but why can't directly alter to valid instance? BTW, if there is
dropped index mentioned in explicitly planned query within SP, we
still can' drop it and are forced to hack copying BLR of empty
procedure into invalid one to drop it. Seems illogical to me.
Best regards,
Alexander
PS - Seems I'm starting to get into the habit of unusal for me role of
disturber instead of conservator :))
wrote:
> This is a **relational** database. That means it has DEPENDENCIES.The
> SQL language - specifically, here, the DDL subset - has a lot ofstuff
> going on at the binary language level to protect dependencies -that's how
> a RDBMS works.a UDF
>
> A UDF declaration is a database object. When you (validly) declare
> to a database, it becomes a database object, with a dependencybetween the
> UDF object in the database and the library and entry point in thelocal
> system. As soon as a SP or constraint uses a UDF, a dependency iscreated
> between this UDF object and the SP or constraint. So, by the chainof
> dependencies, you make the SP or constraint dependent on thepresence of
> the external dynamically-linked object supplying the valid entryto the
> point. That's why FB has to stick its nose into UDFs when you refer
> object.Helen, to be honest, I too don't understand why engine checks
validity of _source_ BLR when altering and dropping procedures. No
questions about _destination_ BLR. Dependencies are stored in system
table specially assigned for this, IMHO engine can just clear
dependencies of source and create for destination. Perhaps this is
just my ignorance on internals. Thanks to FB developers, we at least
can now drop procedure which contain invalid calls of another ones,
but why can't directly alter to valid instance? BTW, if there is
dropped index mentioned in explicitly planned query within SP, we
still can' drop it and are forced to hack copying BLR of empty
procedure into invalid one to drop it. Seems illogical to me.
Best regards,
Alexander
PS - Seems I'm starting to get into the habit of unusal for me role of
disturber instead of conservator :))