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