Subject Re: [firebird-support] NULL and equality
Author Ivan Prenosil
> > Why? The "=" operator in an UPDATE statement
> > doesn't mean "equals", it means "becomes".
> >
> > Hence, FIELD <becomes operator> 5 or
> > FIELD <becomes operator> NULL
>
> The difference being that first you assign a value, and then a state.
>
> Now on the one hand, the SQL standard stresses that "state" and
> "value" are such different concepts that we really, really mustn't use
> the same equality operator for them (hence '=' for value comparison
> and 'is' for state comparison)...
>
> ...but when we're talking assignment, all of a sudden it's no problem
> to use the same operator to assign a value and a state. That's
> inconsistent.

Each field is in fact record (or struct, depending on your preferred language),
that consists of two individual fields: one for the value itself, one for null-indicator flag.
Assignment statement just assigns this whole record, not just its value part.
I really do not see any problem or inconsistency here.

Ivan