private static PlanNode attachTupleLimit(PlanNode plan, Limit limit, PlanHints hints) { hints.hasLimit = true; PlanNode limitNode = NodeFactory.getNewNode(NodeConstants.Types.TUPLE_LIMIT); boolean attach = false; if (limit.getOffset() != null) { limitNode.setProperty(NodeConstants.Info.OFFSET_TUPLE_COUNT, limit.getOffset()); attach = true; } if (limit.getRowLimit() != null) { limitNode.setProperty(NodeConstants.Info.MAX_TUPLE_LIMIT, limit.getRowLimit()); attach = true; } if (attach) { if (limit.isImplicit()) { limitNode.setProperty(Info.IS_IMPLICIT_LIMIT, true); } if (!limit.isStrict()) { limitNode.setProperty(Info.IS_NON_STRICT, true); } attachLast(limitNode, plan); plan = limitNode; } return plan; }
private static PlanNode attachTupleLimit(PlanNode plan, Limit limit, PlanHints hints) { hints.hasLimit = true; PlanNode limitNode = NodeFactory.getNewNode(NodeConstants.Types.TUPLE_LIMIT); boolean attach = false; if (limit.getOffset() != null) { limitNode.setProperty(NodeConstants.Info.OFFSET_TUPLE_COUNT, limit.getOffset()); attach = true; } if (limit.getRowLimit() != null) { limitNode.setProperty(NodeConstants.Info.MAX_TUPLE_LIMIT, limit.getRowLimit()); attach = true; } if (attach) { if (limit.isImplicit()) { limitNode.setProperty(Info.IS_IMPLICIT_LIMIT, true); } if (!limit.isStrict()) { limitNode.setProperty(Info.IS_NON_STRICT, true); } attachLast(limitNode, plan); plan = limitNode; } return plan; }
private static PlanNode attachTupleLimit(PlanNode plan, Limit limit, PlanHints hints) { hints.hasLimit = true; PlanNode limitNode = NodeFactory.getNewNode(NodeConstants.Types.TUPLE_LIMIT); boolean attach = false; if (limit.getOffset() != null) { limitNode.setProperty(NodeConstants.Info.OFFSET_TUPLE_COUNT, limit.getOffset()); attach = true; } if (limit.getRowLimit() != null) { limitNode.setProperty(NodeConstants.Info.MAX_TUPLE_LIMIT, limit.getRowLimit()); attach = true; } if (attach) { if (limit.isImplicit()) { limitNode.setProperty(Info.IS_IMPLICIT_LIMIT, true); } if (!limit.isStrict()) { limitNode.setProperty(Info.IS_NON_STRICT, true); } attachLast(limitNode, plan); plan = limitNode; } return plan; }
@Override public void visit( Limit obj ) { if (!obj.isStrict()) { append(BEGIN_HINT); append(SPACE); append(Limit.NON_STRICT); append(SPACE); append(END_HINT); append(SPACE); } if (obj.getRowLimit() == null) { append(OFFSET); append(SPACE); visitNode(obj.getOffset()); append(SPACE); append(ROWS); return; } append(LIMIT); if (obj.getOffset() != null) { append(SPACE); visitNode(obj.getOffset()); append(","); //$NON-NLS-1$ } append(SPACE); visitNode(obj.getRowLimit()); }
@Override public void visit( Limit obj ) { if (!obj.isStrict()) { append(BEGIN_HINT); append(SPACE); append(Limit.NON_STRICT); append(SPACE); append(END_HINT); append(SPACE); } if (obj.getRowLimit() == null) { append(OFFSET); append(SPACE); visitNode(obj.getOffset()); append(SPACE); append(ROWS); return; } append(LIMIT); if (obj.getOffset() != null) { append(SPACE); visitNode(obj.getOffset()); append(","); //$NON-NLS-1$ } append(SPACE); visitNode(obj.getRowLimit()); }
@Override public void visit( Limit obj ) { if (!obj.isStrict()) { append(BEGIN_HINT); append(SPACE); append(Limit.NON_STRICT); append(SPACE); append(END_HINT); append(SPACE); } if (obj.getRowLimit() == null) { append(OFFSET); append(SPACE); visitNode(obj.getOffset()); append(SPACE); append(ROWS); return; } append(LIMIT); if (obj.getOffset() != null) { append(SPACE); visitNode(obj.getOffset()); append(","); //$NON-NLS-1$ } append(SPACE); visitNode(obj.getRowLimit()); }