Subject Re: [Firebird-Architect] System Tables
Author Jim Starkey
Martijn Tonies wrote:

>Jim,
>
>One thing though --
>
>ONLY make the system tables a representation of the internal structures
>if ALL metadata changes can be done via normal DDL.
>
>For example, currently:
>
>- changing a column from NULLable to required -> system tables change
>- changing the default for a column -> system tables change
>- trying to modify a view -> either a long set of DDL systems or a system
> tables hack
>
>There's probably more, but these I found out to be safe.
>
>
>
We've talked about this in the past, but the best way to handle DDL
changes is through an UPGRADE (or CREATE OR ALTER) statement where a
single function performs the CREATE and UPGRADE operations. This
mechanism guarantees that anything that can be defined can be altered
(assuming, of course, that the alternation is itself legal). We would
continue, of course, to support ALTER in all of its legacy ugliness, but
UPGRADE would be the catch-all.