getTableSchemeImpl method
FutureOr<TableScheme?>
getTableSchemeImpl(
- String table,
- TableRelationshipReference? relationship, {
- Object? contextID,
override
Implementation that returns a TableScheme for table.
contextIDshould be Expando compatible. It informs that other calls to getTableSchemeImpl are in the same context and could have shared internal caches for the samecontextIDinstance.
Implementation
@override
FutureOr<TableScheme?> getTableSchemeImpl(
String table,
TableRelationshipReference? relationship, {
Object? contextID,
}) => executeWithPool((connection) {
var columns = _tableInfo(connection, table);
if (columns.isEmpty) return null;
var idFieldName = _findIDField(table, columns);
var fieldsTypes = _fieldsTypes(columns);
notifyTableFieldTypes(table, fieldsTypes);
var fieldsReferencedTablesRet = _findFieldsReferencedTables(
connection,
table,
contextID: contextID,
);
return fieldsReferencedTablesRet.resolveMapped((fieldsReferencedTables) {
var relationshipTablesRet = _findRelationshipTables(
connection,
table,
contextID: contextID,
);
return relationshipTablesRet.resolveMapped((relationshipTables) {
var tableScheme = TableScheme(
table,
relationship: relationship != null,
idFieldName: idFieldName,
fieldsTypes: fieldsTypes,
fieldsReferencedTables: fieldsReferencedTables,
relationshipTables: relationshipTables,
);
_log.info('$tableScheme');
return tableScheme;
});
});
});