You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mp...@apache.org on 2006/09/12 01:17:28 UTC

svn commit: r442385 - /incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java

Author: mprudhom
Date: Mon Sep 11 16:17:27 2006
New Revision: 442385

URL: http://svn.apache.org/viewvc?view=rev&rev=442385
Log:
Don't bother using a subselect in bulk UPDATE or DELETE clauses if there is no where condition, since it does the exact same think as an unqulaified bulk operation.

Modified:
    incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java

Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?view=diff&rev=442385&r1=442384&r2=442385
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Mon Sep 11 16:17:27 2006
@@ -1792,6 +1792,17 @@
             return sql;
         }
 
+        Table table = mapping.getTable();
+        String tableName = getFullName(table, false);
+
+        // only use a  subselect if the where is not empty; otherwise
+        // an unqualified delete or update will work
+        if (sel.getWhere() == null || sel.getWhere().isEmpty()) {
+            sql.append(tableName);
+            appendUpdates(sel, store, sql, params, updateParams, false);
+            return sql;
+        }
+
         // we need to use a subselect if we are to bulk delete where
         // the select includes multiple tables; if the database
         // doesn't support it, then we need to sigal this by returning null
@@ -1799,8 +1810,6 @@
             return null;
 
         Column[] pks = mapping.getPrimaryKeyColumns();
-        Table table = mapping.getTable();
-        String tableName = getFullName(table, false);
         sel.clearSelects();
         sel.setDistinct(true);