writeStartPart method
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);
}
}
}