addSubqueryExpression method

void addSubqueryExpression(
  1. SubqueryExpression<Object> e
)

Implementation

void addSubqueryExpression(SubqueryExpression e) {
  if (e.statement.structure.expressions.length != 1) {
    throw ArgumentError(
      'Error compiling subquery expression $e, inner query must have exactly one column.',
    );
  }

  // The subquery expression can reference outer columns as well, so we need
  // to make table aliases explicit.
  final hasMultipleTables = statement.hasMultipleTables;
  statement.hasMultipleTables = true;

  statement.buffer.write('(');
  e.statement.compileWith(this);
  statement.buffer.write(')');

  statement.hasMultipleTables = hasMultipleTables;
}