addExistsExpression method

void addExistsExpression(
  1. ExistsExpression e
)

Implementation

void addExistsExpression(ExistsExpression e) {
  final outerHasMultipleTables = statement.hasMultipleTables;
  final outerIgnoreResultSet = _ignoreResultSet;
  // Inside this subquery, we want to reference columns with their table
  // to avoid ambiguities when an outer table is referenced.
  statement.hasMultipleTables = true;

  writeExpression(e, () {
    if (e.not) {
      statement.buffer.write('NOT ');
    }
    statement.buffer.write('EXISTS ');

    statement.buffer.write('(');
    _expressionPrecedence = null; // No longer an expression context
    _ignoreResultSet = true;
    e.select.compileWith(this);
    statement.buffer.write(')');
  });

  statement.hasMultipleTables = outerHasMultipleTables;
  _ignoreResultSet = outerIgnoreResultSet;
}