@Override public boolean isPreceding() { return SqlWindow.isUnboundedPreceding(node); }
@Override public boolean isPreceding() { return SqlWindow.isUnboundedPreceding(node); }
/** * Creates window bound. * @param node SqlNode of the bound * @param rexNode offset value when bound is not UNBOUNDED/CURRENT ROW * @return window bound */ public static RexWindowBound create(SqlNode node, RexNode rexNode) { if (SqlWindow.isUnboundedPreceding(node) || SqlWindow.isUnboundedFollowing(node)) { return new RexWindowBoundUnbounded(node); } if (SqlWindow.isCurrentRow(node)) { return new RexWindowBoundCurrentRow(); } return new RexWindowBoundBounded(rexNode); }
/** * Creates window bound. * @param node SqlNode of the bound * @param rexNode offset value when bound is not UNBOUNDED/CURRENT ROW * @return window bound */ public static RexWindowBound create(SqlNode node, RexNode rexNode) { if (SqlWindow.isUnboundedPreceding(node) || SqlWindow.isUnboundedFollowing(node)) { return new RexWindowBoundUnbounded(node); } if (SqlWindow.isCurrentRow(node)) { return new RexWindowBoundCurrentRow(); } return new RexWindowBoundBounded(rexNode); }
&& SqlWindow.isUnboundedPreceding(lowerBound) && (upperBound == null || SqlWindow.isCurrentRow(upperBound) || SqlWindow.isUnboundedFollowing(upperBound))) { isSupported = true; && SqlWindow.isUnboundedPreceding(lowerBound) && (upperBound == null || SqlWindow.isCurrentRow(upperBound))) { isSupported = true; && SqlWindow.isUnboundedPreceding(lowerBound) && SqlWindow.isUnboundedFollowing(upperBound)) { isSupported = true;
&& SqlWindow.isUnboundedPreceding(lowerBound) && (upperBound == null || SqlWindow.isCurrentRow(upperBound) || SqlWindow.isUnboundedFollowing(upperBound))) { isSupported = true; && SqlWindow.isUnboundedPreceding(lowerBound) && (upperBound == null || SqlWindow.isCurrentRow(upperBound))) { isSupported = true; && SqlWindow.isUnboundedPreceding(lowerBound) && SqlWindow.isUnboundedFollowing(upperBound)) { isSupported = true;