render method

  1. @override
String render(
  1. RenderContext context
)
override

Renders this clause to SQL text, recording any bind values on context.

context is the entire context a clause is given: use RenderContext.escapeName for identifiers and RenderContext.param for values.

Return an empty string to render nothing, which is how an optional clause (such as a WHERE with no filter) drops itself from the statement.

Implementation

@override
String render(RenderContext context) {
  final weights = query.clauses.keys.toList()..sort();
  final parts = <String>[];
  for (final weight in weights) {
    final rendered = query.clauses[weight]!.render(context);
    if (rendered.isNotEmpty) parts.add(rendered);
  }
  return parts.join(' ');
}