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 dj...@apache.org on 2007/07/03 21:20:13 UTC

svn commit: r552955 - in /db/derby/code/branches/10.3/java/engine/org/apache/derby: iapi/sql/execute/ iapi/store/access/ impl/sql/execute/ impl/store/access/btree/ impl/store/access/conglomerate/

Author: djd
Date: Tue Jul  3 12:20:12 2007
New Revision: 552955

URL: http://svn.apache.org/viewvc?view=rev&rev=552955
Log:
Merge of 551728 from trunk - cleanup related to the old Storable interface.

Modified:
    db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/sql/execute/ExecRow.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/store/access/BackingStoreHashtable.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/AggregateSortObserver.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/HashScanResultSet.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/IndexValueRow.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ValueRow.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/btree/BTreeForwardScan.java
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericScanController.java

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/sql/execute/ExecRow.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/sql/execute/ExecRow.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/sql/execute/ExecRow.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/sql/execute/ExecRow.java Tue Jul  3 12:20:12 2007
@@ -21,15 +21,9 @@
 
 package org.apache.derby.iapi.sql.execute;
 
-import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.iapi.types.DataValueDescriptor;
-
-import org.apache.derby.iapi.sql.Row;
-
-import org.apache.derby.iapi.services.io.Storable;
-
 import org.apache.derby.iapi.services.io.FormatableBitSet;
+import org.apache.derby.iapi.sql.Row;
+import org.apache.derby.iapi.types.DataValueDescriptor;
 
 /**
  * Execution sees this extension of Row that provides connectivity
@@ -93,9 +87,6 @@
 	/**
 		Set the array of objects
 	*/
-	public void setRowArray(Storable[] rowArray);
-
-	// temp overload
 	public void setRowArray(DataValueDescriptor[] rowArray);
 
 	/**

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/store/access/BackingStoreHashtable.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/store/access/BackingStoreHashtable.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/store/access/BackingStoreHashtable.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/store/access/BackingStoreHashtable.java Tue Jul  3 12:20:12 2007
@@ -216,8 +216,6 @@
         this.tc = tc;
         this.keepAfterCommit = keepAfterCommit;
 
-        Object[] row;
-
         // use passed in capacity and loadfactor if not -1, you must specify
         // capacity if you want to specify loadfactor.
         if (initialCapacity != -1)
@@ -266,6 +264,7 @@
         {
             boolean needsToClone = row_source.needsToClone();
 
+            DataValueDescriptor[] row;
             while ((row = getNextRowFromRowSource()) != null)
             {
                 // If we haven't initialized the hash_table yet then that's
@@ -313,10 +312,10 @@
      *
 	 * @exception  StandardException  Standard exception policy.
 	 */
