doInsertRelationshipSQL method
FutureOr
doInsertRelationshipSQL(
- String entityName,
- String table,
- SQL sql,
- Transaction transaction,
- DBSQLMemoryAdapterContext connection,
override
Implementation
@override
FutureOr doInsertRelationshipSQL(String entityName, String table, SQL sql,
Transaction transaction, DBSQLMemoryAdapterContext connection) {
if (sql.isDummy) return null;
var entry = _normalizeEntityJSON(
sql.namedParameters ?? sql.parametersByPlaceholder,
entityName: entityName,
table: table);
var map = _getTableMap(table, true, relationship: true)!;
var prevEntry =
map.entries.firstWhereOrNull((e) => isEqualsDeep(e.value, entry));
if (prevEntry != null) {
return prevEntry.key;
}
var id = nextID(table);
map[id] = entry;
for (var e in entry.entries) {
var field = e.key;
var value = e.value;
_indexAddEntry(table, id, field, value);
}
_onTablesModification();
return id;
}