The recently added schema framework enforces schema constraints at the table level. We now wish to add additional constraints at the column level.
- If a column is marked as "strict", then the reader will use the exact type and mode from the column schema, or fail if it is not possible to do so.
- If a column is marked as required, and provides a default value, then that value is used instead of 0 if a row is missing a value for that column.
This PR may also contain other fixes the the base functional revealed through additional testing.