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,