private void updatePagingButtons() { if (_nextPageButton != null) { if (_table.getRowCount() < _query.getMaxRows()) { _nextPageButton.setEnabled(false); } else { _nextPageButton.setEnabled(true); } } if (_previousPageButton != null) { if (getFirstRow() <= 1) { _previousPageButton.setEnabled(false); } else { _previousPageButton.setEnabled(true); } } }
@Override protected String rewriteSelectClause(Query query, SelectClause selectClause) { String result = super.rewriteSelectClause(query, selectClause); Integer maxRows = query.getMaxRows(); if (maxRows != null) { if (query.getSelectClause().isDistinct()) { result = "SELECT DISTINCT TOP " + maxRows + " " + result.substring("SELECT DISTINCT ".length()); } else { result = "SELECT TOP " + maxRows + " " + result.substring("SELECT ".length()); } } return result; }
@Override protected String rewriteSelectClause(Query query, SelectClause selectClause) { String result = super.rewriteSelectClause(query, selectClause); Integer maxRows = query.getMaxRows(); if (maxRows != null) { if (query.getSelectClause().isDistinct()) { result = "SELECT DISTINCT TOP " + maxRows + " " + result.substring("SELECT DISTINCT ".length()); } else { result = "SELECT TOP " + maxRows + " " + result.substring("SELECT ".length()); } } return result; }
@Override protected String rewriteSelectClause(Query query, SelectClause selectClause) { String result = super.rewriteSelectClause(query, selectClause); Integer firstRow = query.getFirstRow(); Integer maxRows = query.getMaxRows(); if (maxRows != null || firstRow != null) { if (maxRows == null) { maxRows = Integer.MAX_VALUE; } if (firstRow == null || firstRow <= 0) { result = "SELECT TOP " + maxRows + " " + result.substring(7); } else { final int offset = firstRow - 1; result = "SELECT LIMIT " + offset + " " + maxRows + " " + result.substring(7); } } return result; }
@Override protected String rewriteSelectClause(Query query, SelectClause selectClause) { String result = super.rewriteSelectClause(query, selectClause); Integer firstRow = query.getFirstRow(); Integer maxRows = query.getMaxRows(); if (maxRows != null || firstRow != null) { if (maxRows == null) { maxRows = Integer.MAX_VALUE; } if (firstRow == null || firstRow <= 0) { result = "SELECT TOP " + maxRows + " " + result.substring(7); } else { final int offset = firstRow - 1; result = "SELECT LIMIT " + offset + " " + maxRows + " " + result.substring(7); } } return result; }
/** * {@inheritDoc} * * If the Max rows and/or First row property of the query is set, then we * will use the database's LIMIT and OFFSET functions. */ @Override public String rewriteQuery(Query query) { String queryString = super.rewriteQuery(query); Integer maxRows = query.getMaxRows(); Integer firstRow = query.getFirstRow(); if (maxRows != null || firstRow != null) { if (maxRows == null) { maxRows = Integer.MAX_VALUE; } queryString = queryString + " LIMIT " + maxRows; if (firstRow != null && firstRow > 1) { // offset is 0-based int offset = firstRow - 1; queryString = queryString + " OFFSET " + offset; } } return queryString; } }
/** * {@inheritDoc} * * If the Max rows and/or First row property of the query is set, then we * will use the database's LIMIT and OFFSET functions. */ @Override public String rewriteQuery(Query query) { String queryString = super.rewriteQuery(query); Integer maxRows = query.getMaxRows(); Integer firstRow = query.getFirstRow(); if (maxRows != null || firstRow != null) { if (maxRows == null) { maxRows = Integer.MAX_VALUE; } queryString = queryString + " LIMIT " + maxRows; if (firstRow != null && firstRow > 1) { // offset is 0-based int offset = firstRow - 1; queryString = queryString + " OFFSET " + offset; } } return queryString; } }
/** * Gets the fetch size of a query * * @param query * the query to execute * @return an integer representing how many rows to eagerly fetch for the * query */ public int getFetchSize(Query query) { if (isSingleRowQuery(query)) { return 1; } int bytesPerRow = getRowSize(query); int result = getFetchSize(bytesPerRow); final Integer maxRows = query.getMaxRows(); if (maxRows != null && result > maxRows) { logger.debug("Result ({}) was below max rows ({}), adjusting.", result, maxRows); result = maxRows; } return result; }
/** * Gets the fetch size of a query * * @param query * the query to execute * @return an integer representing how many rows to eagerly fetch for the * query */ public int getFetchSize(Query query) { if (isSingleRowQuery(query)) { return 1; } int bytesPerRow = getRowSize(query); int result = getFetchSize(bytesPerRow); final Integer maxRows = query.getMaxRows(); if (maxRows != null && result > maxRows) { logger.debug("Result ({}) was below max rows ({}), adjusting.", result, maxRows); result = maxRows; } return result; }
@Override public Query optimizeQuery(final Query q, final Category category) { if (category == Category.VALID) { final Integer previousMaxRows = q.getMaxRows(); final Integer previousFirstRow = q.getFirstRow();
String queryString = super.rewriteQuery(query); if (isSupportedVersion(_databaseProductName, _databaseSupportedVersion) && (query.getMaxRows() != null || query.getFirstRow() != null)) { final Integer maxRows = query.getMaxRows(); Integer firstRow = query.getFirstRow();
String queryString = super.rewriteQuery(query); if (isSupportedVersion(_databaseProductName, _databaseSupportedVersion) && (query.getMaxRows() != null || query.getFirstRow() != null)) { final Integer maxRows = query.getMaxRows(); Integer firstRow = query.getFirstRow();
private DCPanel createPagingButtonPanel() { if (_query == null) { return null; } final Integer maxRows = _query.getMaxRows(); if (maxRows == null) { // no paging needed when there are no max rows property return null; } _previousPageButton.addActionListener(e -> { int newFirstRow = getFirstRow() - maxRows; if (newFirstRow <= 0) { newFirstRow = 1; } _query.setFirstRow(newFirstRow); updateTable(); }); _nextPageButton.addActionListener(e -> { final int newFirstRow = getFirstRow() + maxRows; _query.setFirstRow(newFirstRow); updateTable(); }); final DCPanel buttonPanel = new DCPanel(WidgetUtils.COLOR_DEFAULT_BACKGROUND); buttonPanel.setBorder(new MatteBorder(1, 0, 0, 0, WidgetUtils.BG_COLOR_LESS_BRIGHT)); buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 4, 10)); buttonPanel.add(_previousPageButton); buttonPanel.add(_nextPageButton); return buttonPanel; }
int maxRows = (query.getMaxRows() == null ? -1 : query.getMaxRows());
final Integer maxRows = originalQuery.getMaxRows(); if (maxRows != null) { expectedRows = Math.min(expectedRows, maxRows.intValue());
final Integer maxRows = originalQuery.getMaxRows(); if (maxRows != null) { expectedRows = Math.min(expectedRows, maxRows.intValue());
@Override public String rewriteQuery(Query query) { final Integer firstRow = query.getFirstRow(); final Integer maxRows = query.getMaxRows();
@Override public String rewriteQuery(Query query) { final Integer firstRow = query.getFirstRow(); final Integer maxRows = query.getMaxRows();
logger.debug("Final query firstRow={}, maxRows={}", finalQuery.getFirstRow(), finalQuery.getMaxRows());
logger.debug("Final query firstRow={}, maxRows={}", finalQuery.getFirstRow(), finalQuery.getMaxRows());