You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by my...@apache.org on 2014/10/09 20:51:28 UTC

svn commit: r1630553 - in /db/derby/code/branches/10.10: ./ java/engine/org/apache/derby/impl/sql/compile/ java/testing/org/apache/derbyTesting/functionTests/tests/lang/

Author: myrnavl
Date: Thu Oct  9 18:51:28 2014
New Revision: 1630553

URL: http://svn.apache.org/r1630553
Log:
DERBY-6565; ROW_NUMBER function throws NullPointerException in UPDATE statement
   backport of revision 1616512 from 10.11 branch

Modified:
    db/derby/code/branches/10.10/   (props changed)
    db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/UpdateNode.java
    db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java
    db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OLAPTest.java

Propchange: db/derby/code/branches/10.10/
------------------------------------------------------------------------------
  Merged /db/derby/code/branches/10.11:r1616512
  Merged /db/derby/code/trunk:r1615982

Modified: db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/UpdateNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/UpdateNode.java?rev=1630553&r1=1630552&r2=1630553&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/UpdateNode.java (original)
+++ db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/UpdateNode.java Thu Oct  9 18:51:28 2014
@@ -518,6 +518,9 @@ public final class UpdateNode extends DM
 		 */
 		checkTableNameAndScrubResultColumns(resultColumnList);
 
+        // SQL 2011, section 6.10, SR 4b.
+        SelectNode.checkNoWindowFunctions(resultSet, "<update source>");
+		
 		/* Set the new result column list in the result set */
 		resultSet.setResultColumns(resultColumnList);
 

Modified: db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java?rev=1630553&r1=1630552&r2=1630553&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java (original)
+++ db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java Thu Oct  9 18:51:28 2014
@@ -80,7 +80,7 @@ public class WindowResultSetNode extends
         resultColumns = childResult.getResultColumns();
         childResult.setResultColumns(newBottomRCL);
 
-        // Wrao purselved int a project/restrict as per convention.
+        // Wrap ourselves in a project/restrict as per convention.
         addNewPRNode();
 
         // Add the extra result columns required
@@ -90,7 +90,7 @@ public class WindowResultSetNode extends
     /**
      * Add a new PR node.  Put the new PR under any sort.
      *
-     * @exception standard exception
+     * @throws StandardException standard error policy
      */
     private void addNewPRNode()
         throws StandardException
@@ -231,6 +231,7 @@ public class WindowResultSetNode extends
     /**
      * @return true if an equivalent column reference to cand is already
      * present in uniqueColRefs
+     * @throws StandardException standard error policy
      */
     private boolean colRefAlreadySeen(List uniqueColRefs,
                                       ColumnReference cand)
@@ -249,6 +250,8 @@ public class WindowResultSetNode extends
     /**
      * Substitute new result columns for window function calls and add the
      * result columns to childResult's list of columns.
+     *
+     * @throws StandardException standard error policy
      */
     private void addNewColumns() throws StandardException {
         /*
@@ -340,10 +343,6 @@ public class WindowResultSetNode extends
     }
 
 
-    /**
-     * override
-     * @see QueryTreeNode#generate
-     */
     public void generate(ActivationClassBuilder acb,
                          MethodBuilder mb)
             throws StandardException

Modified: db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OLAPTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OLAPTest.java?rev=1630553&r1=1630552&r2=1630553&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OLAPTest.java (original)
+++ db/derby/code/branches/10.10/java/testing/org/apache/derbyTesting/functionTests/tests/lang/OLAPTest.java Thu Oct  9 18:51:28 2014
@@ -591,6 +591,12 @@ public class OLAPTest extends BaseJDBCTe
             "select * from t4 t_1 join t4 t_2 on " +
             "                     t_1.a = row_number() over () + t_2.a");
 
+        // DERBY-6565: NPE before
+        assertStatementError(
+                LANG_WINDOW_FUNCTION_CONTEXT_ERROR,
+                s,
+                "update t3 set y = y - row_number() over ()");
+
         // DERBY-6691: NPE before
         assertStatementError(LANG_WINDOW_FUNCTION_CONTEXT_ERROR,
             s,