function constructTree2(sortOrder1, sortOrder2) {
  var queryContext = new lf.query.SelectContext(db.getSchema());
  queryContext.from = [crossColumnTable];
  queryContext.where = crossColumnTable['boolean'].eq(false);
  queryContext.orderBy = [
    {
      column: crossColumnTable['string'],
      order: sortOrder1
    }, {
      column: crossColumnTable['number'],
      order: sortOrder2
    }
  ];

  var projectNode = new lf.proc.ProjectStep([], null);
  var orderByNode = new lf.proc.OrderByStep(queryContext.orderBy);
  var selectNode = new lf.proc.SelectStep(queryContext.where.getId());
  var tableAccessNode = new lf.proc.TableAccessFullStep(
      global, queryContext.from[0]);

  selectNode.addChild(tableAccessNode);
  orderByNode.addChild(selectNode);
  projectNode.addChild(orderByNode);

  return {
    queryContext: queryContext,
    root: projectNode
  };
}
Constructs a tree to be used for testing.
@param {!lf.Order} sortOrder1 The sort order for the 1st column.
@param {!lf.Order} sortOrder2 The sort order for the 2nd column.
@return {lf.testing.treeutil.Tree} The constructed tree and corresponding
    query context.