renderPlan method
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';
}