Subject Re: [Firebird-Architect] FB 2.0 Road Map
Author Jim Starkey
unordained wrote:

>Fabian Pascal has been more in favor of telling people to normalize their data to the point of
>never having a NULL anywhere in the base tables, but hasn't been great at explaining what this does
>to joins. Whereas Date and Darwen say that join operators should let you specify what value you
>would like in place of missing information (such as the '?' value above -- basically requiring you
>to use COALESCE everywhere),
>
Perhaps it's disappeared from common knowledge, but Interbase/Firebird
has always supported an in-band, user declared "missing value". The
missing value isn't stored and the first retains all characteristics of
null-osity, but an assignment to the field automatically compares the
new value to the missing value as sets it to null as approprirate. A
reference to the field will return both null-ness and the missing value.

I built the feature in the DSRI on the assumption that a) most
application programmers will screw up null flags and b) most fields have
a natural missing value (zero, minus one, or zero length). Even though
GDML has excellent support for nulls, most programmers preferred to
using missing value as more natural in host languages.

It's nice that the database gods have taken an interest, finally, but
the solution has been in the field since 1984.

--

Jim Starkey
Netfrastructure, Inc.
978 526-1376