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 ba...@apache.org on 2005/10/28 14:52:21 UTC

svn commit: r329187 [9/66] - in /db/derby/code/trunk: ./ frameworks/NetworkServer/ frameworks/NetworkServer/bin/ frameworks/embedded/bin/ java/build/ java/build/org/apache/derbyBuild/ java/build/org/apache/derbyBuild/eclipse/ java/build/org/apache/derb...

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetOpResultSet.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetOpResultSet.java?rev=329187&r1=329186&r2=329187&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetOpResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetOpResultSet.java Fri Oct 28 04:51:50 2005
@@ -1,287 +1,287 @@
-/*
-
-   Derby - Class org.apache.derby.impl.sql.execute.SetOpResultSet
-
-   Copyright 2004 The Apache Software Foundation or its licensors, as applicable.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
- */
-
-package org.apache.derby.impl.sql.execute;
-
-import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.iapi.services.loader.GeneratedMethod;
-import org.apache.derby.iapi.services.sanity.SanityManager;
-
-import org.apache.derby.iapi.sql.Activation;
-import org.apache.derby.iapi.sql.ResultDescription;
-
-import org.apache.derby.iapi.sql.execute.CursorResultSet;
-import org.apache.derby.iapi.sql.execute.ExecPreparedStatement;
-import org.apache.derby.iapi.sql.execute.ExecRow;
-import org.apache.derby.iapi.sql.execute.NoPutResultSet;
-
-import org.apache.derby.iapi.types.DataValueDescriptor;
-import org.apache.derby.iapi.types.Orderable;
-import org.apache.derby.iapi.types.RowLocation;
-
-import org.apache.derby.impl.sql.compile.IntersectOrExceptNode;
-
-/**
- * Takes the result set produced by an ordered UNION ALL of two tagged result sets and produces
- * the INTERSECT or EXCEPT of the two input result sets. This also projects out the tag, the last column
- * of the input rows.
- */
-public class SetOpResultSet extends NoPutResultSetImpl
-    implements CursorResultSet
-{
-    private final NoPutResultSet leftSource;
-    private final NoPutResultSet rightSource;
-    private final GeneratedMethod closeCleanup;
-    private final Activation activation;
-    private final int opType;
-    private final boolean all;
-    private final int resultSetNumber;
-    private DataValueDescriptor[] prevCols; /* Used to remove duplicates in the EXCEPT DISTINCT case.
-                                             * It is equal to the previously output columns.
-                                             */
-    private int rightDuplicateCount; // Number of duplicates of the current row from the right input
-    private ExecRow leftInputRow;
-    private ExecRow rightInputRow;
-
-    private final int[] intermediateOrderByColumns;
-    private final int[] intermediateOrderByDirection;
-
-    SetOpResultSet( NoPutResultSet leftSource,
-                    NoPutResultSet rightSource,
-                    Activation activation, 
-                    int resultSetNumber,
-                    long optimizerEstimatedRowCount,
-                    double optimizerEstimatedCost,
-                    int opType,
-                    boolean all,
-                    GeneratedMethod closeCleanup,
-                    int intermediateOrderByColumnsSavedObject,
-                    int intermediateOrderByDirectionSavedObject)
-    {
-		super(activation, resultSetNumber, 
-			  optimizerEstimatedRowCount, optimizerEstimatedCost);
-        this.leftSource = leftSource;
-        this.rightSource = rightSource;
-        this.activation = activation;
-        this.resultSetNumber = resultSetNumber;
-        this.opType = opType;
-        this.all = all;
-        this.closeCleanup = closeCleanup;
-        ExecPreparedStatement eps = activation.getPreparedStatement();
-        intermediateOrderByColumns = (int[]) eps.getSavedObject(intermediateOrderByColumnsSavedObject);
-        intermediateOrderByDirection = (int[]) eps.getSavedObject(intermediateOrderByDirectionSavedObject);
-		constructorTime += getElapsedMillis(beginTime);
-    }
-
-	/**
-     * open the first source.
- 	 *	@exception StandardException thrown on failure
-     */
-	public void	openCore() throws StandardException 
-	{
-		beginTime = getCurrentTimeMillis();
-		if (SanityManager.DEBUG)
-	    	SanityManager.ASSERT( ! isOpen, "SetOpProjectRestrictResultSet already open");
-
-        isOpen = true;
-        leftSource.openCore();
-        rightSource.openCore();
-        rightInputRow = rightSource.getNextRowCore();
-		numOpens++;
-
-		openTime += getElapsedMillis(beginTime);
-	} // end of openCore
-
-	/**
-     * @return the next row of the intersect or except, null if there is none
- 	 *	@exception StandardException thrown on failure
-	 */
-	public ExecRow	getNextRowCore() throws StandardException
-    {
-		beginTime = getCurrentTimeMillis();
-	    if ( isOpen )
-        {
-            while( (leftInputRow = leftSource.getNextRowCore()) != null)
-            {
-                DataValueDescriptor[] leftColumns = leftInputRow.getRowArray();
-                if( !all)
-                {
-                    if( isDuplicate( leftColumns))
-                        continue; // Get the next left row
-                    prevCols = leftInputRow.getRowArrayClone();
-                }
-                int compare = 0;
-                // Advance the right until there are no more right rows or leftRow <= rightRow
-                while( rightInputRow != null && (compare = compare( leftColumns, rightInputRow.getRowArray())) > 0)
-                    rightInputRow = rightSource.getNextRowCore();
-                
-                if( rightInputRow == null || compare < 0)
-                {
-                    // The left row is not in the right source.
-                    if( opType == IntersectOrExceptNode.EXCEPT_OP)
-                        // Output this row
-                        break;
-                }
-                else
-                {
-                    // The left and right rows are the same
-                    if( SanityManager.DEBUG)
-                        SanityManager.ASSERT( rightInputRow != null && compare == 0,
-                                              "Insert/Except execution has gotten confused.");
-                    if( all)
-                        // Just advance the right input by one row.
-                        rightInputRow = rightSource.getNextRowCore();
-                    // If !all then we will skip past duplicates on the left at the top of this loop,
-                    // which will then force us to skip past any right duplicates.
-                    if( opType == IntersectOrExceptNode.INTERSECT_OP)
-                        break; // output this row
-
-                    // opType == IntersectOrExceptNode.EXCEPT_OP
-                    // This row should not be ouput
-                }
-            }
-        }
-        currentRow = leftInputRow;
-        setCurrentRow( currentRow);
-        nextTime += getElapsedMillis(beginTime);
-        return currentRow;
-    } // end of getNextRowCore
-
-    private void advanceRightPastDuplicates( DataValueDescriptor[] leftColumns)
-        throws StandardException
-    {
-        while((rightInputRow = rightSource.getNextRowCore()) != null
-              && compare( leftColumns, rightInputRow.getRowArray()) == 0)
-            ;
-    } // end of advanceRightPastDuplicates
-        
-    private int compare( DataValueDescriptor[] leftCols, DataValueDescriptor[] rightCols)
-        throws StandardException
-    {
-        for( int i = 0; i < intermediateOrderByColumns.length; i++)
-        {
-            int colIdx = intermediateOrderByColumns[i];
-            if( leftCols[colIdx].compare( Orderable.ORDER_OP_LESSTHAN,
-                                          rightCols[colIdx],
-                                          true, // nulls sort high
-                                          false))
-                return -1 * intermediateOrderByDirection[i];
-            if( ! leftCols[colIdx].compare( Orderable.ORDER_OP_EQUALS,
-                                            rightCols[colIdx],
-                                            true, // nulls sort high
-                                            false))
-                return intermediateOrderByDirection[i];
-        }
-        return 0;
-    } // end of compare
-    
-    private boolean isDuplicate( DataValueDescriptor[] curColumns)
-        throws StandardException
-    {
-        if( prevCols == null)
-            return false;
-        /* Note that intermediateOrderByColumns.length can be less than prevCols.length if we know that a
-         * subset of the columns is a unique key. In that case we only need to look at the unique key.
-         */
-        for( int i = 0; i < intermediateOrderByColumns.length; i++)
-        {
-            int colIdx = intermediateOrderByColumns[i];
-            if( ! curColumns[colIdx].compare( Orderable.ORDER_OP_EQUALS, prevCols[colIdx], true, false))
-                return false;
-        }
-        return true;
-    }
-
-	public ExecRow getCurrentRow()
-    {
-        return currentRow;
-    }
-    
-	/**
-	 * If the result set has been opened,
-	 * close the currently open source.
-	 *
-	 * @exception StandardException thrown on error
-	 */
-	public void	close() throws StandardException
-	{
-		beginTime = getCurrentTimeMillis();
-		if ( isOpen )
-        {
-			if (closeCleanup != null)
-				closeCleanup.invoke(activation); // let activation tidy up
-	    	clearCurrentRow();
-			currentRow = null;
-            prevCols = null;
-            leftSource.close();
-            rightSource.close();
-            super.close();
-        }
-		else
-			if (SanityManager.DEBUG)
-				SanityManager.DEBUG("CloseRepeatInfo","Close of UnionResultSet repeated");
-
-		closeTime += getElapsedMillis(beginTime);
-	} // end of close
-
-	public void	finish() throws StandardException
-	{
-		leftSource.finish();
-		rightSource.finish();
-		finishAndRTS();
-	}
-
-	/**
-	 * Return the total amount of time spent in this ResultSet
-	 *
-	 * @param type	CURRENT_RESULTSET_ONLY - time spent only in this ResultSet
-	 *				ENTIRE_RESULTSET_TREE  - time spent in this ResultSet and below.
-	 *
-	 * @return long		The total amount of time spent (in milliseconds).
-	 */
-	public long getTimeSpent(int type)
-	{
-		long totTime = constructorTime + openTime + nextTime + closeTime;
-
-		if (type == NoPutResultSet.CURRENT_RESULTSET_ONLY)
-		{
-			return	totTime - leftSource.getTimeSpent(ENTIRE_RESULTSET_TREE)
-              - rightSource.getTimeSpent(ENTIRE_RESULTSET_TREE);
-		}
-		else
-		{
-			return totTime;
-		}
-	} // end of getTimeSpent
-
-	/**
-     * @see CursorResultSet
-	 *
-     * @return the row location of the current cursor row.
-     * @exception StandardException thrown on failure
-	 */
-	public RowLocation getRowLocation() throws StandardException
-    {
-        // RESOLVE: What is the row location of an INTERSECT supposed to be: the location from the
-        // left side, the right side, or null?
-        return ((CursorResultSet)leftSource).getRowLocation();
-    }
-}
+/*
+
+   Derby - Class org.apache.derby.impl.sql.execute.SetOpResultSet
+
+   Copyright 2004 The Apache Software Foundation or its licensors, as applicable.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ */
+
+package org.apache.derby.impl.sql.execute;
+
+import org.apache.derby.iapi.error.StandardException;
+
+import org.apache.derby.iapi.services.loader.GeneratedMethod;
+import org.apache.derby.iapi.services.sanity.SanityManager;
+
+import org.apache.derby.iapi.sql.Activation;
+import org.apache.derby.iapi.sql.ResultDescription;
+
+import org.apache.derby.iapi.sql.execute.CursorResultSet;
+import org.apache.derby.iapi.sql.execute.ExecPreparedStatement;
+import org.apache.derby.iapi.sql.execute.ExecRow;
+import org.apache.derby.iapi.sql.execute.NoPutResultSet;
+
+import org.apache.derby.iapi.types.DataValueDescriptor;
+import org.apache.derby.iapi.types.Orderable;
+import org.apache.derby.iapi.types.RowLocation;
+
+import org.apache.derby.impl.sql.compile.IntersectOrExceptNode;
+
+/**
+ * Takes the result set produced by an ordered UNION ALL of two tagged result sets and produces
+ * the INTERSECT or EXCEPT of the two input result sets. This also projects out the tag, the last column
+ * of the input rows.
+ */
+public class SetOpResultSet extends NoPutResultSetImpl
+    implements CursorResultSet
+{
+    private final NoPutResultSet leftSource;
+    private final NoPutResultSet rightSource;
+    private final GeneratedMethod closeCleanup;
+    private final Activation activation;
+    private final int opType;
+    private final boolean all;
+    private final int resultSetNumber;
+    private DataValueDescriptor[] prevCols; /* Used to remove duplicates in the EXCEPT DISTINCT case.
+                                             * It is equal to the previously output columns.
+                                             */
+    private int rightDuplicateCount; // Number of duplicates of the current row from the right input
+    private ExecRow leftInputRow;
+    private ExecRow rightInputRow;
+
+    private final int[] intermediateOrderByColumns;
+    private final int[] intermediateOrderByDirection;
+
+    SetOpResultSet( NoPutResultSet leftSource,
+                    NoPutResultSet rightSource,
+                    Activation activation, 
+                    int resultSetNumber,
+                    long optimizerEstimatedRowCount,
+                    double optimizerEstimatedCost,
+                    int opType,
+                    boolean all,
+                    GeneratedMethod closeCleanup,
+                    int intermediateOrderByColumnsSavedObject,
+                    int intermediateOrderByDirectionSavedObject)
+    {
+		super(activation, resultSetNumber, 
+			  optimizerEstimatedRowCount, optimizerEstimatedCost);
+        this.leftSource = leftSource;
+        this.rightSource = rightSource;
+        this.activation = activation;
+        this.resultSetNumber = resultSetNumber;
+        this.opType = opType;
+        this.all = all;
+        this.closeCleanup = closeCleanup;
+        ExecPreparedStatement eps = activation.getPreparedStatement();
+        intermediateOrderByColumns = (int[]) eps.getSavedObject(intermediateOrderByColumnsSavedObject);
+        intermediateOrderByDirection = (int[]) eps.getSavedObject(intermediateOrderByDirectionSavedObject);
+		constructorTime += getElapsedMillis(beginTime);
+    }
+
+	/**
+     * open the first source.
+ 	 *	@exception StandardException thrown on failure
+     */
+	public void	openCore() throws StandardException 
+	{
+		beginTime = getCurrentTimeMillis();
+		if (SanityManager.DEBUG)
+	    	SanityManager.ASSERT( ! isOpen, "SetOpProjectRestrictResultSet already open");
+
+        isOpen = true;
+        leftSource.openCore();
+        rightSource.openCore();
+        rightInputRow = rightSource.getNextRowCore();
+		numOpens++;
+
+		openTime += getElapsedMillis(beginTime);
+	} // end of openCore
+
+	/**
+     * @return the next row of the intersect or except, null if there is none
+ 	 *	@exception StandardException thrown on failure
+	 */
+	public ExecRow	getNextRowCore() throws StandardException
+    {
+		beginTime = getCurrentTimeMillis();
+	    if ( isOpen )
+        {
+            while( (leftInputRow = leftSource.getNextRowCore()) != null)
+            {
+                DataValueDescriptor[] leftColumns = leftInputRow.getRowArray();
+                if( !all)
+                {
+                    if( isDuplicate( leftColumns))
+                        continue; // Get the next left row
+                    prevCols = leftInputRow.getRowArrayClone();
+                }
+                int compare = 0;
+                // Advance the right until there are no more right rows or leftRow <= rightRow
+                while( rightInputRow != null && (compare = compare( leftColumns, rightInputRow.getRowArray())) > 0)
+                    rightInputRow = rightSource.getNextRowCore();
+                
+                if( rightInputRow == null || compare < 0)
+                {
+                    // The left row is not in the right source.
+                    if( opType == IntersectOrExceptNode.EXCEPT_OP)
+                        // Output this row
+                        break;
+                }
+                else
+                {
+                    // The left and right rows are the same
+                    if( SanityManager.DEBUG)
+                        SanityManager.ASSERT( rightInputRow != null && compare == 0,
+                                              "Insert/Except execution has gotten confused.");
+                    if( all)
+                        // Just advance the right input by one row.
+                        rightInputRow = rightSource.getNextRowCore();
+                    // If !all then we will skip past duplicates on the left at the top of this loop,
+                    // which will then force us to skip past any right duplicates.
+                    if( opType == IntersectOrExceptNode.INTERSECT_OP)
+                        break; // output this row
+
+                    // opType == IntersectOrExceptNode.EXCEPT_OP
+                    // This row should not be ouput
+                }
+            }
+        }
+        currentRow = leftInputRow;
+        setCurrentRow( currentRow);
+        nextTime += getElapsedMillis(beginTime);
+        return currentRow;
+    } // end of getNextRowCore
+
+    private void advanceRightPastDuplicates( DataValueDescriptor[] leftColumns)
+        throws StandardException
+    {
+        while((rightInputRow = rightSource.getNextRowCore()) != null
+              && compare( leftColumns, rightInputRow.getRowArray()) == 0)
+            ;
+    } // end of advanceRightPastDuplicates
+        
+    private int compare( DataValueDescriptor[] leftCols, DataValueDescriptor[] rightCols)
+        throws StandardException
+    {
+        for( int i = 0; i < intermediateOrderByColumns.length; i++)
+        {
+            int colIdx = intermediateOrderByColumns[i];
+            if( leftCols[colIdx].compare( Orderable.ORDER_OP_LESSTHAN,
+                                          rightCols[colIdx],
+                                          true, // nulls sort high
+                                          false))
+                return -1 * intermediateOrderByDirection[i];
+            if( ! leftCols[colIdx].compare( Orderable.ORDER_OP_EQUALS,
+                                            rightCols[colIdx],
+                                            true, // nulls sort high
+                                            false))
+                return intermediateOrderByDirection[i];
+        }
+        return 0;
+    } // end of compare
+    
+    private boolean isDuplicate( DataValueDescriptor[] curColumns)
+        throws StandardException
+    {
+        if( prevCols == null)
+            return false;
+        /* Note that intermediateOrderByColumns.length can be less than prevCols.length if we know that a
+         * subset of the columns is a unique key. In that case we only need to look at the unique key.
+         */
+        for( int i = 0; i < intermediateOrderByColumns.length; i++)
+        {
+            int colIdx = intermediateOrderByColumns[i];
+            if( ! curColumns[colIdx].compare( Orderable.ORDER_OP_EQUALS, prevCols[colIdx], true, false))
+                return false;
+        }
+        return true;
+    }
+
+	public ExecRow getCurrentRow()
+    {
+        return currentRow;
+    }
+    
+	/**
+	 * If the result set has been opened,
+	 * close the currently open source.
+	 *
+	 * @exception StandardException thrown on error
+	 */
+	public void	close() throws StandardException
+	{
+		beginTime = getCurrentTimeMillis();
+		if ( isOpen )
+        {
+			if (closeCleanup != null)
+				closeCleanup.invoke(activation); // let activation tidy up
+	    	clearCurrentRow();
+			currentRow = null;
+            prevCols = null;
+            leftSource.close();
+            rightSource.close();
+            super.close();
+        }
+		else
+			if (SanityManager.DEBUG)
+				SanityManager.DEBUG("CloseRepeatInfo","Close of UnionResultSet repeated");
+
+		closeTime += getElapsedMillis(beginTime);
+	} // end of close
+
+	public void	finish() throws StandardException
+	{
+		leftSource.finish();
+		rightSource.finish();
+		finishAndRTS();
+	}
+
+	/**
+	 * Return the total amount of time spent in this ResultSet
+	 *
+	 * @param type	CURRENT_RESULTSET_ONLY - time spent only in this ResultSet
+	 *				ENTIRE_RESULTSET_TREE  - time spent in this ResultSet and below.
+	 *
+	 * @return long		The total amount of time spent (in milliseconds).
+	 */
+	public long getTimeSpent(int type)
+	{
+		long totTime = constructorTime + openTime + nextTime + closeTime;
+
+		if (type == NoPutResultSet.CURRENT_RESULTSET_ONLY)
+		{
+			return	totTime - leftSource.getTimeSpent(ENTIRE_RESULTSET_TREE)
+              - rightSource.getTimeSpent(ENTIRE_RESULTSET_TREE);
+		}
+		else
+		{
+			return totTime;
+		}
+	} // end of getTimeSpent
+
+	/**
+     * @see CursorResultSet
+	 *
+     * @return the row location of the current cursor row.
+     * @exception StandardException thrown on failure
+	 */
+	public RowLocation getRowLocation() throws StandardException
+    {
+        // RESOLVE: What is the row location of an INTERSECT supposed to be: the location from the
+        // left side, the right side, or null?
+        return ((CursorResultSet)leftSource).getRowLocation();
+    }
+}

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetOpResultSet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetSchemaConstantAction.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetTransactionIsolationConstantAction.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SetTransactionResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SortResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/StatementTriggerExecutor.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SumAggregator.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/SystemAggregator.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TableScanResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TemporaryRowHolderImpl.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TemporaryRowHolderResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TriggerEvent.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TriggerEventActivator.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TriggerEvents.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/TriggerInfo.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/UnionResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/UniqueIndexSortObserver.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/UpdatableVTIConstantAction.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/UpdateConstantAction.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/UpdateResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/UpdateStatisticsConstantAction.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/UpdateVTIResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/VTIResultSet.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/ValueRow.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/WriteCursorConstantAction.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealAnyResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealBasicNoPutResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealCurrentOfStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDeleteCascadeResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDeleteResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDeleteVTIResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDistinctScalarAggregateStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDistinctScanStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealGroupedAggregateStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashJoinStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashLeftOuterJoinStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashScanStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashTableStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealIndexRowToBaseRowStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealInsertResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealInsertVTIResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealJoinResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealLastIndexKeyScanStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealMaterializedResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealNestedLoopJoinStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealNestedLoopLeftOuterJoinStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealNoPutResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealNoRowsResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealNormalizeResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealOnceResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealProjectRestrictStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealRowResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealScalarAggregateStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealScrollInsensitiveResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealSortStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealTableScanStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealUnionResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealUpdateResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealVTIStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/ResultSetStatistics.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RunTimeStatisticsImpl.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/BackingStoreHashTableFromScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/CacheableConglomerate.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/PC_XenaVersion.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/PropertyConglomerate.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMTransaction.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMTransactionContext.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RllRAMAccessManager.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/StorableFormatId.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/UTF.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/UTFQualifier.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTree.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeCostController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeForwardScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeLockingPolicy.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeMaxScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreePostCommit.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeRowPosition.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BTreeScanInfo.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BranchControlRow.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/BranchRow.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/ControlRow.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/D_BTreeController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/LeafControlRow.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/OpenBTree.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/SearchParameters.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/WaitError.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2ICostController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IFactory.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IForwardScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IMaxScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2INoLocking.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking1.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking2.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLocking3.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IRowLockingRR.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IStaticCompiledInfo.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2ITableLocking3.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/B2IUndo.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/D_B2IController.java
            ('svn:executable' removed)

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/package.html
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/package.html?rev=329187&r1=329186&r2=329187&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/package.html (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/package.html Fri Oct 28 04:51:50 2005
@@ -1,40 +1,40 @@
-<html>
-<head>
-<title>BTree Indexes with Locking</title>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-<body>
-<p>
-Implements classes used by the language layer to implement
-SQL secondary indexes. The classes here extend and use the classes in
-{@link org.apache.derby.impl.store.access.btree} to implement 
-a locked btree index.
-<p>
-The key to understanding the class layout is to understand the public
-store interfaces in
-{@link org.apache.derby.iapi.store.access.conglomerate}, which contains
-the shared interfaces that must be implemented by all access methods. 
-Currently Derby implements heap and btree index access methods. Users of 
-access methods use the same interface no matter what the underlying 
-type or particular implementation of the access method. Therefore, Derby 
-can support multiple types of btree index implementations, which if done 
-right should require no changes to actual users of the access methods.
-<p>
-In reality the interfaces would have to change in some ways to 
-support a radically different kind of access method, such as 
-<a href="http://gist.cs.berkeley.edu/gist1.html">GiST</a>. But 
-the implementor should enhance the interfaces in the conglomerate 
-package so that these can then be supported by all existing access 
-methods.
-<h2>Isolation Levels</h2>
-<p>Isolation level implementation in the B-Tree index is done with data
-only locking, i.e., locks on secondary index rows are actually locks on the
-data rows that they point to. The specifics of particular isolation levels
-are hidden in various implementations of the {@link org.apache.derby.impl.store.access.btree.BTreeLockingPolicy BTreeLockingPolicy} class.  
-The classes which do scans, deletes, and inserts do not have isolation 
-specific code, instead they make lock calls using BTreeLockingPolicy 
-interfaces, and then depending on the isolation level one of the implmentations
-does the actual locking.
-</p>
-</body>
+<html>
+<head>
+<title>BTree Indexes with Locking</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+</head>
+<body>
+<p>
+Implements classes used by the language layer to implement
+SQL secondary indexes. The classes here extend and use the classes in
+{@link org.apache.derby.impl.store.access.btree} to implement 
+a locked btree index.
+<p>
+The key to understanding the class layout is to understand the public
+store interfaces in
+{@link org.apache.derby.iapi.store.access.conglomerate}, which contains
+the shared interfaces that must be implemented by all access methods. 
+Currently Derby implements heap and btree index access methods. Users of 
+access methods use the same interface no matter what the underlying 
+type or particular implementation of the access method. Therefore, Derby 
+can support multiple types of btree index implementations, which if done 
+right should require no changes to actual users of the access methods.
+<p>
+In reality the interfaces would have to change in some ways to 
+support a radically different kind of access method, such as 
+<a href="http://gist.cs.berkeley.edu/gist1.html">GiST</a>. But 
+the implementor should enhance the interfaces in the conglomerate 
+package so that these can then be supported by all existing access 
+methods.
+<h2>Isolation Levels</h2>
+<p>Isolation level implementation in the B-Tree index is done with data
+only locking, i.e., locks on secondary index rows are actually locks on the
+data rows that they point to. The specifics of particular isolation levels
+are hidden in various implementations of the {@link org.apache.derby.impl.store.access.btree.BTreeLockingPolicy BTreeLockingPolicy} class.  
+The classes which do scans, deletes, and inserts do not have isolation 
+specific code, instead they make lock calls using BTreeLockingPolicy 
+interfaces, and then depending on the isolation level one of the implmentations
+does the actual locking.
+</p>
+</body>
 </html>

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/btree/index/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/BinaryOrderableWrapper.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/ConglomerateUtil.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericConglomerate.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericConglomerateController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericCostController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/GenericScanController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/OpenConglomerate.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/OpenConglomerateScratchSpace.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/RowPosition.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/conglomerate/TemplateRow.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/D_HeapController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/Heap.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapClassInfo.java
            ('svn:executable' removed)

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapCompressScan.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapCompressScan.java?rev=329187&r1=329186&r2=329187&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapCompressScan.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapCompressScan.java Fri Oct 28 04:51:50 2005
@@ -1,439 +1,439 @@
-/*
-
-   Derby - Class org.apache.derby.impl.store.access.heap.HeapScan
-
-   Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-*/
-
-package org.apache.derby.impl.store.access.heap;
-
-
-/**
-
-  A heap scan object represents an instance of an scan on a heap conglomerate.
-
-**/
-
-import org.apache.derby.iapi.reference.SQLState;
-
-import org.apache.derby.iapi.services.sanity.SanityManager;
-
-import org.apache.derby.iapi.services.io.Storable;
-
-import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.iapi.store.access.conglomerate.Conglomerate;
-import org.apache.derby.iapi.store.access.conglomerate.LogicalUndo;
-import org.apache.derby.iapi.store.access.conglomerate.ScanManager;
-import org.apache.derby.iapi.store.access.conglomerate.TransactionManager;
-
-import org.apache.derby.iapi.store.access.ConglomerateController;
-import org.apache.derby.iapi.store.access.DynamicCompiledOpenConglomInfo;
-import org.apache.derby.iapi.store.access.Qualifier;
-import org.apache.derby.iapi.store.access.RowUtil;
-import org.apache.derby.iapi.store.access.ScanInfo;
-import org.apache.derby.iapi.store.access.ScanController;
-import org.apache.derby.iapi.store.access.SpaceInfo;
-import org.apache.derby.iapi.store.access.TransactionController;
-
-import org.apache.derby.iapi.types.RowLocation;
-
-import org.apache.derby.iapi.store.raw.ContainerHandle;
-import org.apache.derby.iapi.store.raw.LockingPolicy;
-import org.apache.derby.iapi.store.raw.Transaction;
-import org.apache.derby.iapi.store.raw.Page;
-import org.apache.derby.iapi.store.raw.RecordHandle;
-
-import org.apache.derby.iapi.types.DataValueDescriptor;
-
-import org.apache.derby.impl.store.access.conglomerate.ConglomerateUtil;
-import org.apache.derby.impl.store.access.conglomerate.GenericScanController;
-import org.apache.derby.impl.store.access.conglomerate.RowPosition;
-
-import org.apache.derby.iapi.store.access.BackingStoreHashtable;
-import org.apache.derby.iapi.services.io.FormatableBitSet;
-
-import java.util.Hashtable;
-import java.util.Vector;
-
-class HeapCompressScan 
-    extends HeapScan
-{
-
-    /**************************************************************************
-     * Constants of HeapScan
-     **************************************************************************
-     */
-
-    /**************************************************************************
-     * Fields of HeapScan
-     **************************************************************************
-     */
-    private long pagenum_to_start_moving_rows = -1;
-
-
-
-    /**************************************************************************
-     * Constructors for This class:
-     **************************************************************************
-     */
-
-	/**
-	 ** The only constructor for a HeapCompressScan returns a scan in the
-	 ** closed state, the caller must call open.
-	 **/
-	
-	public HeapCompressScan()
-	{
-	}
-
-    /**************************************************************************
-     * Protected override implementation of routines in
-     *     GenericController class:
-     **************************************************************************
-     */
-
-    public int fetchNextGroup(
-    DataValueDescriptor[][] row_array,
-    RowLocation[]           old_rowloc_array,
-    RowLocation[]           new_rowloc_array)
-        throws StandardException
-	{
-        return(fetchRowsForCompress(
-                    row_array, old_rowloc_array, new_rowloc_array));
-    }
-
-    /**
-     * Fetch the next N rows from the table.
-     * <p>
-     * Utility routine used by both fetchSet() and fetchNextGroup().
-     *
-	 * @exception  StandardException  Standard exception policy.
-     **/
-    private int fetchRowsForCompress(
-    DataValueDescriptor[][] row_array,
-    RowLocation[]           oldrowloc_array,
-    RowLocation[]           newrowloc_array)
-        throws StandardException
-	{
-        int                     ret_row_count           = 0;
-        DataValueDescriptor[]   fetch_row               = null;
-
-        if (SanityManager.DEBUG)
-        {
-            SanityManager.ASSERT(row_array != null);
-            SanityManager.ASSERT(row_array[0] != null,
-                    "first array slot in fetchNextGroup() must be non-null.");
-        }
-
-        if (getScanState() == SCAN_INPROGRESS)
-        {
-            positionAtResumeScan(scan_position);
-        }
-        else if (getScanState() == SCAN_INIT)
-        {
-            // For first implementation of defragment use a conservative
-            // approach, only move rows from the last "number of free pages"
-            // of the container.  Should always at least be able to empty
-            // that number of pages.
-            SpaceInfo info = 
-                open_conglom.getContainer().getSpaceInfo();
-
-            pagenum_to_start_moving_rows = info.getNumAllocatedPages();
-
-            positionAtStartForForwardScan(scan_position);
-        }
-        else if (getScanState() == SCAN_HOLD_INPROGRESS)
-        {
-            open_conglom.reopen();
-
-            if (SanityManager.DEBUG)
-            {
-                SanityManager.ASSERT(
-                    scan_position.current_rh != null, this.toString()); 
-            }
-
-            // reposition the scan at the row just before the next one to 
-            // return.
-            // This routine handles the mess of repositioning if the row or 
-            // the page has disappeared. This can happen if a lock was not 
-            // held on the row while not holding the latch.
-            open_conglom.latchPageAndRepositionScan(scan_position);
-
-            setScanState(SCAN_INPROGRESS);
-        }
-        else if (getScanState() == SCAN_HOLD_INIT)
-        {
-            open_conglom.reopen();
-
-            positionAtStartForForwardScan(scan_position);
-
-        }
-        else
-        {
-            if (SanityManager.DEBUG)
-                SanityManager.ASSERT(getScanState() == SCAN_DONE);
-
-            return(0);
-        }
-
-        // At this point:
-        // scan_position.current_page is latched.  
-        // scan_position.current_slot is the slot on scan_position.current_page
-        // just before the "next" record this routine should process.
-
-        // loop through successive pages and successive slots on those
-        // pages.  Stop when either the last page is reached 
-        // (scan_position.current_page will be null).  
-        // Along the way apply qualifiers to skip rows which don't qualify.
-
-		while (scan_position.current_page != null)
-		{
-			while ((scan_position.current_slot + 1) < 
-                    scan_position.current_page.recordCount())
-			{
-                // Allocate a new row to read the row into.
-                if (fetch_row == null)
-                {
-                     // point at allocated row in array if one exists.
-                    if (row_array[ret_row_count] == null)
-                    {
-                        row_array[ret_row_count] = 
-                          open_conglom.getRuntimeMem().get_row_for_export();
-                    }
-
-                    fetch_row = row_array[ret_row_count];
-                }
-
-                // move scan current position forward.
-                scan_position.positionAtNextSlot();
-
-                this.stat_numrows_visited++;
-
-                if (scan_position.current_page.isDeletedAtSlot(
-                        scan_position.current_slot))
-                {
-                    // At this point assume table level lock, and that this
-                    // transcation did not delete the row, so any
-                    // deleted row must be a committed deleted row which can
-                    // be purged.
-                    scan_position.current_page.purgeAtSlot(
-                        scan_position.current_slot, 1, false);
-
-                    // raw store shuffles following rows down, so 
-                    // postion the scan at previous slot, so next trip
-                    // through loop will pick up correct row.
-                    scan_position.positionAtPrevSlot();
-                    continue;
-                }
-
-                if (scan_position.current_page.getPageNumber() > 
-                        pagenum_to_start_moving_rows)
-                {
-                    // Give raw store a chance to move the row for compression
-                    RecordHandle[] old_handle = new RecordHandle[1];
-                    RecordHandle[] new_handle = new RecordHandle[1];
-                    long[]         new_pageno = new long[1];
-
-                    if (scan_position.current_page.moveRecordForCompressAtSlot(
-                            scan_position.current_slot,
-                            fetch_row,
-                            old_handle,
-                            new_handle) == 1)
-                    {
-                        // raw store moved the row, so bump the row count but 
-                        // postion the scan at previous slot, so next trip
-                        // through loop will pick up correct row.
-                        // The subsequent rows will have been moved forward
-                        // to take place of moved row.
-                        scan_position.positionAtPrevSlot();
-
-                        ret_row_count++;
-                        stat_numrows_qualified++;
-
-
-                        setRowLocationArray(
-                            oldrowloc_array, ret_row_count - 1, old_handle[0]);
-                        setRowLocationArray(
-                            newrowloc_array, ret_row_count - 1, new_handle[0]);
-
-                        fetch_row = null;
-
-                    }
-                }
-			}
-
-            this.stat_numpages_visited++;
-
-            if (scan_position.current_page.recordCount() == 0)
-            {
-                // need to set the scan position before removing page
-                scan_position.current_pageno = 
-                    scan_position.current_page.getPageNumber();
-
-                open_conglom.getContainer().removePage(
-                    scan_position.current_page);
-
-                // removePage unlatches the page, and page not available
-                // again until after commit.
-                scan_position.current_page = null;
-            }
-            else
-            {
-                positionAfterThisPage(scan_position);
-                scan_position.unlatch();
-            }
-
-
-            if (ret_row_count > 0)
-            {
-                // rows were moved on this page, give caller a chance to
-                // process those and free up access to the table.
-                return(ret_row_count);
-            }
-            else
-            {
-                // no rows were moved so go ahead and commit the transaction
-                // to allow other threads a chance at table.  Compress does
-                // need to sync as long as transaction either completely 
-                // commits or backs out, either is fine.
-                /*
-                open_conglom.getXactMgr().commitNoSync(
-                    TransactionController.RELEASE_LOCKS);
-                open_conglom.reopen();
-                */
-                positionAtResumeScan(scan_position);
-
-            }
-		}
-
-        // Reached last page of scan.
-        positionAtDoneScan(scan_position);
-
-        // we need to decrement when we stop scan at the end of the table.
-        this.stat_numpages_visited--;
-
-		return(ret_row_count);
-    }
-
-    /**
-     * Reposition the scan upon entering the fetchRows loop.
-     * <p>
-     * Called upon entering fetchRows() while in the SCAN_INPROGRESS state.
-     * Do work necessary to look at rows in the current page of the scan.
-     * <p>
-     * The default implementation uses a record handle to maintain a scan
-     * position.  It will get the latch again on the current
-     * scan position and set the slot to the current record handle.
-     *
-	 * @exception  StandardException  Standard exception policy.
-     **/
-    protected void positionAtResumeScan(
-    RowPosition pos)
-		throws StandardException
-    {
-        // reposition the scan at the row just before the next one to return.
-        // This routine handles the mess of repositioning if the row or the
-        // page has disappeared. This can happen if a lock was not held on the
-        // row while not holding the latch.
-        open_conglom.latchPageAndRepositionScan(scan_position);
-    }
-
-    /**
-     * Move the scan from SCAN_INIT to SCAN_INPROGRESS.
-     * <p>
-     * This routine is called to move the scan from SCAN_INIT to 
-     * SCAN_INPROGRESS.  Upon return from this routine it is expected
-     * that scan_position is set such that calling the generic 
-     * scan loop will reach the first row of the scan.  Note that this
-     * usually means setting the scan_postion to one before the 1st 
-     * row to be returned.
-     * <p>
-     *
-	 * @exception  StandardException  Standard exception policy.
-     **/
-    protected void positionAtStartForForwardScan(
-    RowPosition pos)
-        throws StandardException
-    {
-        if (pos.current_rh == null)
-        {
-            // 1st positioning of scan (delayed from openScan).  Do not
-            // compress the first page, there is no previous page to move
-            // rows to, and moving the special Heap metadata row from the
-            // first page would cause problems.  Setting to next page is
-            // why this scan overrides generic implementation.
-            pos.current_page = 
-                open_conglom.getContainer().getNextPage(
-                    ContainerHandle.FIRST_PAGE_NUMBER);
-
-            // set up for scan to continue at beginning of page following
-            // the first page of the container.
-            pos.current_slot = Page.FIRST_SLOT_NUMBER - 1;
-        }
-        else
-        {
-            // 1st positioning of scan following a reopenScanByRowLocation
-
-            // reposition the scan at the row just before the next one to 
-            // return.  This routine handles the mess of repositioning if the 
-            // row or the page has disappeared. This can happen if a lock was 
-            // not held on the row while not holding the latch.
-            open_conglom.latchPageAndRepositionScan(pos);
-
-            // set up for scan to at the specified record handle (position one
-            // before it so that the loop increment and find it).
-            pos.current_slot -= 1;
-        }
-
-        pos.current_rh              = null;
-        this.stat_numpages_visited  = 1;
-        this.setScanState(SCAN_INPROGRESS);
-    }
-
-
-    /**************************************************************************
-     * Private/Protected methods of This class:
-     **************************************************************************
-     */
-
-    /**
-     * Set scan position to just after current page.
-     * <p>
-     * Used to set the position of the scan if a record handle is not
-     * avaliable.  In this case current_rh will be set to null, and 
-     * current_pageno will be set to the current page number.
-     * On resume of the scan, the scan will be set to just before the first
-     * row returned form a getNextPage(current_pageno) call.
-     * <p>
-     * A positionAtResumeScan(scan_position) is necessary to continue the
-     * scan after this call.
-     *
-	 * @exception  StandardException  Standard exception policy.
-     **/
-    private void positionAfterThisPage(
-    RowPosition pos)
-        throws StandardException
-    {
-        pos.current_rh = null;
-        pos.current_pageno = pos.current_page.getPageNumber();
-    }
-
-	/*
-	** Methods of ScanManager
-	*/
-
-}
+/*
+
+   Derby - Class org.apache.derby.impl.store.access.heap.HeapScan
+
+   Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+*/
+
+package org.apache.derby.impl.store.access.heap;
+
+
+/**
+
+  A heap scan object represents an instance of an scan on a heap conglomerate.
+
+**/
+
+import org.apache.derby.iapi.reference.SQLState;
+
+import org.apache.derby.iapi.services.sanity.SanityManager;
+
+import org.apache.derby.iapi.services.io.Storable;
+
+import org.apache.derby.iapi.error.StandardException;
+
+import org.apache.derby.iapi.store.access.conglomerate.Conglomerate;
+import org.apache.derby.iapi.store.access.conglomerate.LogicalUndo;
+import org.apache.derby.iapi.store.access.conglomerate.ScanManager;
+import org.apache.derby.iapi.store.access.conglomerate.TransactionManager;
+
+import org.apache.derby.iapi.store.access.ConglomerateController;
+import org.apache.derby.iapi.store.access.DynamicCompiledOpenConglomInfo;
+import org.apache.derby.iapi.store.access.Qualifier;
+import org.apache.derby.iapi.store.access.RowUtil;
+import org.apache.derby.iapi.store.access.ScanInfo;
+import org.apache.derby.iapi.store.access.ScanController;
+import org.apache.derby.iapi.store.access.SpaceInfo;
+import org.apache.derby.iapi.store.access.TransactionController;
+
+import org.apache.derby.iapi.types.RowLocation;
+
+import org.apache.derby.iapi.store.raw.ContainerHandle;
+import org.apache.derby.iapi.store.raw.LockingPolicy;
+import org.apache.derby.iapi.store.raw.Transaction;
+import org.apache.derby.iapi.store.raw.Page;
+import org.apache.derby.iapi.store.raw.RecordHandle;
+
+import org.apache.derby.iapi.types.DataValueDescriptor;
+
+import org.apache.derby.impl.store.access.conglomerate.ConglomerateUtil;
+import org.apache.derby.impl.store.access.conglomerate.GenericScanController;
+import org.apache.derby.impl.store.access.conglomerate.RowPosition;
+
+import org.apache.derby.iapi.store.access.BackingStoreHashtable;
+import org.apache.derby.iapi.services.io.FormatableBitSet;
+
+import java.util.Hashtable;
+import java.util.Vector;
+
+class HeapCompressScan 
+    extends HeapScan
+{
+
+    /**************************************************************************
+     * Constants of HeapScan
+     **************************************************************************
+     */
+
+    /**************************************************************************
+     * Fields of HeapScan
+     **************************************************************************
+     */
+    private long pagenum_to_start_moving_rows = -1;
+
+
+
+    /**************************************************************************
+     * Constructors for This class:
+     **************************************************************************
+     */
+
+	/**
+	 ** The only constructor for a HeapCompressScan returns a scan in the
+	 ** closed state, the caller must call open.
+	 **/
+	
+	public HeapCompressScan()
+	{
+	}
+
+    /**************************************************************************
+     * Protected override implementation of routines in
+     *     GenericController class:
+     **************************************************************************
+     */
+
+    public int fetchNextGroup(
+    DataValueDescriptor[][] row_array,
+    RowLocation[]           old_rowloc_array,
+    RowLocation[]           new_rowloc_array)
+        throws StandardException
+	{
+        return(fetchRowsForCompress(
+                    row_array, old_rowloc_array, new_rowloc_array));
+    }
+
+    /**
+     * Fetch the next N rows from the table.
+     * <p>
+     * Utility routine used by both fetchSet() and fetchNextGroup().
+     *
+	 * @exception  StandardException  Standard exception policy.
+     **/
+    private int fetchRowsForCompress(
+    DataValueDescriptor[][] row_array,
+    RowLocation[]           oldrowloc_array,
+    RowLocation[]           newrowloc_array)
+        throws StandardException
+	{
+        int                     ret_row_count           = 0;
+        DataValueDescriptor[]   fetch_row               = null;
+
+        if (SanityManager.DEBUG)
+        {
+            SanityManager.ASSERT(row_array != null);
+            SanityManager.ASSERT(row_array[0] != null,
+                    "first array slot in fetchNextGroup() must be non-null.");
+        }
+
+        if (getScanState() == SCAN_INPROGRESS)
+        {
+            positionAtResumeScan(scan_position);
+        }
+        else if (getScanState() == SCAN_INIT)
+        {
+            // For first implementation of defragment use a conservative
+            // approach, only move rows from the last "number of free pages"
+            // of the container.  Should always at least be able to empty
+            // that number of pages.
+            SpaceInfo info = 
+                open_conglom.getContainer().getSpaceInfo();
+
+            pagenum_to_start_moving_rows = info.getNumAllocatedPages();
+
+            positionAtStartForForwardScan(scan_position);
+        }
+        else if (getScanState() == SCAN_HOLD_INPROGRESS)
+        {
+            open_conglom.reopen();
+
+            if (SanityManager.DEBUG)
+            {
+                SanityManager.ASSERT(
+                    scan_position.current_rh != null, this.toString()); 
+            }
+
+            // reposition the scan at the row just before the next one to 
+            // return.
+            // This routine handles the mess of repositioning if the row or 
+            // the page has disappeared. This can happen if a lock was not 
+            // held on the row while not holding the latch.
+            open_conglom.latchPageAndRepositionScan(scan_position);
+
+            setScanState(SCAN_INPROGRESS);
+        }
+        else if (getScanState() == SCAN_HOLD_INIT)
+        {
+            open_conglom.reopen();
+
+            positionAtStartForForwardScan(scan_position);
+
+        }
+        else
+        {
+            if (SanityManager.DEBUG)
+                SanityManager.ASSERT(getScanState() == SCAN_DONE);
+
+            return(0);
+        }
+
+        // At this point:
+        // scan_position.current_page is latched.  
+        // scan_position.current_slot is the slot on scan_position.current_page
+        // just before the "next" record this routine should process.
+
+        // loop through successive pages and successive slots on those
+        // pages.  Stop when either the last page is reached 
+        // (scan_position.current_page will be null).  
+        // Along the way apply qualifiers to skip rows which don't qualify.
+
+		while (scan_position.current_page != null)
+		{
+			while ((scan_position.current_slot + 1) < 
+                    scan_position.current_page.recordCount())
+			{
+                // Allocate a new row to read the row into.
+                if (fetch_row == null)
+                {
+                     // point at allocated row in array if one exists.
+                    if (row_array[ret_row_count] == null)
+                    {
+                        row_array[ret_row_count] = 
+                          open_conglom.getRuntimeMem().get_row_for_export();
+                    }
+
+                    fetch_row = row_array[ret_row_count];
+                }
+
+                // move scan current position forward.
+                scan_position.positionAtNextSlot();
+
+                this.stat_numrows_visited++;
+
+                if (scan_position.current_page.isDeletedAtSlot(
+                        scan_position.current_slot))
+                {
+                    // At this point assume table level lock, and that this
+                    // transcation did not delete the row, so any
+                    // deleted row must be a committed deleted row which can
+                    // be purged.
+                    scan_position.current_page.purgeAtSlot(
+                        scan_position.current_slot, 1, false);
+
+                    // raw store shuffles following rows down, so 
+                    // postion the scan at previous slot, so next trip
+                    // through loop will pick up correct row.
+                    scan_position.positionAtPrevSlot();
+                    continue;
+                }
+
+                if (scan_position.current_page.getPageNumber() > 
+                        pagenum_to_start_moving_rows)
+                {
+                    // Give raw store a chance to move the row for compression
+                    RecordHandle[] old_handle = new RecordHandle[1];
+                    RecordHandle[] new_handle = new RecordHandle[1];
+                    long[]         new_pageno = new long[1];
+
+                    if (scan_position.current_page.moveRecordForCompressAtSlot(
+                            scan_position.current_slot,
+                            fetch_row,
+                            old_handle,
+                            new_handle) == 1)
+                    {
+                        // raw store moved the row, so bump the row count but 
+                        // postion the scan at previous slot, so next trip
+                        // through loop will pick up correct row.
+                        // The subsequent rows will have been moved forward
+                        // to take place of moved row.
+                        scan_position.positionAtPrevSlot();
+
+                        ret_row_count++;
+                        stat_numrows_qualified++;
+
+
+                        setRowLocationArray(
+                            oldrowloc_array, ret_row_count - 1, old_handle[0]);
+                        setRowLocationArray(
+                            newrowloc_array, ret_row_count - 1, new_handle[0]);
+
+                        fetch_row = null;
+
+                    }
+                }
+			}
+
+            this.stat_numpages_visited++;
+
+            if (scan_position.current_page.recordCount() == 0)
+            {
+                // need to set the scan position before removing page
+                scan_position.current_pageno = 
+                    scan_position.current_page.getPageNumber();
+
+                open_conglom.getContainer().removePage(
+                    scan_position.current_page);
+
+                // removePage unlatches the page, and page not available
+                // again until after commit.
+                scan_position.current_page = null;
+            }
+            else
+            {
+                positionAfterThisPage(scan_position);
+                scan_position.unlatch();
+            }
+
+
+            if (ret_row_count > 0)
+            {
+                // rows were moved on this page, give caller a chance to
+                // process those and free up access to the table.
+                return(ret_row_count);
+            }
+            else
+            {
+                // no rows were moved so go ahead and commit the transaction
+                // to allow other threads a chance at table.  Compress does
+                // need to sync as long as transaction either completely 
+                // commits or backs out, either is fine.
+                /*
+                open_conglom.getXactMgr().commitNoSync(
+                    TransactionController.RELEASE_LOCKS);
+                open_conglom.reopen();
+                */
+                positionAtResumeScan(scan_position);
+
+            }
+		}
+
+        // Reached last page of scan.
+        positionAtDoneScan(scan_position);
+
+        // we need to decrement when we stop scan at the end of the table.
+        this.stat_numpages_visited--;
+
+		return(ret_row_count);
+    }
+
+    /**
+     * Reposition the scan upon entering the fetchRows loop.
+     * <p>
+     * Called upon entering fetchRows() while in the SCAN_INPROGRESS state.
+     * Do work necessary to look at rows in the current page of the scan.
+     * <p>
+     * The default implementation uses a record handle to maintain a scan
+     * position.  It will get the latch again on the current
+     * scan position and set the slot to the current record handle.
+     *
+	 * @exception  StandardException  Standard exception policy.
+     **/
+    protected void positionAtResumeScan(
+    RowPosition pos)
+		throws StandardException
+    {
+        // reposition the scan at the row just before the next one to return.
+        // This routine handles the mess of repositioning if the row or the
+        // page has disappeared. This can happen if a lock was not held on the
+        // row while not holding the latch.
+        open_conglom.latchPageAndRepositionScan(scan_position);
+    }
+
+    /**
+     * Move the scan from SCAN_INIT to SCAN_INPROGRESS.
+     * <p>
+     * This routine is called to move the scan from SCAN_INIT to 
+     * SCAN_INPROGRESS.  Upon return from this routine it is expected
+     * that scan_position is set such that calling the generic 
+     * scan loop will reach the first row of the scan.  Note that this
+     * usually means setting the scan_postion to one before the 1st 
+     * row to be returned.
+     * <p>
+     *
+	 * @exception  StandardException  Standard exception policy.
+     **/
+    protected void positionAtStartForForwardScan(
+    RowPosition pos)
+        throws StandardException
+    {
+        if (pos.current_rh == null)
+        {
+            // 1st positioning of scan (delayed from openScan).  Do not
+            // compress the first page, there is no previous page to move
+            // rows to, and moving the special Heap metadata row from the
+            // first page would cause problems.  Setting to next page is
+            // why this scan overrides generic implementation.
+            pos.current_page = 
+                open_conglom.getContainer().getNextPage(
+                    ContainerHandle.FIRST_PAGE_NUMBER);
+
+            // set up for scan to continue at beginning of page following
+            // the first page of the container.
+            pos.current_slot = Page.FIRST_SLOT_NUMBER - 1;
+        }
+        else
+        {
+            // 1st positioning of scan following a reopenScanByRowLocation
+
+            // reposition the scan at the row just before the next one to 
+            // return.  This routine handles the mess of repositioning if the 
+            // row or the page has disappeared. This can happen if a lock was 
+            // not held on the row while not holding the latch.
+            open_conglom.latchPageAndRepositionScan(pos);
+
+            // set up for scan to at the specified record handle (position one
+            // before it so that the loop increment and find it).
+            pos.current_slot -= 1;
+        }
+
+        pos.current_rh              = null;
+        this.stat_numpages_visited  = 1;
+        this.setScanState(SCAN_INPROGRESS);
+    }
+
+
+    /**************************************************************************
+     * Private/Protected methods of This class:
+     **************************************************************************
+     */
+
+    /**
+     * Set scan position to just after current page.
+     * <p>
+     * Used to set the position of the scan if a record handle is not
+     * avaliable.  In this case current_rh will be set to null, and 
+     * current_pageno will be set to the current page number.
+     * On resume of the scan, the scan will be set to just before the first
+     * row returned form a getNextPage(current_pageno) call.
+     * <p>
+     * A positionAtResumeScan(scan_position) is necessary to continue the
+     * scan after this call.
+     *
+	 * @exception  StandardException  Standard exception policy.
+     **/
+    private void positionAfterThisPage(
+    RowPosition pos)
+        throws StandardException
+    {
+        pos.current_rh = null;
+        pos.current_pageno = pos.current_page.getPageNumber();
+    }
+
+	/*
+	** Methods of ScanManager
+	*/
+
+}

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapCompressScan.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapConglomerateFactory.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapCostController.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapPostCommit.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapRowLocation.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/HeapScanInfo.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/heap/OpenHeap.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/ExternalSortFactory.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/MergeInserter.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/MergeScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/MergeScanRowSource.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/MergeSort.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/MergeSortInfo.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/Node.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/NodeAllocator.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/Scan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/SortBuffer.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/SortBufferRowSource.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/SortBufferScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/sort/SortScan.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/build.xml
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/RawStore.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/AllocExtent.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/AllocPage.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/AllocPageOperation.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/AllocationActions.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/AllocationCache.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseContainer.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseContainerHandle.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BasePage.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BufferedByteHolderInputStream.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/ByteHolder.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/ByteHolderInputStream.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java
            ('svn:executable' removed)

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/ChainAllocPageOperation.java
            ('svn:executable' removed)