/** * Applies range calculation on the actual number of rows selected by a * {@code COUNT(*)} query. A range query may use either only the limit or * both offset and limit based on database dictionary support and * accordingly the number of rows in the result set needs to be modified. * * @param select * @param count * @return */ public int applyRange(Select select, int count) { long start = select.getStartIndex(); long end = select.getEndIndex(); if (supportsSelectStartIndex) { if (start > 0) count -= start; if (end != Long.MAX_VALUE) { long size = end - start; count = (int) Math.min(count, size); } } return count; } }
/** * Applies range calculation on the actual number of rows selected by a * {@code COUNT(*)} query. A range query may use either only the limit or * both offset and limit based on database dictionary support and * accordingly the number of rows in the result set needs to be modified. * * @param select * @param count * @return */ public int applyRange(Select select, int count) { long start = select.getStartIndex(); long end = select.getEndIndex(); if (supportsSelectStartIndex) { if (start > 0) count -= start; if (end != Long.MAX_VALUE) { long size = end - start; count = (int) Math.min(count, size); } } return count; } }
/** * Applies range calculation on the actual number of rows selected by a * {@code COUNT(*)} query. A range query may use either only the limit or * both offset and limit based on database dictionary support and * accordingly the number of rows in the result set needs to be modified. * * @param select * @param count * @return */ public int applyRange(Select select, int count) { long start = select.getStartIndex(); long end = select.getEndIndex(); if (supportsSelectStartIndex) { if (start > 0) count -= start; if (end != Long.MAX_VALUE) { long size = end - start; count = (int) Math.min(count, size); } } return count; } }
/** * Applies range calculation on the actual number of rows selected by a * {@code COUNT(*)} query. A range query may use either only the limit or * both offset and limit based on database dictionary support and * accordingly the number of rows in the result set needs to be modified. * * @param select * @param count * @return */ public int applyRange(Select select, int count) { long start = select.getStartIndex(); long end = select.getEndIndex(); if (supportsSelectStartIndex) { if (start > 0) count -= start; if (end != Long.MAX_VALUE) { long size = end - start; count = (int) Math.min(count, size); } } return count; } }
public boolean supportsLocking(Select sel) { if (!super.supportsLocking(sel)) return false; return !requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering()); }
@Override public boolean supportsLocking(Select sel) { if (!super.supportsLocking(sel)) return false; return !requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering()); }
@Override public boolean supportsLocking(Select sel) { if (!super.supportsLocking(sel)) return false; return !requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering()); }
@Override public boolean supportsLocking(Select sel) { if (!super.supportsLocking(sel)) return false; return !requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering()); }
@Override public boolean supportsLocking(Select sel) { if (!super.supportsLocking(sel)) return false; return !requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering()); }
boolean forUpdate) { if (!requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering())) return super.getSelects(sel, distinctIdentifiers, forUpdate);
boolean forUpdate) { if (!requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering())) return super.getSelects(sel, distinctIdentifiers, forUpdate);
protected SQLBuffer getSelects(Select sel, boolean distinctIdentifiers, boolean forUpdate) { if (!requiresSubselectForRange(sel.getStartIndex(), sel.getEndIndex(), sel.isDistinct(), sel.getOrdering())) return super.getSelects(sel, distinctIdentifiers, forUpdate);
if (!supportsSelectForUpdate) return false; if (!supportsLockingWithSelectRange && (sel.getStartIndex() != 0 || sel.getEndIndex() != Long.MAX_VALUE)) return false;
if (!supportsSelectForUpdate) return false; if (!supportsLockingWithSelectRange && (sel.getStartIndex() != 0 || sel.getEndIndex() != Long.MAX_VALUE)) return false;
if (!supportsSelectForUpdate) return false; if (!supportsLockingWithSelectRange && (sel.getStartIndex() != 0 || sel.getEndIndex() != Long.MAX_VALUE)) return false;
/** * Create a SELECT statement in the proper join syntax for the given * instance. */ public SQLBuffer toSelect(Select sel, boolean forUpdate, JDBCFetchConfiguration fetch) { sel.addJoinClassConditions(); boolean update = forUpdate && sel.getFromSelect() == null; SQLBuffer select = getSelects(sel, false, update); SQLBuffer ordering = null; if (!sel.isAggregate() || sel.getGrouping() != null) ordering = sel.getOrdering(); SQLBuffer from; if (sel.getFromSelect() != null) from = getFromSelect(sel, forUpdate); else from = getFrom(sel, update); SQLBuffer where = getWhere(sel, update); return toSelect(select, fetch, from, where, sel.getGrouping(), sel.getHaving(), ordering, sel.isDistinct(), forUpdate, sel.getStartIndex(), sel.getEndIndex(), sel); }
/** * Create a SELECT statement in the proper join syntax for the given * instance. */ public SQLBuffer toSelect(Select sel, boolean forUpdate, JDBCFetchConfiguration fetch) { sel.addJoinClassConditions(); boolean update = forUpdate && sel.getFromSelect() == null; SQLBuffer select = getSelects(sel, false, update); SQLBuffer ordering = null; if (!sel.isAggregate() || sel.getGrouping() != null) ordering = sel.getOrdering(); SQLBuffer from; if (sel.getFromSelect() != null) from = getFromSelect(sel, forUpdate); else from = getFrom(sel, update); SQLBuffer where = getWhere(sel, update); return toSelect(select, fetch, from, where, sel.getGrouping(), sel.getHaving(), ordering, sel.isDistinct(), forUpdate, sel.getStartIndex(), sel.getEndIndex(), sel); }
/** * Create a SELECT statement in the proper join syntax for the given * instance. */ public SQLBuffer toSelect(Select sel, boolean forUpdate, JDBCFetchConfiguration fetch) { sel.addJoinClassConditions(); boolean update = forUpdate && sel.getFromSelect() == null; SQLBuffer select = getSelects(sel, false, update); SQLBuffer ordering = null; if (!sel.isAggregate() || sel.getGrouping() != null) ordering = sel.getOrdering(); SQLBuffer from; if (sel.getFromSelect() != null) from = getFromSelect(sel, forUpdate); else from = getFrom(sel, update); SQLBuffer where = getWhere(sel, update); return toSelect(select, fetch, from, where, sel.getGrouping(), sel.getHaving(), ordering, sel.isDistinct(), forUpdate, sel.getStartIndex(), sel.getEndIndex(), sel); }
/** * Create a SELECT statement in the proper join syntax for the given * instance. */ public SQLBuffer toSelect(Select sel, boolean forUpdate, JDBCFetchConfiguration fetch) { sel.addJoinClassConditions(); boolean update = forUpdate && sel.getFromSelect() == null; SQLBuffer select = getSelects(sel, false, update); SQLBuffer ordering = null; if (!sel.isAggregate() || sel.getGrouping() != null) ordering = sel.getOrdering(); SQLBuffer from; if (sel.getFromSelect() != null) from = getFromSelect(sel, forUpdate); else from = getFrom(sel, update); SQLBuffer where = getWhere(sel, update); return toSelect(select, fetch, from, where, sel.getGrouping(), sel.getHaving(), ordering, sel.isDistinct(), forUpdate, sel.getStartIndex(), sel.getEndIndex(), sel); }
/** * Create a SELECT statement in the proper join syntax for the given * instance. */ public SQLBuffer toSelect(Select sel, boolean forUpdate, JDBCFetchConfiguration fetch) { sel.addJoinClassConditions(); boolean update = forUpdate && sel.getFromSelect() == null; SQLBuffer select = getSelects(sel, false, update); SQLBuffer ordering = null; if (!sel.isAggregate() || sel.getGrouping() != null) ordering = sel.getOrdering(); SQLBuffer from; if (sel.getFromSelect() != null) from = getFromSelect(sel, forUpdate); else from = getFrom(sel, update); SQLBuffer where = getWhere(sel, update); return toSelect(select, fetch, from, where, sel.getGrouping(), sel.getHaving(), ordering, sel.isDistinct(), forUpdate, sel.getStartIndex(), sel.getEndIndex(), sel); }