Subject Invalid database objects
Author Martijn Tonies
Hi all,

Someone (Hi Ann :-) told me that people were in for something more
adventurous than bugfixing if it comes down to the current FB code
status :)

Alright, I've talked about this before and would like some more ideas
about it and perhaps it's a nice addition to Firebird.

As probably know, modifying, for example, a view or table with dependent
views/procedures etc is a real pain. Whenever some piece of code is
dependant on another, it fails to modify and blah blah blah. Although
dependency tracking is nice and you actually know what is depending on
what, dropping or altering dependant objects before being able to alter
the first object is, well, rather cumbersome. I guess that people who
use procedures and views a lot know what I'm talking about.

I've worked with Oracle for a couple of years, and Oracle has, what I
think is really great, something as 'invalid database objects'.
Internally, it just seems to be a little flag saying 'hey, I'm not valid
- I cannot be used!'. The procedure/view/trigger/etc still exists, even
though it's, for example, underlying columns have been removed. It's
flagged 'invalid' and cannot be used as such. If you try to use it,
Oracle will try to re-compile the object but (in the case of a column
removal or something) fails and raises an exception.

It's easy to browse invalid objects and re-compile them or change them
if the need is there (obviously, there is :-)... It makes changing
objects very easy - and it's still pretty easy to keep track of the
things you did and what gets broken etc etc...

Comments anyone?

Martijn Tonies
InterBase Workbench - the developer tool for InterBase and Firebird

Upscene Productions

"This is an object-oriented system.
If we change anything, the users object."