getTableFieldsTypesImpl method
Implementation
@override
FutureOr<Map<String, Type>?> getTableFieldsTypesImpl(String table) async {
var connection = await catchFromPool();
try {
_log.info('getTableFieldsTypesImpl> $table');
var sql =
"SELECT column_name, data_type, column_default, is_updatable FROM information_schema.columns WHERE table_name = '$table'";
var results = await connection.mappedResultsQuery(sql);
var scheme = results.map((e) => e['']!).toList(growable: false);
await releaseIntoPool(connection);
if (scheme.isEmpty) return null;
var fieldsTypes = Map<String, Type>.fromEntries(scheme.map((e) {
var k = e['column_name'] as String;
var v = _toFieldType(e['data_type'] as String);
return MapEntry(k, v);
}));
return fieldsTypes;
} catch (_) {
await disposePoolElement(connection);
rethrow;
}
}