@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); return sql + (hasOffset ? " limit ?, ?" : " limit ?"); }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); return sql + ( hasOffset ? " limit ? offset ?" : " limit ?" ); }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); return sql + (hasOffset ? " limit ? offset ?" : " limit ?"); }
private String getOffsetFetch(RowSelection selection) { if ( !LimitHelper.hasFirstRow( selection ) ) { return " offset 0 rows fetch next ? rows only"; } return " offset ? rows fetch next ? rows only"; }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); return hasOffset ? sql + " rows ? to ?" : sql + " rows ?"; }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); return sql + (hasOffset ? " limit ? offset ?" : " limit ?"); }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); return new StringBuilder( sql.length() + 20 ) .append( sql ) .insert( 6, hasOffset ? " first ? skip ?" : " first ?" ) .toString(); }
@Override public int bindLimitParametersAtEndOfQuery(RowSelection selection, PreparedStatement statement, int index) throws SQLException { return LimitHelper.hasFirstRow( selection ) ? super.bindLimitParametersAtEndOfQuery( selection, statement, index ) : 0; }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); if ( hsqldbVersion < 200 ) { return new StringBuilder( sql.length() + 10 ) .append( sql ) .insert( sql.toLowerCase(Locale.ROOT).indexOf( "select" ) + 6, hasOffset ? " limit ? ?" : " top ?" ) .toString(); } else { return sql + (hasOffset ? " offset ? limit ?" : " limit ?"); } }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); if (hasOffset) { throw new UnsupportedOperationException( "query result offset is not supported" ); } return sql + " fetch first " + getMaxOrLimit( selection ) + " rows only "; }
@Override public String processSql(String sql, RowSelection selection) { if (LimitHelper.hasFirstRow( selection )) { throw new UnsupportedOperationException( "query result offset is not supported" ); } return sql + " fetch first " + getMaxOrLimit( selection ) + " rows only"; }
@Override public String processSql(String sql, RowSelection selection) { if (LimitHelper.useLimit( this, selection )) { return sql + (LimitHelper.hasFirstRow( selection ) ? " offset ? rows fetch next ? rows only" : " fetch first ? rows only"); } else { // or return unaltered SQL return sql; } }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); if ( hasOffset ) { throw new UnsupportedOperationException( "query result offset is not supported" ); } return super.processSql( sql, selection ); } }
@Override public String processSql(String sql, RowSelection selection) { if ( LimitHelper.useLimit( this, selection ) ) { // useLimitOffset: whether "offset" is set or not; // if set, use "LIMIT offset, row_count" syntax; // if not, use "LIMIT row_count" final boolean useLimitOffset = LimitHelper.hasFirstRow( selection ); return sql + (useLimitOffset ? " limit ?, ?" : " limit ?"); } else { // or return unaltered SQL return sql; } } }
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow( selection ); String sqlOffset = hasOffset ? " SKIP " + selection.getFirstRow() : ""; String sqlLimit = " FIRST " + getMaxOrLimit( selection ); String sqlOffsetLimit = sqlOffset + sqlLimit; String result = new StringBuilder( sql.length() + 10 ) .append( sql ) .insert( sql.toLowerCase( Locale.ROOT ).indexOf( "select" ) + 6, sqlOffsetLimit ).toString(); return result; }
@Override public String processSql(String sql, RowSelection selection) { final String soff = " offset " + selection.getFirstRow(); final String slim = " fetch first " + getMaxOrLimit( selection ) + " rows only"; final StringBuilder sb = new StringBuilder( sql.length() + soff.length() + slim.length() ) .append( sql ); if (LimitHelper.hasFirstRow( selection )) { sb.append( soff ); } if (LimitHelper.hasMaxRows( selection )) { sb.append( slim ); } return sb.toString(); }
@Override public int bindLimitParametersAtEndOfQuery(RowSelection selection, PreparedStatement statement, int index) throws SQLException { if ( usedOffsetFetch && !LimitHelper.hasFirstRow( selection ) ) { // apply just the max value when offset fetch applied statement.setInt( index, getMaxOrLimit( selection ) ); return 1; } return super.bindLimitParametersAtEndOfQuery( selection, statement, index ); }
@Override public String processSql(String sql, RowSelection selection) { if ( LimitHelper.hasFirstRow( selection ) ) { //nest the main query in an outer select return "select * from ( select inner2_.*, rownumber() over(order by order of inner2_) as rownumber_ from ( " + sql + " fetch first " + getMaxOrLimit( selection ) + " rows only ) as inner2_ ) as inner1_ where rownumber_ > " + selection.getFirstRow() + " order by rownumber_"; } return sql + " fetch first " + getMaxOrLimit( selection ) + " rows only"; }
@Override public String processSql(String sql, RowSelection selection) { if (LimitHelper.hasFirstRow( selection )) { //nest the main query in an outer select return "select * from ( select inner2_.*, rownumber() over(order by order of inner2_) as rownumber_ from ( " + sql + " fetch first " + getMaxOrLimit( selection ) + " rows only ) as inner2_ ) as inner1_ where rownumber_ > " + selection.getFirstRow() + " order by rownumber_"; } return sql + " fetch first " + getMaxOrLimit( selection ) + " rows only"; }
@Override public String processSql(String sql, RowSelection selection) { final boolean useLimitOffset = supportsLimit() && supportsLimitOffset() && LimitHelper.hasFirstRow( selection ) && LimitHelper.hasMaxRows( selection ); return dialect.getLimitString( sql, useLimitOffset ? LimitHelper.getFirstRow( selection ) : 0, getMaxOrLimit( selection ) ); } }