Subject Re: [Firebird-Architect] Change NULL / NOT NULL
Author Adriano dos Santos Fernandes
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

> 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.

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.


Adriano