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