Author: tv Date: Sun Dec 9 14:58:10 2018 New Revision: 1848522 URL: http://svn.apache.org/viewvc?rev=1848522&view=rev Log: TORQUE-356: Remove special handling for ignoreCaseInOrderBy(), Add native limit/offset-support
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/HsqldbAdapter.java Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/HsqldbAdapter.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/HsqldbAdapter.java?rev=1848522&r1=1848521&r2=1848522&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/HsqldbAdapter.java (original) +++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/HsqldbAdapter.java Sun Dec 9 14:58:10 2018 @@ -22,6 +22,8 @@ package org.apache.torque.adapter; import java.sql.Connection; import java.sql.SQLException; +import org.apache.torque.sql.Query; + /** * This is used to connect to Hsqldb databases. * @@ -80,15 +82,6 @@ public class HsqldbAdapter extends Abstr } /** - * @see org.apache.torque.adapter.Adapter#ignoreCaseInOrderBy(String) - */ - @Override - public String ignoreCaseInOrderBy(String in) - { - return "CAST(" + in + " AS VARCHAR_IGNORECASE(10000))"; - } - - /** * @see org.apache.torque.adapter.Adapter#getIDMethodSQL(Object obj) */ @Override @@ -153,4 +146,61 @@ public class HsqldbAdapter extends Abstr { return true; } + + /** + * Generate a LIMIT offset, limit clause if offset > 0 + * or an LIMIT limit clause if limit is > 0 and offset + * is 0. + * + * @param query The query to modify + * @param offset the offset Value + * @param limit the limit Value + */ + @Override + public void generateLimits(Query query, long offset, int limit) + { + if (offset > 0) + { + if (limit >= 0) + { + query.setLimit(Integer.toString(limit)); + } + else + { + // Limit must always be set in mysql if offset is set + query.setLimit("18446744073709551615"); + } + query.setOffset(Long.toString(offset)); + } + else + { + if (limit >= 0) + { + query.setLimit(Integer.toString(limit)); + } + } + + query.setPreLimit(null); + query.setPostLimit(null); + } + + /** + * Return true for HSQLDB 2.x + * @see org.apache.torque.adapter.AbstractAdapter#supportsNativeLimit() + */ + @Override + public boolean supportsNativeLimit() + { + return true; + } + + /** + * Return true for HSQLDB 2.x + * @see org.apache.torque.adapter.AbstractAdapter#supportsNativeOffset() + */ + @Override + public boolean supportsNativeOffset() + { + return true; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org