Author: arminw
Date: Mon Apr  2 11:20:17 2007
New Revision: 524875

URL: http://svn.apache.org/viewvc?view=rev&rev=524875
Log:
fix problem with orderby-clause in sub-queries, if not supported don't add 
orderby-columns

Modified:
    
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java
    
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java
    
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSubSelectStatement.java

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java?view=diff&rev=524875&r1=524874&r2=524875
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java
 Mon Apr  2 11:20:17 2007
@@ -510,7 +510,7 @@
      * @param columns the list of columns represented by Criteria.Field to 
ensure
      * @param existingColumns the list of column names (String) that are 
already appended
      */
-    protected void ensureColumns(List columns, List existingColumns)
+    protected void ensureColumnsGroupBy(List columns, List existingColumns)
     {
         if (columns == null || columns.isEmpty())
         {
@@ -538,7 +538,7 @@
      * @param buf the statement
      * @return List of existingColumns including ojb_col_x
      */
-    protected List ensureColumns(List columns, List existingColumns, 
StringBuffer buf)
+    protected List ensureColumnsOrderBy(List columns, List existingColumns, 
StringBuffer buf)
     {
         if (columns == null || columns.isEmpty())
         {

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java?view=diff&rev=524875&r1=524874&r2=524875
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java
 Mon Apr  2 11:20:17 2007
@@ -336,10 +336,10 @@
             }
 
             groupByFields = query.getGroupBy();
-            ensureColumns(groupByFields, columnList);
+            ensureColumnsGroupBy(groupByFields, columnList);
             
             orderByFields = query.getOrderBy();
-            columnList = ensureColumns(orderByFields, columnList, stmt);
+            columnList = ensureColumnsOrderBy(orderByFields, columnList, stmt);
 /*
 arminw:
 TODO: this feature doesn't work, so remove this in future

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSubSelectStatement.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSubSelectStatement.java?view=diff&rev=524875&r1=524874&r2=524875
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSubSelectStatement.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSubSelectStatement.java
 Mon Apr  2 11:20:17 2007
@@ -48,9 +48,25 @@
         }
         else
         {
-            getLogger().warn("SubSelect: Database doesn't support ORDER BY 
clause " +
-                    "in sub-select, execute sub-select without order by 
clause. Platform: "
-                    + ClassUtils.getShortClassName(getPlatform().getClass()));
+            if(orderByFields != null && orderByFields.size() > 0)
+            {
+                getLogger().warn("SubSelect: Database doesn't support ORDER BY 
clause " +
+                        "in sub-select, execute sub-select without order by 
clause. Platform: "
+                        + 
ClassUtils.getShortClassName(getPlatform().getClass()) + ", orderby=" + 
orderByFields);
+            }
+
+        }
+    }
+
+    protected List ensureColumnsOrderBy(List columns, List existingColumns, 
StringBuffer buf)
+    {
+        if(getPlatform().supportsOrderByInSubSelect())
+        {
+            return super.ensureColumnsOrderBy(columns, existingColumns, buf);
+        }
+        else
+        {
+            return existingColumns;
         }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to