isColumnRequiredForInsert method

bool isColumnRequiredForInsert(
  1. MoorColumn column
)

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;
}