Subject Re: [Firebird-Architect] Change NULL / NOT NULL
Author Alexander peshkoff
On Thursday 07 May 2009 19:56:07 Adriano dos Santos Fernandes wrote:
> Alexander peshkoff escreveu:
> > On Thursday 07 May 2009 19:37:29 Adriano dos Santos Fernandes wrote:
> >> All,
> >>
> >> As we should prevent users from doing direct (and unsafe) system table
> >> updates, I propose (hoping to be in v2.5) creation of DDL command to
> >> change [NOT] NULL field constraint.
> >>
> >> The syntax would be:
> >> alter table <table> alter <field> not null;
> >> alter table <table> alter <field> null;
> >>
> >> It's semantics would be:
> >> When putting "NOT NULL", in DFW (commit time) the table is locked
> >> and a BLR dynamic query is constructed to inspect for NULL values. If
> >> there are, we throw an error.
> >
> > Good suggestion, but not for 2.5 - it's feature-closed after beta1.
>
> We may consider absence of this command a bug. :-D

:-)
Getting serious - this is new feature...

> > Ideally we should prepare a list of other tasks, that currently require
> > direct system tables updates. And may be implement them all together, and
> > after it disable such updates.
>
> I do not know any other well used... So I want it in v2.5 to declare
> this practice deprecated and disable it in 3.0. It then would only be
> allowed in restore, for obviously reasons.

Once again - I agree that it's good suggestion, but not for 2.5.

> In packages commands, I completely ignored fact that user may change
> system tables. It just works different, so it's much more simple to
> implement and maintain. If that would not be true, at least some
> non-system updates involving packages would need to be blocked.

Certainly, they should be blocked when we deal with new features. But please
agree that packages have also nothing to do with 2.5.