addCreateViewStatement method

void addCreateViewStatement(
  1. CreateViewStatement create
)

Implementation

void addCreateViewStatement(CreateViewStatement create) {
  final view = create.entity;
  if (view.sqlDefinition case final sql?) {
    sql.compileWith(this);
  } else {
    _generatingCreateView = create.entity;
    statement.supportsVariables = false;
    statement.buffer.write('CREATE VIEW ');
    if (create.ifNotExists) {
      statement.buffer.write('IF NOT EXISTS ');
    }

    addReference(view.aliasOrName);
    statement.buffer.write('(');

    for (final (i, column) in view.columns.indexed) {
      if (i != 0) statement.comma();

      addReference(column.name);
    }

    statement.buffer.write(') AS ');
    view.query!.compileWith(this);
  }
}