docs: protected Select getPageSelect(Select select) {
          SelectBody selectBody = select.getSelectBody();
          if (selectBody instanceof SetOperationList) {
              selectBody = wrapSetOperationList((SetOperationList) selectBody);
          }
          //这里的selectBody一定是PlainSelect
          if (((PlainSelect) selectBody).getTop() != null) {
              throw new PageException("被分页的语句已经包含了Top，不能再通过分页插件进行分页查询!");
          }
          //获取查询列
          List<SelectItem> selectItems = getSelectItems((PlainSelect) selectBody);
          //对一层的SQL增加ROW_NUMBER()
          List<SelectItem> autoItems = new ArrayList<SelectItem>();
          SelectItem orderByColumn = addRowNumber((PlainSelect) selectBody, autoItems);
          //加入自动生成列
          ((PlainSelect) selectBody).addSelectItems(autoItems.toArray(new SelectItem[autoItems.size()]));
          //处理子语句中的order by
          processSelectBody(selectBody, 0);
  
          //中层子查询
          PlainSelect innerSelectBody = new PlainSelect();
          //PAGE_ROW_NUMBER
          innerSelectBody.addSelectItems(orderByColumn);
          innerSelectBody.addSelectItems(selectItems.toArray(new SelectItem[selectItems.size()]));
          //将原始查询作为内层子查询
          SubSelect fromInnerItem = new SubSelect();
          fromInnerItem.setSelectBody(selectBody);
          fromInnerItem.setAlias(PAGE_TABLE_ALIAS);
          innerSelectBody.setFromItem(fromInnerItem);
  
          //新建一个select
          Select newSelect = new Select();
          PlainSelect newSelectBody = new PlainSelect();
          //设置top
          Top top = new Top();
          top.setExpression(new LongValue(Long.MAX_VALUE));
          newSelectBody.setTop(top);
          //设置order by
          List<OrderByElement> orderByElements = new ArrayList<OrderByElement>();
          OrderByElement orderByElement = new OrderByElement();
          orderByElement.setExpression(PAGE_ROW_NUMBER_COLUMN);
          orderByElements.add(orderByElement);
          newSelectBody.setOrderByElements(orderByElements);
          //设置where
          GreaterThan greaterThan = new GreaterThan();
          greaterThan.setLeftExpression(PAGE_ROW_NUMBER_COLUMN);
          greaterThan.setRightExpression(new LongValue(Long.MIN_VALUE));
          newSelectBody.setWhere(greaterThan);
          //设置selectItems
          newSelectBody.setSelectItems(selectItems);
          //设置fromIterm
          SubSelect fromItem = new SubSelect();
          fromItem.setSelectBody(innerSelectBody); //中层子查询
          fromItem.setAlias(PAGE_TABLE_ALIAS);
          newSelectBody.setFromItem(fromItem);
  
          newSelect.setSelectBody(newSelectBody);
          if (isNotEmptyList(select.getWithItemsList())) {
              newSelect.setWithItemsList(select.getWithItemsList());
          }
          return newSelect;
      }