clone method

  1. @override
QueryBuilderInterface<T> clone()
override

Clones the current query builder instance.

Implementation

@override
QueryBuilderInterface<T> clone() {
  final q =
      QueryBuilder<T>(connection, grammar, table, modelFactory: modelFactory);
  q._columns = List.from(_columns);
  q._wheres.addAll(_wheres.map((e) => Map<String, dynamic>.from(e)));
  q._orders.addAll(_orders.map((e) => Map<String, dynamic>.from(e)));
  q._limit = _limit;
  q._offset = _offset;
  q._distinct = _distinct;
  q._selectBindings.addAll(_selectBindings);
  q._fromBindings.addAll(_fromBindings);
  q._joinBindings.addAll(_joinBindings);
  q._whereBindings.addAll(_whereBindings);
  q._havingBindings.addAll(_havingBindings);
  q._joins.addAll(_joins.map((e) => Map<String, dynamic>.from(e)));
  q._groups.addAll(_groups);
  q._havings.addAll(_havings.map((e) => Map<String, dynamic>.from(e)));
  q._unions.addAll(_unions.map((e) => Map<String, dynamic>.from(e)));
  q._lock = _lock;
  q._with.addAll(_with);
  q._without.addAll(_without);
  q._withOnly.addAll(_withOnly);
  return q;
}