-	private Object[] getNextRowFromRowSource()
+	private DataValueDescriptor[] getNextRowFromRowSource()
 		throws StandardException
 	{
-		Object[] row = row_source.getNextRowFromRowSource();
+		DataValueDescriptor[] row = row_source.getNextRowFromRowSource();
 
 		if (skipNullKeyColumns)
 		{
@@ -326,17 +325,7 @@
 				int index = 0;
 				for ( ; index < key_column_numbers.length; index++)
 				{
-					if (SanityManager.DEBUG)
-					{
-						if (! (row[key_column_numbers[index]] instanceof Storable))
-						{
-							SanityManager.THROWASSERT(
-								"row[key_column_numbers[index]] expected to be Storable, not " +
-								row[key_column_numbers[index]].getClass().getName());
-						}
-					}
-					Storable storable = (Storable) row[key_column_numbers[index]];
-					if (storable.isNull())
+					if (row[key_column_numbers[index]].isNull())
 					{
 						break;
 					}
@@ -360,17 +349,17 @@
      *
 	 * @exception  StandardException  Standard exception policy.
      **/
-    static Object[] cloneRow(Object[] old_row)
+    private static DataValueDescriptor[] cloneRow(DataValueDescriptor[] old_row)
         throws StandardException
     {
-        Object[] new_row = new DataValueDescriptor[old_row.length];
+        DataValueDescriptor[] new_row = new DataValueDescriptor[old_row.length];
 
 		// the only difference between getClone and cloneObject is cloneObject does
 		// not objectify a stream.  We use getClone here.  Beetle 4896.
         for (int i = 0; i < old_row.length; i++)
         {
             if( old_row[i] != null)
-                new_row[i] = ((DataValueDescriptor) old_row[i]).getClone();
+                new_row[i] = old_row[i].getClone();
         }
 
         return(new_row);
@@ -408,7 +397,7 @@
      *
 	 * @exception  StandardException  Standard exception policy.
      **/
-    private void add_row_to_hash_table(Object[] row, boolean needsToClone)
+    private void add_row_to_hash_table(DataValueDescriptor[] row, boolean needsToClone)
 		throws StandardException
     {
         if (spillToDisk(row))
@@ -458,7 +447,7 @@
         row = null;
     }
 
-    private void doSpaceAccounting( Object[] row,
+    private void doSpaceAccounting(DataValueDescriptor[] row,
                                     boolean firstDuplicate)
     {
         inmemory_rowcnt++;
@@ -479,7 +468,7 @@
      *
      * @exception  StandardException  Standard exception policy.
      */
-    private boolean spillToDisk(Object[] row) throws StandardException {
+    private boolean spillToDisk(DataValueDescriptor[] row) throws StandardException {
         // Once we have started spilling all new rows will go to disk, even if we have freed up some
         // memory by moving duplicates to disk. This simplifies handling of duplicates and accounting.
         if( diskHashtable == null)
@@ -493,17 +482,11 @@
                 
                 return false;
             // Want to start spilling
-            if( ! (row instanceof DataValueDescriptor[]))
-            {
-                if( SanityManager.DEBUG)
-                    SanityManager.THROWASSERT( "BackingStoreHashtable row is not DataValueDescriptor[]");
-                // Do not know how to put it on disk
-                return false;
-            }
+ 
             diskHashtable = 
                 new DiskHashtable(
                        tc,
-                       (DataValueDescriptor[]) row,
+                       row,
                        (int[]) null, //TODO-COLLATION, set non default collation if necessary.
                        key_column_numbers,
                        remove_duplicates,
@@ -522,12 +505,12 @@
                 List duplicateVec = (List) duplicateValue;
                 for( int i = duplicateVec.size() - 1; i >= 0; i--)
                 {
-                    Object[] dupRow = (Object[]) duplicateVec.get(i);
+                    DataValueDescriptor[] dupRow = (DataValueDescriptor[]) duplicateVec.get(i);
                     diskHashtable.put( key, dupRow);
                 }
             }
             else
-                diskHashtable.put( key, (Object []) duplicateValue);
+                diskHashtable.put( key, (DataValueDescriptor[]) duplicateValue);
             hash_table.remove( key);
         }
         diskHashtable.put( key, row);
@@ -542,13 +525,12 @@
      * @return A guess as to how much memory the current row will
      *  use.
      */
-    private long getEstimatedMemUsage(Object [] row)
+    private long getEstimatedMemUsage(DataValueDescriptor[] row)
     {
         long rowMem = 0;
         for( int i = 0; i < row.length; i++)
         {
-            if (row[i] instanceof DataValueDescriptor)
-                rowMem += ((DataValueDescriptor) row[i]).estimateMemoryUsage();
+            rowMem += row[i].estimateMemoryUsage();
             rowMem += ClassSize.refSize;
         }
 
@@ -720,9 +702,9 @@
      *
 	 * @exception  StandardException  Standard exception policy.
      **/
-    public boolean put(
+    public boolean putRow(
     boolean     needsToClone,
-    Object[]    row)
+    DataValueDescriptor[]    row)
 		throws StandardException
     {
 		// Are any key columns null?
@@ -731,17 +713,7 @@
 			int index = 0;
 			for ( ; index < key_column_numbers.length; index++)
 			{
-				if (SanityManager.DEBUG)
-				{
-					if (! (row[key_column_numbers[index]] instanceof Storable))
-					{
-						SanityManager.THROWASSERT(
-							"row[key_column_numbers[index]] expected to be Storable, not " +
-							row[key_column_numbers[index]].getClass().getName());
-					}
-				}
-				Storable storable = (Storable) row[key_column_numbers[index]];
-				if (storable.isNull())
+				if (row[key_column_numbers[index]].isNull())
 				{
 					return false;
 				}

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/AggregateSortObserver.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/AggregateSortObserver.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/AggregateSortObserver.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/AggregateSortObserver.java Tue Jul  3 12:20:12 2007
@@ -21,24 +21,11 @@
 
 package org.apache.derby.impl.sql.execute;
 
-import org.apache.derby.iapi.store.access.SortObserver;
-import org.apache.derby.iapi.services.io.Storable;
-
-import org.apache.derby.iapi.types.UserDataValue;
-
-import org.apache.derby.iapi.types.CloneableObject;
-
-import org.apache.derby.iapi.services.io.Storable;
-import org.apache.derby.iapi.services.sanity.SanityManager;
-
 import org.apache.derby.iapi.error.StandardException;
-
+import org.apache.derby.iapi.services.sanity.SanityManager;
 import org.apache.derby.iapi.sql.execute.ExecRow;
-
 import org.apache.derby.iapi.types.DataValueDescriptor;
-
-
-import java.util.Vector;
+import org.apache.derby.iapi.types.UserDataValue;
 
 /**
  * This sort observer performs aggregation.
@@ -128,7 +115,7 @@
 		** initialized, then initialize the entire row now.	
 		*/
 		if (aggsToInitialize.length > 0 &&
-			((Storable)returnRow[firstAggregatorColumn]).isNull())
+			returnRow[firstAggregatorColumn].isNull())
 		{
 			for (int i = 0; i < aggsToInitialize.length; i++)
 			{
@@ -182,7 +169,7 @@
 		for (int i = 0; i < aggsToProcess.length; i++)
 		{
 			GenericAggregator aggregator = aggsToProcess[i];
-			if (((Storable)insertRow[aggregator.getColumnId()]).isNull())
+			if (insertRow[aggregator.getColumnId()].isNull())
 			{
 				aggregator.accumulate(insertRow, existingRow);
 			}

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/HashScanResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/HashScanResultSet.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/HashScanResultSet.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/HashScanResultSet.java Tue Jul  3 12:20:12 2007
@@ -456,25 +456,6 @@
 
 				if (columns != null)
 				{
-					if (SanityManager.DEBUG)
-					{
-						// There used to be an assertion here that the columns
-						// array was the same size as the number of columns
-						// in the compact row. This assertion no longer holds
-						// now that we're doing sparse rows, so I deleted it.
-
-						// Columns is really a Storable[]
-						for (int i = 0; i < columns.length; i++)
-						{
-							if (columns[i] != null &&
-								! (columns[i] instanceof Storable))
-							{
-								SanityManager.THROWASSERT(
-								"columns[" + i + "] expected to be Storable, not " +
-								columns[i].getClass().getName());
-							}
-						}
-					}
 
 					// See if the entry satisfies all of the other qualifiers
 

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/IndexValueRow.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/IndexValueRow.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/IndexValueRow.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/IndexValueRow.java Tue Jul  3 12:20:12 2007
@@ -63,10 +63,6 @@
 	{
 		valueRow.setRowArray(value);
 	}
-	public void setRowArray(Storable[] value) 
-	{
-		valueRow.setRowArray(value);
-	}
 
 	/**
 		Get a clone of the array form of the row that Access expects.

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java Tue Jul  3 12:20:12 2007
@@ -989,7 +989,7 @@
 		System.arraycopy(sourceRowArray, 0, hashRowArray, extraColumns, 
 				sourceRowArray.length);
 
-		ht.put(true, hashRowArray);
+		ht.putRow(true, hashRowArray);
 
 		numToHashTable++;
 	}
@@ -1158,7 +1158,7 @@
 			hashRowArray[i].setToNull();
 		}
 
-		ht.put(true, hashRowArray);
+		ht.putRow(true, hashRowArray);
 	}
 
 	/**

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ValueRow.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ValueRow.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ValueRow.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/sql/execute/ValueRow.java Tue Jul  3 12:20:12 2007
@@ -274,19 +274,6 @@
 	{
 		column = value;
 	}
-
-	public void setRowArray(Storable[] value) {
-		if (value instanceof DataValueDescriptor[]) {
-			column = (DataValueDescriptor[]) value;
-			return;
-		}
-
-		if ((column == null) || (column.length != value.length))
-			column = new DataValueDescriptor[value.length];
-
-
-		System.arraycopy(value, 0, column, 0, column.length);
-	}
 		
 	// Set the number of columns in the row to ncols, preserving
 	// the existing contents.

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/btree/BTreeForwardScan.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/btree/BTreeForwardScan.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/btree/BTreeForwardScan.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/btree/BTreeForwardScan.java Tue Jul  3 12:20:12 2007
@@ -448,7 +448,7 @@
 
                     if (hash_table != null)
                     {
-                        if (hash_table.put(false, fetch_row))
+                        if (hash_table.putRow(false, fetch_row))
                             fetch_row = null;
                     }
                     else

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericScanController.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericScanController.java?view=diff&rev=552955&r1=552954&r2=552955
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericScanController.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericScanController.java Tue Jul  3 12:20:12 2007
@@ -800,7 +800,7 @@
                     }
                     else
                     {
-                        if (hash_table.put(false, fetch_row))
+                        if (hash_table.putRow(false, fetch_row))
                         {
                             // The row was inserted into the hash table so we
                             // need to create a new row next time through.