You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by fr...@apache.org on 2011/04/13 16:16:22 UTC

svn commit: r1091793 - /incubator/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java

Author: francisdb
Date: Wed Apr 13 14:16:21 2011
New Revision: 1091793

URL: http://svn.apache.org/viewvc?rev=1091793&view=rev
Log:
EMPIREDB-107 Limit function for postgres sql not implemented

Modified:
    incubator/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java

Modified: incubator/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java?rev=1091793&r1=1091792&r2=1091793&view=diff
==============================================================================
--- incubator/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java (original)
+++ incubator/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java Wed Apr 13 14:16:21 2011
@@ -83,10 +83,55 @@ public class DBDatabaseDriverPostgreSQL 
     {
         private final static long serialVersionUID = 1L;
       
+        protected int limit = -1;
+        protected int skip  = -1;
+        
         public DBCommandPostreSQL(DBDatabase db)
         {
             super(db);
         }
+        
+        @Override
+        public boolean limitRows(int numRows)
+        {
+            limit = numRows;
+            return success();
+        }
+
+        @Override
+        public boolean skipRows(int numRows)
+        {
+            skip = numRows;
+            return success();
+        }
+         
+        @Override
+        public void clearLimit()
+        {
+            limit = -1;
+            skip  = -1;
+        }
+        
+        @Override
+        public boolean getSelect(StringBuilder buf)
+        {   // call base class
+            if (super.getSelect(buf)==false)
+                return false;
+            // add limit and offset
+            if (limit>=0)
+            {   buf.append("\r\nLIMIT ");
+                buf.append(String.valueOf(limit));
+                // Offset
+                if (skip>=0) 
+                {   buf.append(" OFFSET ");
+                    buf.append(String.valueOf(skip));
+                }    
+            }
+            // done
+            return success();
+        }
+        
+        
     }
     
     private String databaseName;
@@ -270,8 +315,10 @@ public class DBDatabaseDriverPostgreSQL 
     {
         switch (type)
         {   // return support info 
-            case CREATE_SCHEMA: return true;
-            case SEQUENCES:     return true;    
+            case CREATE_SCHEMA: 	return true;
+            case SEQUENCES:     	return true;    
+            case QUERY_LIMIT_ROWS:  return true;
+            case QUERY_SKIP_ROWS:   return true;
             default:
                 // All other features are not supported by default
                 return false;