isColumnRequiredForInsert method
Determines whether column
would be required for inserts performed via
companions.
Implementation
bool isColumnRequiredForInsert(MoorColumn column) {
assert(columns.contains(column));
if (column.defaultArgument != null ||
column.clientDefaultCode != null ||
column.nullable ||
column.isGenerated) {
// default value would be applied, so it's not required for inserts
return false;
}
// A column isn't required if it's an alias for the rowid, as explained
// at https://www.sqlite.org/lang_createtable.html#rowid
final isWithoutRowId = overrideWithoutRowId ?? false;
final fullPk = fullPrimaryKey;
final isAliasForRowId = !isWithoutRowId &&
column.type == ColumnType.integer &&
fullPk.length == 1 &&
fullPk.single == column;
return !isAliasForRowId;
}