You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tv...@apache.org on 2018/12/09 14:58:10 UTC
svn commit: r1848522 -
/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/HsqldbAdapter.java
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-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org