query method

  1. @override
Future<Result> query(
  1. String tableName,
  2. String query,
  3. Map<String, dynamic> substitutionValues,
  4. {String returningQuery = '',
  5. List<String> returningFields = const []}
)

Run query.

Implementation

@override
Future<Result> query(
    String tableName, String query, Map<String, dynamic> substitutionValues,
    {String returningQuery = '', List<String> returningFields = const []}) {
  if (returningFields.isNotEmpty) {
    var fields = returningFields.join(', ');
    var returning = 'RETURNING $fields';
    query = '$query $returning';
  }

  //logger.fine('Query: $query');
  //logger.fine('Values: $substitutionValues');

  // Convert List into String
  var param = <String, dynamic>{};
  substitutionValues.forEach((key, value) {
    if (value is List) {
      param[key] = jsonEncode(value);
    } else {
      param[key] = value;
    }
  });

  return _pool.run<Result>((session) async {
    return await session.execute(Sql.named(query), parameters: param);
  });
}