writeStartPart method

  1. @override
void writeStartPart(
  1. GenerationContext ctx
)
override

Subclasses must override this and write the part of the statement that comes before the where and limit expression..

Implementation

@override
void writeStartPart(GenerationContext ctx) {
  ctx.hasMultipleTables = true;
  ctx.buffer
    ..write(_beginOfSelect(distinct))
    ..write(' ');

  var first = true;
  for (final (column, name) in _columnsWithName(ctx.generatingForView)) {
    if (!first) {
      ctx.buffer.write(', ');
    }
    first = false;

    final chosenAliasEscaped = ctx.dialect.escape(name);
    column.writeInto(ctx);
    ctx.buffer
      ..write(' AS ')
      ..write(chosenAliasEscaped);
  }

  ctx.buffer.write(' FROM ');
  ctx.writeResultSet(table);

  if (_joins.isNotEmpty) {
    ctx.writeWhitespace();

    for (var i = 0; i < _joins.length; i++) {
      if (i != 0) ctx.writeWhitespace();

      _joins[i].writeInto(ctx);
    }
  }
}