withMultiple method

  1. @override
QueryBuilder withMultiple(
  1. Map<String, QueryBuilder> ctes, {
  2. Map<String, List<String>>? columnsMap,
})
inherited

Implementation

@override
QueryBuilder withMultiple(Map<String, QueryBuilder> ctes,
    {Map<String, List<String>>? columnsMap}) {
  if (ctes.isEmpty) {
    throw InvalidArgumentException('CTEs map cannot be empty');
  }

  for (String name in ctes.keys) {
    SqlIdentifierEscaper.validateIdentifier(name, context: 'CTE name');
    if (_cteNames.contains(name.toLowerCase())) {
      throw DuplicateCteNameException(name);
    }
  }

  for (var entry in ctes.entries) {
    List<String>? columns = columnsMap?[entry.key];
    _addCteDefinition(entry.key, entry.value, columns: columns);
  }

  return this;
}