withMultiple method
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;
}