@Override
  public ScalarSubquery clone() {
    ScalarSubquery clone = new ScalarSubquery(this.parser, this.id);

    if (getType() != null) clone.setType(getType());
    if (getCommand() != null) clone.setCommand(getCommand().clone());

    return clone;
  }
  @Override
  public void visit(ScalarSubquery obj) {
    preVisitVisitor(obj);

    boolean test = deep;
    if (isTeiidVersionOrGreater(Version.TEIID_8_11))
      test = deep && (!obj.shouldEvaluate() || !skipEvaluatable);

    if (test) {
      visitNode(obj.getCommand());
    }
    postVisitVisitor(obj);
  }