Adding NULL values and constraints (#10)
- NULL can now be used as a value.
- Specifying a `NOT NULL` constraint on table columns will ensure that
NULL values will not be added to the table. `NULL` can also be
explicitely provided to allow for `NULL`s.
- New expressions in the form of `X IS NULL` and `X IS NOT NULL` can be
used in both `SELECT` expressions and all `WHERE` clauses.
- A new SQLSTATE 23502 violates non-null constraint has been added.
As a consequence, also:
- TRUE, FALSE and UNKNOWN (boolean values) can now be used in
expressions.
- SELECT statements support multiple expressions (not just a single
value or `*`). However, the `*` is still not actually implemented.
- The version stored in the databse file will now start to increment
and be enforced for compatibility when opening a database.