The current implementation is correct. According to the '92 std (remembering that the default default value of a column is null) the procedure for constructing a new row is (conceptually)
1. Construct a row containing the default value for
each column.
2. For each column value specified in the values
clause, replace the default value in the
corresponding column of the new row with the
specified value. There is no exception for a
specified value of null.
Regards

