Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect In directory sc8-pr-cvs1:/tmp/cvs-serv11014/dialect Modified Files: Dialect.java HSQLDialect.java MySQLDialect.java Oracle9Dialect.java PostgreSQLDialect.java Log Message: improved Limit clause stuff Index: Dialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/Dialect.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Dialect.java 3 May 2003 09:05:44 -0000 1.14 --- Dialect.java 4 May 2003 06:09:40 -0000 1.15 *************** *** 350,354 **** * Does this <tt>Dialect</tt> have some kind of <tt>LIMIT</tt> syntax? */ ! public boolean supportsPagingSelect() { return false; } --- 350,354 ---- * Does this <tt>Dialect</tt> have some kind of <tt>LIMIT</tt> syntax? */ ! public boolean supportsLimit() { return false; } *************** *** 358,362 **** * @return the modified SQL */ ! public String getPagingSelect(String querySelect) { throw new UnsupportedOperationException("paged queries not supported"); } --- 358,362 ---- * @return the modified SQL */ ! public String getLimitString(String querySelect) { throw new UnsupportedOperationException("paged queries not supported"); } *************** *** 367,371 **** * @return true if the correct order is limit, offset */ ! public boolean reversePagingSelectOrder() { return false; } --- 367,379 ---- * @return true if the correct order is limit, offset */ ! public boolean reverseLimitParameterOrder() { ! return false; ! } ! ! /** ! * Should we use a <tt>LIMIT</tt> clause when there is no first result ! * specified? ! */ ! public boolean preferLimit() { return false; } Index: HSQLDialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/HSQLDialect.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** HSQLDialect.java 3 May 2003 09:05:44 -0000 1.8 --- HSQLDialect.java 4 May 2003 06:09:40 -0000 1.9 *************** *** 72,80 **** } ! public boolean supportsPagingSelect() { return true; } ! public String getPagingSelect(String sql) { StringBuffer pagingSelect = new StringBuffer(100); pagingSelect.append(sql); --- 72,80 ---- } ! public boolean supportsLimit() { return true; } ! public String getLimitString(String sql) { StringBuffer pagingSelect = new StringBuffer(100); pagingSelect.append(sql); Index: MySQLDialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/MySQLDialect.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** MySQLDialect.java 3 May 2003 09:05:44 -0000 1.9 --- MySQLDialect.java 4 May 2003 06:09:40 -0000 1.10 *************** *** 83,95 **** } ! public boolean supportsPagingSelect() { return true; } ! public String getPagingSelect(String sql) { StringBuffer pagingSelect = new StringBuffer(100); pagingSelect.append(sql); pagingSelect.append(" limit ?, ?"); return pagingSelect.toString(); } --- 83,99 ---- } ! public boolean supportsLimit() { return true; } ! public String getLimitString(String sql) { StringBuffer pagingSelect = new StringBuffer(100); pagingSelect.append(sql); pagingSelect.append(" limit ?, ?"); return pagingSelect.toString(); + } + + public boolean preferLimit() { + return true; } Index: Oracle9Dialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/Oracle9Dialect.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Oracle9Dialect.java 3 May 2003 09:05:44 -0000 1.5 --- Oracle9Dialect.java 4 May 2003 06:09:40 -0000 1.6 *************** *** 62,74 **** } ! public boolean supportsPagingSelect() { return true; } ! public String getPagingSelect(String sql) { StringBuffer pagingSelect = new StringBuffer(100); ! pagingSelect.append("select * from ( select a.*, rownum rnum from ( "); pagingSelect.append(sql); ! pagingSelect.append(" ) a where rownum <= ?) where rnum >= ?"); return pagingSelect.toString(); } --- 62,74 ---- } ! public boolean supportsLimit() { return true; } ! public String getLimitString(String sql) { StringBuffer pagingSelect = new StringBuffer(100); ! pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( "); pagingSelect.append(sql); ! pagingSelect.append(" ) row_ where rownum <= ?) where rownum_ >= ?"); return pagingSelect.toString(); } Index: PostgreSQLDialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/PostgreSQLDialect.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** PostgreSQLDialect.java 3 May 2003 09:05:45 -0000 1.11 --- PostgreSQLDialect.java 4 May 2003 06:09:40 -0000 1.12 *************** *** 59,67 **** } ! public boolean supportsPagingSelect() { return true; } ! public String getPagingSelect(String sql) { StringBuffer pagingSelect = new StringBuffer(100); pagingSelect.append(sql); --- 59,67 ---- } ! public boolean supportsLimit() { return true; } ! public String getLimitString(String sql) { StringBuffer pagingSelect = new StringBuffer(100); pagingSelect.append(sql); *************** *** 70,74 **** } ! public boolean reversePagingSelectOrder() { return true; } --- 70,78 ---- } ! public boolean reverseLimitParameterOrder() { ! return true; ! } ! ! public boolean preferLimit() { return true; } |