function constructTree3() {
  var queryContext = new lf.query.SelectContext(hr.db.getSchema());
  queryContext.from = [e];
  queryContext.where = lf.op.and(
      e.salary.lte(200),
      e.id.gt('100'),
      e.salary.gte(100));

  var selectNode1 = createSelectStep(queryContext, 0);
  var selectNode2 = createSelectStep(queryContext, 1);
  var selectNode3 = createSelectStep(queryContext, 2);
  var tableAccessNode = new lf.proc.TableAccessFullStep(
      hr.db.getGlobal(), queryContext.from[0]);

  selectNode1.addChild(selectNode2);
  selectNode2.addChild(selectNode3);
  selectNode3.addChild(tableAccessNode);

  return {
    queryContext: queryContext,
    root: selectNode1
  };
}
@return {lf.testing.treeutil.Tree} The constructed tree and corresponding
    query context.