addFromResultSet method

void addFromResultSet(
  1. FromResultSet resultSet, {
  2. bool isWatching = true,
  3. UpdateKind? write,
})

Implementation

void addFromResultSet(
  FromResultSet resultSet, {
  bool isWatching = true,
  UpdateKind? write,
}) {
  final resolved = resultSet.resultSet;
  if (resolved case final SqlComponent component) {
    component.compileWith(this);
  } else {
    if (isWatching) {
      if (resultSet.resultSet case final SchemaEntityWithResultSet entity) {
        statement.watchedTables.add(entity);
      }
    }
    if (write != null && resolved is GeneratedTable) {
      statement.isReadOnly = false;
      statement.possibleUpdates.add(
        TableUpdate.onTable(resolved, kind: write),
      );
    }

    addReference(resultSet.resultSet.entityName);
  }

  if (resultSet.resultSet.alias case final alias?) {
    statement.buffer.write(' AS ');
    addReference(alias);
  }
}