code: protected QueryBuilder clear( boolean clearFirstQuery ) {
          source = new AllNodes();
          constraint = null;
          columns = new LinkedList<Column>();
          orderings = new LinkedList<Ordering>();
          limit = Limit.NONE;
          distinct = false;
          if (clearFirstQuery) {
              this.firstQuery = null;
              this.firstQuerySetOperation = null;
          }
          return this;
      }
docs: Utility method that does all the work of the clear, but with a flag that defines whether to clear the first query. This
  method is used by {@link #clear()} as well as the {@link #union() many} {@link #intersect() set} {@link #except()
  operations}.
  
  @param clearFirstQuery true if the first query should be cleared, or false if the first query should be retained
  @return this builder object, for convenience in method chaining