renderPlan method

String renderPlan(
  1. SchemaPlan plan
)

Renders plan to a single SQL text payload using statement previews.

Statements are separated by a blank line.

Implementation

String renderPlan(SchemaPlan plan) {
  final preview = _driver.describeSchemaPlan(plan);
  if (preview.statements.isEmpty) return '';

  final buffer = StringBuffer();
  for (final statement in preview.statements) {
    final sql = statement.sql.trim();
    if (sql.isEmpty) continue;
    if (statement.parameters.isNotEmpty) {
      buffer.writeln('-- parameters: ${_safeJson(statement.parameters)}');
    }
    buffer.writeln(sql);
    buffer.writeln();
  }
  return '${buffer.toString().trimRight()}\n';
}