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 rh...@apache.org on 2014/02/20 21:57:09 UTC

svn commit: r1570352 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/sql/compile/MergeNode.java testing/org/apache/derbyTesting/functionTests/tests/lang/MergeStatementTest.java

Author: rhillegas
Date: Thu Feb 20 20:57:08 2014
New Revision: 1570352

URL: http://svn.apache.org/r1570352
Log:
DERBY-3155: Remove some obsolete code which was causing a cross-schema MERGE statement to raise a missing schema error: commit derby-3155-29-aa-missingSchema.diff.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MergeNode.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/MergeStatementTest.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MergeNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MergeNode.java?rev=1570352&r1=1570351&r2=1570352&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MergeNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MergeNode.java Thu Feb 20 20:57:08 2014
@@ -633,22 +633,12 @@ public final class MergeNode extends DML
     void    addColumn
         (
          HashMap<String,ColumnReference> map,
-         ColumnReference    originalCR,
+         ColumnReference    cr,
          int    mergeTableID
          )
         throws StandardException
     {
-        ColumnReference cr = originalCR;
-        
-        if ( cr.getTableName() == null )
-        {
-            ResultColumn    rc = _leftJoinFromList.bindColumnReference( cr );
-            TableName       tableName = new TableName( null, rc.getTableName(), getContextManager() );
-            cr = new ColumnReference( cr.getColumnName(), tableName, getContextManager() );
-        }
-
         associateColumn( cr, mergeTableID );
-        originalCR.setMergeTableID( cr.getMergeTableID() );
 
         String  key = makeDCMKey( cr.getTableName(), cr.getColumnName() );
         if ( map.get( key ) == null )

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/MergeStatementTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/MergeStatementTest.java?rev=1570352&r1=1570351&r2=1570352&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/MergeStatementTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/MergeStatementTest.java Thu Feb 20 20:57:08 2014
@@ -5631,6 +5631,71 @@ public class MergeStatementTest extends 
         goodStatement( dboConnection, "drop table t3_041" );
     }
     
+   /**
+     * <p>
+     * Verify that we don't unnecessarily raise missing schema errors.
+     * </p>
+     */
+    public  void    test_042_missingSchema()
+        throws Exception
+    {
+        Connection  dboConnection = openUserConnection( TEST_DBO );
+        Connection  ruthConnection = openUserConnection( RUTH );
+
+        //
+        // create schema
+        //
+        goodStatement
+            (
+             dboConnection,
+             "create table deleteTable_042\n" +
+             "(\n" +
+             "    publicSelectColumn int\n" +
+             ")\n"
+             );
+        goodStatement
+            (
+             dboConnection,
+             "create table selectTable_042\n" +
+             "(\n" +
+             "    selectColumn int\n" +
+             ")\n"
+             );
+        goodStatement
+            (
+             dboConnection,
+             "grant select on  selectTable_042 to public"
+             );
+        goodStatement
+            (
+             dboConnection,
+             "grant select on  deleteTable_042 to public"
+             );
+        goodStatement
+            (
+             dboConnection,
+             "grant delete on deleteTable_042 to ruth"
+             );
+
+        //
+        // Verify that the unqualified reference to publicSelectColumn
+        // does not fail because the RUTH schema does not exist.
+        //
+        String  mergeStatement =
+            "merge into test_dbo.deleteTable_042\n" +
+            "using test_dbo.selectTable_042\n" +
+            "on publicSelectColumn = selectColumn\n" +
+            "when matched then delete\n";
+        expectExecutionWarning( ruthConnection, NO_ROWS_AFFECTED, mergeStatement );
+        expectExecutionWarning( dboConnection, NO_ROWS_AFFECTED, mergeStatement );
+
+        //
+        // drop schema
+        //
+        goodStatement( dboConnection, "drop table deleteTable_042" );
+        goodStatement( dboConnection, "drop table selectTable_042" );
+    }
+    
     ///////////////////////////////////////////////////////////////////////////////////
     //
     // ROUTINES