private WindowFrameSpec getWindowRange(RexWindow window) {
    // NOTE: in Hive AST Rows->Range(Physical) & Range -> Values (logical)
    BoundarySpec start = null;
    RexWindowBound lb = window.getLowerBound();
    if (lb != null) {
      start = getWindowBound(lb);
    }

    BoundarySpec end = null;
    RexWindowBound ub = window.getUpperBound();
    if (ub != null) {
      end = getWindowBound(ub);
    }

    return new WindowFrameSpec(window.isRows() ? WindowType.ROWS : WindowType.RANGE, start, end);
  }
TODO: Handle 1) cast 2), Windowing Agg Call
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/ExprNodeConverter.java