anchor.diff:  class _OidCache {
     final _tableOIDNameMap = <int, String>{};
   
  -  Future _resolveOids(
  +  Future _resolveTableNames(
         PostgreSQLExecutionContext c, List<FieldDescription> columns) async {
       //todo (joeconwaystk): If this was a cached query, resolving is table oids is unnecessary.
       // It's not a significant impact here, but an area for optimization. This includes
  
positive.code: 
      final rows = await _enqueue(query, timeoutInSeconds: timeoutInSeconds);
      final columns = query.fieldDescriptions;
      await _connection._oidCache._resolveOids(this, columns);
      return _mapifyRows(rows, columns);
    }
  
  
negative.code: 
    List<Map<String, Map<String, dynamic>>> _mapifyRows(
        List<List<dynamic>> rows, List<FieldDescription> columns) {
      return rows.map((row) {
        final rowMap = <String, Map<String, dynamic>>{};
        columns.forEach((c) {
          rowMap.putIfAbsent(c.resolvedTableName, () => <String, dynamic>{});
        });
        for (int i = 0; i < columns.length; i++) {
          final col = columns[i];
          rowMap[col.resolvedTableName][col.fieldName] = row[i];
        }
        return rowMap;
      }).toList();
    }
  