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 da...@apache.org on 2009/08/31 17:47:24 UTC

svn commit: r809632 [1/7] - in /db/derby/code/trunk/java: engine/org/apache/derby/iapi/util/ engine/org/apache/derby/impl/sql/execute/rts/ testing/org/apache/derbyTesting/functionTests/master/ testing/org/apache/derbyTesting/functionTests/tests/lang/ t...

Author: dag
Date: Mon Aug 31 15:47:23 2009
New Revision: 809632

URL: http://svn.apache.org/viewvc?rev=809632&view=rev
Log:
DERBY-4087 Clean up debug printing of the abstract syntax trees after parsing, binding and optimization

Follow-up patch, derby-4087-statistics. This fixes the wrong indentation seen
in runtimestatistics for scan qualifiers.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDistinctScanStatistics.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashScanStatistics.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealTableScanStatistics.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DB2IsolationLevels.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TableLockBasic.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/access.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregateOptimization.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/ddlTableLockMode.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/desc_index.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/isolationLevels.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/lojreorder.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/maxMemPerTab.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/orderbyElimination.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/outerjoin.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/predicatesIntoViews.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/setOpPlan.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/specjPlans.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/st_1.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/subquery.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/subqueryFlattening.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/wisconsin.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/outerjoin.sql
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/RuntimeStatisticsParser.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java Mon Aug 31 15:47:23 2009
@@ -516,4 +516,131 @@
 
         return buffer.toString();
     }
+
+
+	/**
+	 * Utility for formatting which bends a multi-line string into shape for
+	 * outputting it in a context where there is <i>depth</i> tabs. Trailing
+	 * newlines are discarded as well.
+	 * <p>
+	 * Replace     "^[\t]*" with "depth" number of tabs.<br>
+	 * Replace     "\n+$" with "".
+	 * Replace all "\n[\t]*" with "\n" + "depth" number of tabs.<br>
+	 * </p>
+	 * @param formatted string to sanitize
+	 * @param depth indentation level the string is to be printed at (0,1,2..)
+	 */
+	public static String ensureIndent(String formatted, int depth) {
+		StringBuffer buf = new StringBuffer();
+		StringBuffer indent = new StringBuffer();
+
+		while (depth-- > 0) {
+			indent.append("\t");
+		}
+
+		if (formatted == null) {
+			return indent.toString() + "null";
+		}
+
+		/*
+		 * Sadly, we can't use java.util.regexp here since it's not supported
+		 * by Foundation 1.1
+		 */
+
+		formatted = doRegExpA(formatted, indent.toString());
+
+		formatted = doRegExpB(formatted);
+
+		formatted = doRegExpC(formatted, indent.toString());
+
+		return formatted;
+	}
+
+	/**
+	 * Reg.exp substitute:<br/>
+	 * <p/>
+	 * Pattern pat_a = Pattern.compile("\\A\\t*");<br/>
+	 * Matcher m_a = pat_a.matcher(src);<br/>
+	 * src = m_a.replaceFirst(indent.toString());<br/>
+	 *
+	 * @param src source string in which to substitute indent
+	 * @param indent indentation to lead source
+	 * @return new version of src after substitution
+	 *
+	 */
+	private static String doRegExpA(String src, String indent) {
+		StringBuffer result = new StringBuffer();
+		int idx = 0;
+
+		while (idx < src.length() && src.charAt(idx) == '\t') {
+			idx++;
+		}
+
+		result.append(indent);
+		result.append(src.substring(idx));
+		return result.toString();
+	}
+
+	/**
+	 * Reg.exp substitute:<br/>
+	 * <p/>
+	 * Pattern pat_b = Pattern.compile("\\n+\\Z");<br/>
+	 * Matcher m_b = pat_b.matcher(formatted);<br/>
+	 * formatted = m_b.replaceFirst("");<br/>
+	 *
+	 * @param src source string in which to substitute
+	 * @return new version of src after substitution
+	 *
+	 */
+	private static String doRegExpB(String src) {
+		StringBuffer result = new StringBuffer();
+		int idx = src.length() - 1;
+
+		while (idx >= 0 && src.charAt(idx) == '\n') {
+			idx--;
+		}
+
+		result.append(src.substring(0, idx + 1));
+		return result.toString();
+	}
+
+
+	/**
+	 * Reg.exp substitute:<br/>
+	 * <p/>
+	 * Pattern pat_c = Pattern.compile("\\n\\t*");<br/>
+	 * Matcher m_c = pat_c.matcher(formatted);<br/>
+	 * formatted = m_c.replaceAll("\n" + indent.toString());<br/>
+	 *
+	 * @param src source string in which to substitute indent
+	 * @param indent indentation to lead source
+	 * @return new version of src after substitution
+	 *
+	 */
+	private static String doRegExpC(String src, String indent) {
+
+		StringBuffer result = new StringBuffer();
+		int idx = 0;
+
+		while (idx < src.length()) {
+			char c = src.charAt(idx);
+
+			if (c == '\n') {
+				result.append(c);
+				int tabidx = idx + 1;
+
+				while (tabidx < src.length() && src.charAt(tabidx) == '\t') {
+					tabidx++;
+				}
+
+				result.append(indent);
+				idx = tabidx;
+			} else {
+				result.append(c);
+				idx++;
+			}
+		}
+		return result.toString();
+	}
 }
+

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDistinctScanStatistics.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDistinctScanStatistics.java?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDistinctScanStatistics.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealDistinctScanStatistics.java Mon Aug 31 15:47:23 2009
@@ -28,6 +28,7 @@
 import org.apache.derby.impl.sql.execute.xplain.XPLAINUtil;
 import org.apache.derby.iapi.sql.execute.xplain.XPLAINVisitor;
 import org.apache.derby.iapi.reference.SQLState;
+import org.apache.derby.iapi.util.StringUtil;
 
 import java.util.Enumeration;
 import java.util.Hashtable;
@@ -194,17 +195,17 @@
 			scanInfo +
 			subIndent + MessageService.getTextMessage(
 												SQLState.RTS_START_POSITION) +
-						":\n" + startPosition + 
+			":\n" + StringUtil.ensureIndent(startPosition, depth + 2) + "\n" +
 			subIndent + MessageService.getTextMessage(
 												SQLState.RTS_STOP_POSITION) +
-						":\n" + stopPosition +
+			":\n" + StringUtil.ensureIndent(stopPosition, depth + 2) + "\n" +
 			subIndent + MessageService.getTextMessage(
 												SQLState.RTS_SCAN_QUALS) +
-						":\n" + scanQualifiers + "\n" +
-			subIndent +
-						MessageService.getTextMessage(
+			":\n" + StringUtil.ensureIndent(scanQualifiers, depth + 2) + "\n" +
+			subIndent + MessageService.getTextMessage(
 												SQLState.RTS_NEXT_QUALS) +
-						":\n" + nextQualifiers + "\n" +
+			":\n" + StringUtil.ensureIndent(nextQualifiers, depth + 2) + "\n" +
+
 			// RESOLVE - estimated row count and cost will eventually 
 			// be displayed for all nodes
 			dumpEstimatedCosts(subIndent);

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashScanStatistics.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashScanStatistics.java?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashScanStatistics.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealHashScanStatistics.java Mon Aug 31 15:47:23 2009
@@ -23,6 +23,7 @@
 
 import org.apache.derby.iapi.services.io.StoredFormatIds;
 import org.apache.derby.iapi.util.PropertyUtil;
+import org.apache.derby.iapi.util.StringUtil;
 
 import org.apache.derby.iapi.services.i18n.MessageService;
 import org.apache.derby.iapi.reference.SQLState;
@@ -225,17 +226,18 @@
 					"") + "\n" +
 			scanInfo +
 			subIndent + MessageService.getTextMessage(
-												SQLState.RTS_START_POSITION) +
-					": \n" + startPosition + 
+				SQLState.RTS_START_POSITION) +
+			":\n" + StringUtil.ensureIndent(startPosition, depth + 2) + "\n" +
 			subIndent + MessageService.getTextMessage(
 												SQLState.RTS_STOP_POSITION) +
-					": \n" + stopPosition +
+			":\n" + StringUtil.ensureIndent(stopPosition, depth + 2) + "\n" +
 			subIndent + MessageService.getTextMessage(
 													SQLState.RTS_SCAN_QUALS) +
-					":\n" + scanQualifiers + "\n" +
+			":\n" + StringUtil.ensureIndent(scanQualifiers, depth + 2) + "\n" +
 			subIndent + MessageService.getTextMessage(
 													SQLState.RTS_NEXT_QUALS) +
-					":\n" + nextQualifiers + "\n" +
+			":\n" + StringUtil.ensureIndent(nextQualifiers, depth + 2) + "\n" +
+
 			// RESOLVE - estimated row count and cost will eventually 
 			// be displayed for all nodes
 			dumpEstimatedCosts(subIndent);

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealTableScanStatistics.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealTableScanStatistics.java?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealTableScanStatistics.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/rts/RealTableScanStatistics.java Mon Aug 31 15:47:23 2009
@@ -23,6 +23,7 @@
 
 import org.apache.derby.iapi.services.io.StoredFormatIds;
 import org.apache.derby.iapi.util.PropertyUtil;
+import org.apache.derby.iapi.util.StringUtil;
 
 import org.apache.derby.iapi.services.i18n.MessageService;
 import org.apache.derby.iapi.reference.SQLState;
@@ -192,7 +193,7 @@
 
 		String scanInfo =
 			indent + MessageService.getTextMessage(SQLState.RTS_SCAN_INFO) +
-						": \n" +
+						":\n" +
 						PropertyUtil.sortProperties(scanProperties, subIndent);
 
 		return
@@ -217,12 +218,13 @@
 			scanInfo +
 			subIndent + MessageService.getTextMessage(
 												SQLState.RTS_START_POSITION) +
-				": \n" + startPosition + 
+			":\n" + StringUtil.ensureIndent(startPosition, depth + 2) + "\n" +
 			subIndent + MessageService.getTextMessage(
 												SQLState.RTS_STOP_POSITION) +
-				": \n" + stopPosition +
+			":\n" + StringUtil.ensureIndent(stopPosition, depth + 2) + "\n" +
 			subIndent + MessageService.getTextMessage(SQLState.RTS_QUALS) +
-				":\n" + qualifiers + "\n" +
+			":\n" + StringUtil.ensureIndent(qualifiers, depth + 2) + "\n" +
+
 			// RESOLVE - estimated row count and cost will eventually 
 			// be displayed for all nodes
 			dumpEstimatedCosts(subIndent);

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DB2IsolationLevels.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DB2IsolationLevels.out?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DB2IsolationLevels.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DB2IsolationLevels.out Mon Aug 31 15:47:23 2009
@@ -63,7 +63,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -72,12 +72,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> -- verify SET ISOLATION commits and changes isolation level
 set isolation RR;
 0 rows inserted/updated/deleted
@@ -119,7 +119,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -128,12 +128,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> set isolation reset;
 0 rows inserted/updated/deleted
 ij> execute getIsolation;
@@ -180,7 +180,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -189,12 +189,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> set current isolation = reset;
 0 rows inserted/updated/deleted
 ij> execute getIsolation;
@@ -241,7 +241,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -250,12 +250,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> set isolation to reset;
 0 rows inserted/updated/deleted
 ij> execute getIsolation;
@@ -302,7 +302,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -311,12 +311,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> -- test WITH ISOLATION clause
 set isolation serializable;
 0 rows inserted/updated/deleted
@@ -356,7 +356,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -365,12 +365,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> set isolation cursor stability;
 0 rows inserted/updated/deleted
 ij> execute getIsolation;
@@ -409,7 +409,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -418,12 +418,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> set isolation serializable;
 0 rows inserted/updated/deleted
 ij> execute getIsolation;
@@ -462,7 +462,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -471,12 +471,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> set current isolation to read committed;
 0 rows inserted/updated/deleted
 ij> execute getIsolation;
@@ -515,7 +515,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -524,12 +524,12 @@
 	Number of rows visited=1
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> -- unknown isolation level
 select * from t1 with rw;
 ERROR 42X01: Syntax error: Encountered "rw" at line 2, column 23.

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TableLockBasic.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TableLockBasic.out?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TableLockBasic.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TableLockBasic.out Mon Aug 31 15:47:23 2009
@@ -369,17 +369,19 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=1
 	Number of rows visited=1
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> drop table rts;
 0 rows inserted/updated/deleted
 ij> commit;
@@ -426,17 +428,19 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=0
 	Number of rows visited=0
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> select * from default_granularity with rr;
 C1         
 -----------
@@ -467,17 +471,19 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=0
 	Number of rows visited=0
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> select * from row_granularity with cs;
 C1         
 -----------
@@ -508,17 +514,19 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=0
 	Number of rows visited=0
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> select * from row_granularity with rr;
 C1         
 -----------
@@ -549,17 +557,19 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=0
 	Number of rows visited=0
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> select * from table_granularity with cs;
 C1         
 -----------
@@ -590,17 +600,19 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=0
 	Number of rows visited=0
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> select * from table_granularity with rr;
 C1         
 -----------
@@ -631,16 +643,18 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=0
 	Number of rows visited=0
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> rollback;
 ij> 

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/access.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/access.out?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/access.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/access.out Mon Aug 31 15:47:23 2009
@@ -236,17 +236,19 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched=All
 	Number of columns fetched=5
 	Number of pages visited=1
 	Number of rows qualified=2
 	Number of rows visited=2
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> -- just last column - should be 5 and 50
 select e from foo;
 E          
@@ -282,17 +284,19 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={4}
 	Number of columns fetched=1
 	Number of pages visited=1
 	Number of rows qualified=2
 	Number of rows visited=2
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> -- as subset of columns - should be 5,3,1 and 50,30,10
 select e, c, a from foo;
 E          |C          |A          
@@ -341,17 +345,19 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={0, 2, 4}
 		Number of columns fetched=3
 		Number of pages visited=1
 		Number of rows qualified=2
 		Number of rows visited=2
 		Scan type=heap
-		start position: 
-null		stop position: 
-null		qualifiers:
-None
+		start position:
+			null
+		stop position:
+			null
+		qualifiers:
+			None
 ij> -- as subset of columns, with qualifier in list - should be 5,3,1 and 50,30,10
 select e, c, a from foo where foo.e = 5;
 E          |C          |A          
@@ -399,21 +405,23 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={0, 2, 4}
 		Number of columns fetched=3
 		Number of pages visited=1
 		Number of rows qualified=1
 		Number of rows visited=2
 		Scan type=heap
-		start position: 
-null		stop position: 
-null		qualifiers:
-Column[0][0] Id: 4
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+		start position:
+			null
+		stop position:
+			null
+		qualifiers:
+			Column[0][0] Id: 4
+			Operator: =
+			Ordered nulls: false
+			Unknown return value: false
+			Negate comparison result: false
 ij> -- as subset of columns, with qualifier not in list 
 --   - should be 5,3,1 and 50,30,10
 select e, c, a from foo where foo.b = 20;
@@ -463,21 +471,23 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={0, 1, 2, 4}
 		Number of columns fetched=4
 		Number of pages visited=1
 		Number of rows qualified=1
 		Number of rows visited=2
 		Scan type=heap
-		start position: 
-null		stop position: 
-null		qualifiers:
-Column[0][0] Id: 1
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+		start position:
+			null
+		stop position:
+			null
+		qualifiers:
+			Column[0][0] Id: 1
+			Operator: =
+			Ordered nulls: false
+			Unknown return value: false
+			Negate comparison result: false
 ij> -- as subset of columns - should be 1,2 and 10,20
 select a, b from foo;
 A          |B          
@@ -513,17 +523,19 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0, 1}
 	Number of columns fetched=2
 	Number of pages visited=1
 	Number of rows qualified=2
 	Number of rows visited=2
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> -- now check index scans - force the index just to 
 -- make sure it does an index scan.
 create index foo_cover on foo (e, d, c, b, a);
@@ -576,7 +588,7 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={0, 1, 2, 3, 4}
 		Number of columns fetched=5
 		Number of deleted rows visited=0
@@ -585,12 +597,12 @@
 		Number of rows visited=2
 		Scan type=btree
 		Tree height=1
-		start position: 
-	None
-		stop position: 
-	None
+		start position:
+			None
+		stop position:
+			None
 		qualifiers:
-None
+			None
 ij> -- just last column - should be 5 and 50
 select e from foo;
 E          
@@ -626,7 +638,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -635,12 +647,12 @@
 	Number of rows visited=2
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> -- as subset of columns - should be 5,3,1 and 50,30,10
 select e, c, a from foo;
 E          |C          |A          
@@ -702,7 +714,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 4}
 			Number of columns fetched=3
 			Number of deleted rows visited=0
@@ -711,12 +723,12 @@
 			Number of rows visited=2
 			Scan type=btree
 			Tree height=1
-			start position: 
-	None
-			stop position: 
-	None
+			start position:
+				None
+			stop position:
+				None
 			qualifiers:
-None
+				None
 ij> -- as subset of columns, with qualifier in list - should be 5,3,1 and 50, 30, 10
 select e, c, a from foo where foo.e = 5;
 E          |C          |A          
@@ -777,7 +789,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 4}
 			Number of columns fetched=3
 			Number of deleted rows visited=0
@@ -786,14 +798,14 @@
 			Number of rows visited=2
 			Scan type=btree
 			Tree height=1
-			start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-			stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+			start position:
+				>= on first 1 column(s).
+				Ordered null semantics on the following columns: 
+			stop position:
+				> on first 1 column(s).
+				Ordered null semantics on the following columns: 
 			qualifiers:
-None
+				None
 ij> -- as subset of columns, with qualifier not in list - should be 5,3,1 
 -- and 50, 30, 10
 select e, c, a from foo where foo.b = 20;
@@ -856,7 +868,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 3, 4}
 			Number of columns fetched=4
 			Number of deleted rows visited=0
@@ -865,16 +877,16 @@
 			Number of rows visited=2
 			Scan type=btree
 			Tree height=1
-			start position: 
-	None
-			stop position: 
-	None
+			start position:
+				None
+			stop position:
+				None
 			qualifiers:
-Column[0][0] Id: 3
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+				Column[0][0] Id: 3
+				Operator: =
+				Ordered nulls: false
+				Unknown return value: false
+				Negate comparison result: false
 ij> -- as subset of columns - should be 1,2 and 10, 20
 select a, b from foo;
 A          |B          
@@ -923,7 +935,7 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={3, 4}
 		Number of columns fetched=2
 		Number of deleted rows visited=0
@@ -932,12 +944,12 @@
 		Number of rows visited=2
 		Scan type=btree
 		Tree height=1
-		start position: 
-	None
-		stop position: 
-	None
+		start position:
+			None
+		stop position:
+			None
 		qualifiers:
-None
+			None
 ij> -- check deleted row feature
 insert into foo values (100, 2, 3, 4, 5);
 1 row inserted/updated/deleted
@@ -997,7 +1009,7 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={0, 1, 2, 3, 4}
 		Number of columns fetched=5
 		Number of deleted rows visited=2
@@ -1006,12 +1018,12 @@
 		Number of rows visited=4
 		Scan type=btree
 		Tree height=1
-		start position: 
-	None
-		stop position: 
-	None
+		start position:
+			None
+		stop position:
+			None
 		qualifiers:
-None
+			None
 ij> -- just last column - should be 5 and 50
 select e from foo;
 E          
@@ -1047,7 +1059,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=2
@@ -1056,12 +1068,12 @@
 	Number of rows visited=4
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> -- as subset of columns - should be 5,3,1 and 50,30,10
 select e, c, a from foo;
 E          |C          |A          
@@ -1123,7 +1135,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 4}
 			Number of columns fetched=3
 			Number of deleted rows visited=2
@@ -1132,12 +1144,12 @@
 			Number of rows visited=4
 			Scan type=btree
 			Tree height=1
-			start position: 
-	None
-			stop position: 
-	None
+			start position:
+				None
+			stop position:
+				None
 			qualifiers:
-None
+				None
 ij> -- as subset of columns, with qualifier in list - should be 5,3,1 and 50,30,10
 select e, c, a from foo where foo.e = 5;
 E          |C          |A          
@@ -1198,7 +1210,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 4}
 			Number of columns fetched=3
 			Number of deleted rows visited=2
@@ -1207,14 +1219,14 @@
 			Number of rows visited=4
 			Scan type=btree
 			Tree height=1
-			start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-			stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+			start position:
+				>= on first 1 column(s).
+				Ordered null semantics on the following columns: 
+			stop position:
+				> on first 1 column(s).
+				Ordered null semantics on the following columns: 
 			qualifiers:
-None
+				None
 ij> -- as subset of columns, with qualifier not in list 
 --   - should be 5,3,1 and 50,30,10
 select e, c, a from foo where foo.b = 20;
@@ -1277,7 +1289,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 3, 4}
 			Number of columns fetched=4
 			Number of deleted rows visited=2
@@ -1286,16 +1298,16 @@
 			Number of rows visited=4
 			Scan type=btree
 			Tree height=1
-			start position: 
-	None
-			stop position: 
-	None
+			start position:
+				None
+			stop position:
+				None
 			qualifiers:
-Column[0][0] Id: 3
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+				Column[0][0] Id: 3
+				Operator: =
+				Ordered nulls: false
+				Unknown return value: false
+				Negate comparison result: false
 ij> -- as subset of columns - should be 1,2 and 10,20
 select a, b from foo;
 A          |B          
@@ -1344,7 +1356,7 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={3, 4}
 		Number of columns fetched=2
 		Number of deleted rows visited=2
@@ -1353,12 +1365,12 @@
 		Number of rows visited=4
 		Scan type=btree
 		Tree height=1
-		start position: 
-	None
-		stop position: 
-	None
+		start position:
+			None
+		stop position:
+			None
 		qualifiers:
-None
+			None
 ij> -- now check index scans - force the index just to 
 -- make sure it does an index scan.
 create index foo_cover on foo (e, d, c, b, a);
@@ -1412,7 +1424,7 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={0, 1, 2, 3, 4}
 		Number of columns fetched=5
 		Number of deleted rows visited=2
@@ -1421,12 +1433,12 @@
 		Number of rows visited=4
 		Scan type=btree
 		Tree height=1
-		start position: 
-	None
-		stop position: 
-	None
+		start position:
+			None
+		stop position:
+			None
 		qualifiers:
-None
+			None
 ij> -- just last column - should be 5 and 50
 select e from foo;
 E          
@@ -1462,7 +1474,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=2
@@ -1471,12 +1483,12 @@
 	Number of rows visited=4
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> -- as subset of columns - should be 5,3,1 and 50,30,10
 select e, c, a from foo;
 E          |C          |A          
@@ -1538,7 +1550,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 4}
 			Number of columns fetched=3
 			Number of deleted rows visited=2
@@ -1547,12 +1559,12 @@
 			Number of rows visited=4
 			Scan type=btree
 			Tree height=1
-			start position: 
-	None
-			stop position: 
-	None
+			start position:
+				None
+			stop position:
+				None
 			qualifiers:
-None
+				None
 ij> -- as subset of columns, with qualifier in list - should be 5,3,1 and 50, 30, 10
 select e, c, a from foo where foo.e = 5;
 E          |C          |A          
@@ -1613,7 +1625,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 4}
 			Number of columns fetched=3
 			Number of deleted rows visited=2
@@ -1622,14 +1634,14 @@
 			Number of rows visited=4
 			Scan type=btree
 			Tree height=1
-			start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-			stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+			start position:
+				>= on first 1 column(s).
+				Ordered null semantics on the following columns: 
+			stop position:
+				> on first 1 column(s).
+				Ordered null semantics on the following columns: 
 			qualifiers:
-None
+				None
 ij> -- as subset of columns, with qualifier not in list - should be 5,3,1 
 -- and 50, 30, 10
 select e, c, a from foo where foo.b = 20;
@@ -1692,7 +1704,7 @@
 			next time (milliseconds) = 0
 			close time (milliseconds) = 0
 			next time in milliseconds/row = 0
-		scan information: 
+		scan information:
 			Bit set of columns fetched={0, 2, 3, 4}
 			Number of columns fetched=4
 			Number of deleted rows visited=2
@@ -1701,16 +1713,16 @@
 			Number of rows visited=4
 			Scan type=btree
 			Tree height=1
-			start position: 
-	None
-			stop position: 
-	None
+			start position:
+				None
+			stop position:
+				None
 			qualifiers:
-Column[0][0] Id: 3
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+				Column[0][0] Id: 3
+				Operator: =
+				Ordered nulls: false
+				Unknown return value: false
+				Negate comparison result: false
 ij> -- as subset of columns - should be 1,2 and 10, 20
 select a, b from foo;
 A          |B          
@@ -1759,7 +1771,7 @@
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
 		next time in milliseconds/row = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched={3, 4}
 		Number of columns fetched=2
 		Number of deleted rows visited=2
@@ -1768,12 +1780,12 @@
 		Number of rows visited=4
 		Scan type=btree
 		Tree height=1
-		start position: 
-	None
-		stop position: 
-	None
+		start position:
+			None
+		stop position:
+			None
 		qualifiers:
-None
+			None
 ij> -- ----------------------------------------------------------------------------
 -- test case for costing - make sure optimizer picks obvious covered query.
 -- ----------------------------------------------------------------------------
@@ -1847,7 +1859,7 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -1856,12 +1868,12 @@
 	Number of rows visited=10
 	Scan type=btree
 	Tree height=1
-	start position: 
-	None
-	stop position: 
-	None
+	start position:
+		None
+	stop position:
+		None
 	qualifiers:
-None
+		None
 ij> -- ----------------------------------------------------------------------------
 -- test for key too big error message.
 -- ----------------------------------------------------------------------------
@@ -2251,17 +2263,19 @@
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
 	next time in milliseconds/row = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0, 3}
 	Number of columns fetched=2
 	Number of pages visited=6
 	Number of rows qualified=5
 	Number of rows visited=5
 	Scan type=heap
-	start position: 
-null	stop position: 
-null	qualifiers:
-None
+	start position:
+		null
+	stop position:
+		null
+	qualifiers:
+		None
 ij> autocommit on;
 ij> -- test case for track 2241
 --    The problem was that when the level of btree grew, sometimes a long
@@ -2823,7 +2837,7 @@
 				open time (milliseconds) = 0
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -2832,14 +2846,14 @@
 				Number of rows visited=0
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- update against table with 0 rows.
 update foo set b = 1 where a = 2;
 0 rows inserted/updated/deleted
@@ -2897,7 +2911,7 @@
 				open time (milliseconds) = 0
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -2906,14 +2920,14 @@
 				Number of rows visited=0
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- select against table with 0 rows.
 select * from foo where a = 2;
 A          |B          
@@ -2954,7 +2968,7 @@
 		open time (milliseconds) = 0
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched=All
 		Number of columns fetched=2
 		Number of deleted rows visited=0
@@ -2963,14 +2977,14 @@
 		Number of rows visited=0
 		Scan type=btree
 		Tree height=1
-		start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-		stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+		start position:
+			>= on first 1 column(s).
+			Ordered null semantics on the following columns: 
+		stop position:
+			> on first 1 column(s).
+			Ordered null semantics on the following columns: 
 		qualifiers:
-None
+			None
 ij> -- select against table with 0 rows.
 select a from foo where a = 2;
 A          
@@ -3003,7 +3017,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -3012,14 +3026,14 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
 	qualifiers:
-None
+		None
 ij> -- select against table with 0 rows.
 select a from foo where a = 2;
 A          
@@ -3052,7 +3066,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -3061,14 +3075,14 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
 	qualifiers:
-None
+		None
 ij> -- now insert one row and make sure still same plan.  Previous to 4595 
 -- 0 row plan was a table scan and it would not change when 1 row was inserted.
 insert into foo values (1, 1);
@@ -3131,7 +3145,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3140,14 +3154,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- delete against table with 1 row.
 delete from foo where a = 1;
 1 row inserted/updated/deleted
@@ -3211,7 +3225,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3220,14 +3234,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- try delete/update statement compiled against table with 1 row.
 drop table foo;
 0 rows inserted/updated/deleted
@@ -3295,7 +3309,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3304,14 +3318,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- delete against table with 1 row.
 delete from foo where a = 1;
 1 row inserted/updated/deleted
@@ -3375,7 +3389,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3384,14 +3398,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- repeat set of 4595 tests against table with primary key, vs. unique index - 
 -- there should be no difference in plan shape.
 -- try delete/update statement compiled against table with 0 rows
@@ -3461,7 +3475,7 @@
 				open time (milliseconds) = 0
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3470,16 +3484,16 @@
 				Number of rows visited=0
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
 				qualifiers:
-None
+					None
 ij> -- update against table with 0 rows.
 update foo set b = 1 where a = 2;
 0 rows inserted/updated/deleted
@@ -3537,7 +3551,7 @@
 				open time (milliseconds) = 0
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3546,16 +3560,16 @@
 				Number of rows visited=0
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
 				qualifiers:
-None
+					None
 ij> -- select against table with 0 rows.
 select * from foo where a = 2;
 A          |B          
@@ -3596,7 +3610,7 @@
 		open time (milliseconds) = 0
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched=All
 		Number of columns fetched=2
 		Number of deleted rows visited=0
@@ -3605,16 +3619,16 @@
 		Number of rows visited=0
 		Scan type=btree
 		Tree height=1
-		start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-		stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+		start position:
+			>= on first 1 column(s).
+			Ordered null semantics on the following columns: 
+			0 
+		stop position:
+			> on first 1 column(s).
+			Ordered null semantics on the following columns: 
+			0 
 		qualifiers:
-None
+			None
 ij> -- select against table with 0 rows.
 select a from foo where a = 2;
 A          
@@ -3647,7 +3661,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -3656,16 +3670,16 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
 	qualifiers:
-None
+		None
 ij> -- select against table with 0 rows.
 select a from foo where a = 2;
 A          
@@ -3698,7 +3712,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -3707,16 +3721,16 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
 	qualifiers:
-None
+		None
 ij> -- now insert one row and make sure still same plan.  Previous to 4595 
 -- 0 row plan was a table scan and it would not change when 1 row was inserted.
 insert into foo values (1, 1);
@@ -3779,7 +3793,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3788,16 +3802,16 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
 				qualifiers:
-None
+					None
 ij> -- delete against table with 1 row.
 delete from foo where a = 1;
 1 row inserted/updated/deleted
@@ -3861,7 +3875,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3870,16 +3884,16 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
 				qualifiers:
-None
+					None
 ij> -- try delete/update statement compiled against table with 1 row.
 drop table foo;
 0 rows inserted/updated/deleted
@@ -3945,7 +3959,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -3954,16 +3968,16 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
 				qualifiers:
-None
+					None
 ij> -- delete against table with 1 row.
 delete from foo where a = 1;
 1 row inserted/updated/deleted
@@ -4027,7 +4041,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -4036,16 +4050,16 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
+					0 
 				qualifiers:
-None
+					None
 ij> -- select against table with 1 row.
 select * from foo where a = 2;
 A          |B          
@@ -4086,7 +4100,7 @@
 		open time (milliseconds) = 0
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched=All
 		Number of columns fetched=2
 		Number of deleted rows visited=0
@@ -4095,16 +4109,16 @@
 		Number of rows visited=0
 		Scan type=btree
 		Tree height=1
-		start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-		stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+		start position:
+			>= on first 1 column(s).
+			Ordered null semantics on the following columns: 
+			0 
+		stop position:
+			> on first 1 column(s).
+			Ordered null semantics on the following columns: 
+			0 
 		qualifiers:
-None
+			None
 ij> -- select against table with 1 row.
 select a from foo where a = 2;
 A          
@@ -4137,7 +4151,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -4146,16 +4160,16 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
 	qualifiers:
-None
+		None
 ij> -- select against table with 1 row.
 select a from foo where a = 2;
 A          
@@ -4188,7 +4202,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -4197,16 +4211,16 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-0 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
+		0 
 	qualifiers:
-None
+		None
 ij> -- repeat set of 4595 tests against table with non-unique index with no
 -- statistics.
 -- there should be no difference in plan shape.
@@ -4279,7 +4293,7 @@
 				open time (milliseconds) = 0
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -4288,14 +4302,14 @@
 				Number of rows visited=0
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- update against table with 0 rows.
 update foo set b = 1 where a = 2;
 0 rows inserted/updated/deleted
@@ -4353,7 +4367,7 @@
 				open time (milliseconds) = 0
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -4362,14 +4376,14 @@
 				Number of rows visited=0
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- select against table with 0 rows.
 select * from foo where a = 2;
 A          |B          
@@ -4410,7 +4424,7 @@
 		open time (milliseconds) = 0
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched=All
 		Number of columns fetched=2
 		Number of deleted rows visited=0
@@ -4419,14 +4433,14 @@
 		Number of rows visited=0
 		Scan type=btree
 		Tree height=1
-		start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-		stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+		start position:
+			>= on first 1 column(s).
+			Ordered null semantics on the following columns: 
+		stop position:
+			> on first 1 column(s).
+			Ordered null semantics on the following columns: 
 		qualifiers:
-None
+			None
 ij> -- select against table with 0 rows.
 select a from foo where a = 2;
 A          
@@ -4459,7 +4473,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -4468,14 +4482,14 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
 	qualifiers:
-None
+		None
 ij> -- select against table with 0 rows.
 select a from foo where a = 2;
 A          
@@ -4508,7 +4522,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -4517,14 +4531,14 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
 	qualifiers:
-None
+		None
 ij> -- now insert one row and make sure still same plan.  Previous to 4595 
 -- 0 row plan was a table scan and it would not change when 1 row was inserted.
 insert into foo values (1, 1);
@@ -4587,7 +4601,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -4596,14 +4610,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- delete against table with 1 row.
 delete from foo where a = 1;
 1 row inserted/updated/deleted
@@ -4667,7 +4681,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -4676,14 +4690,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- try delete/update statement compiled against table with 1 row.
 drop table foo;
 0 rows inserted/updated/deleted
@@ -4751,7 +4765,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched=All
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -4760,14 +4774,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- delete against table with 1 row.
 delete from foo where a = 1;
 1 row inserted/updated/deleted
@@ -4831,7 +4845,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -4840,14 +4854,14 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> -- select against table with 1 row.
 select * from foo where a = 2;
 A          |B          
@@ -4888,7 +4902,7 @@
 		open time (milliseconds) = 0
 		next time (milliseconds) = 0
 		close time (milliseconds) = 0
-	scan information: 
+	scan information:
 		Bit set of columns fetched=All
 		Number of columns fetched=2
 		Number of deleted rows visited=0
@@ -4897,14 +4911,14 @@
 		Number of rows visited=0
 		Scan type=btree
 		Tree height=1
-		start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-		stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+		start position:
+			>= on first 1 column(s).
+			Ordered null semantics on the following columns: 
+		stop position:
+			> on first 1 column(s).
+			Ordered null semantics on the following columns: 
 		qualifiers:
-None
+			None
 ij> -- select against table with 1 row.
 select a from foo where a = 2;
 A          
@@ -4937,7 +4951,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -4946,14 +4960,14 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
 	qualifiers:
-None
+		None
 ij> -- select against table with 1 row.
 select a from foo where a = 2;
 A          
@@ -4986,7 +5000,7 @@
 	open time (milliseconds) = 0
 	next time (milliseconds) = 0
 	close time (milliseconds) = 0
-scan information: 
+scan information:
 	Bit set of columns fetched={0}
 	Number of columns fetched=1
 	Number of deleted rows visited=0
@@ -4995,14 +5009,14 @@
 	Number of rows visited=0
 	Scan type=btree
 	Tree height=1
-	start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-	stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+	start position:
+		>= on first 1 column(s).
+		Ordered null semantics on the following columns: 
+	stop position:
+		> on first 1 column(s).
+		Ordered null semantics on the following columns: 
 	qualifiers:
-None
+		None
 ij> ------------------------------------------------------------------------
 -- simple regression test for qualifier work.
 ------------------------------------------------------------------------

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregateOptimization.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregateOptimization.out?rev=809632&r1=809631&r2=809632&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregateOptimization.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregateOptimization.out Mon Aug 31 15:47:23 2009
@@ -97,17 +97,19 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of pages visited=1
 				Number of rows qualified=9
 				Number of rows visited=9
 				Scan type=heap
-				start position: 
-null				stop position: 
-null				qualifiers:
-None
+				start position:
+					null
+				stop position:
+					null
+				qualifiers:
+					None
 ij> select min(distinct c1), max(distinct(c1)) from t1 group by c1;
 1          |2          
 -----------------------
@@ -185,17 +187,19 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of pages visited=1
 				Number of rows qualified=9
 				Number of rows visited=9
 				Scan type=heap
-				start position: 
-null				stop position: 
-null				qualifiers:
-None
+				start position:
+					null
+				stop position:
+					null
+				qualifiers:
+					None
 ij> -- min optimization
 create index i1 on t1(c1);
 0 rows inserted/updated/deleted
@@ -268,7 +272,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -277,12 +281,12 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> create index i2 on t1(c2, c1);
 0 rows inserted/updated/deleted
 ij> -- equality predicates on all key columns preceding min column 
@@ -367,7 +371,7 @@
 					next time (milliseconds) = 0
 					close time (milliseconds) = 0
 					next time in milliseconds/row = 0
-				scan information: 
+				scan information:
 					Bit set of columns fetched={0, 1}
 					Number of columns fetched=2
 					Number of deleted rows visited=0
@@ -376,14 +380,14 @@
 					Number of rows visited=1
 					Scan type=btree
 					Tree height=1
-					start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-					stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+					start position:
+						>= on first 1 column(s).
+						Ordered null semantics on the following columns: 
+					stop position:
+						> on first 1 column(s).
+						Ordered null semantics on the following columns: 
 					qualifiers:
-None
+						None
 ij> -- equality predicates on all key columns preceding min column, 
 -- not a unique index
 select min(c2) from t1 where c1 = 1;
@@ -463,7 +467,7 @@
 					next time (milliseconds) = 0
 					close time (milliseconds) = 0
 					next time in milliseconds/row = 0
-				scan information: 
+				scan information:
 					Bit set of columns fetched=All
 					Number of columns fetched=2
 					Number of deleted rows visited=0
@@ -472,14 +476,14 @@
 					Number of rows visited=2
 					Scan type=btree
 					Tree height=1
-					start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-					stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+					start position:
+						>= on first 1 column(s).
+						Ordered null semantics on the following columns: 
+					stop position:
+						> on first 1 column(s).
+						Ordered null semantics on the following columns: 
 					qualifiers:
-None
+						None
 ij> delete from t1;
 9 rows inserted/updated/deleted
 ij> drop index i1;
@@ -567,7 +571,7 @@
 					next time (milliseconds) = 0
 					close time (milliseconds) = 0
 					next time in milliseconds/row = 0
-				scan information: 
+				scan information:
 					Bit set of columns fetched=All
 					Number of columns fetched=2
 					Number of deleted rows visited=0
@@ -576,14 +580,14 @@
 					Number of rows visited=1
 					Scan type=btree
 					Tree height=1
-					start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-					stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+					start position:
+						>= on first 1 column(s).
+						Ordered null semantics on the following columns: 
+					stop position:
+						> on first 1 column(s).
+						Ordered null semantics on the following columns: 
 					qualifiers:
-None
+						None
 ij> -- group by ordered on grouping columns
 create table t2(c1 int, c2 int, c3 int, c4 int);
 0 rows inserted/updated/deleted
@@ -659,7 +663,7 @@
 				open time (milliseconds) = 0
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -668,12 +672,12 @@
 				Number of rows visited=0
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> -- 1 row table
 insert into t2 values (1, 1, 1, 1);
 1 row inserted/updated/deleted
@@ -745,7 +749,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -754,12 +758,12 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> -- multiple rows, 1 group
 insert into t2 values (1, 2, 2, 2), (1, -1, -1, -1);
 2 rows inserted/updated/deleted
@@ -831,7 +835,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -840,12 +844,12 @@
 				Number of rows visited=3
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> -- multiple rows, multiple groups
 insert into t2 values (2, 3, 2, 2), (2, 3, -1, -1);
 2 rows inserted/updated/deleted
@@ -918,7 +922,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -927,12 +931,12 @@
 				Number of rows visited=5
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> -- ordered, but in reverse order 
 select c2, c1, sum(c3) from t2 group by c2, c1;
 C2         |C1         |3          
@@ -1009,17 +1013,19 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1, 2}
 				Number of columns fetched=3
 				Number of pages visited=1
 				Number of rows qualified=5
 				Number of rows visited=5
 				Scan type=heap
-				start position: 
-null				stop position: 
-null				qualifiers:
-None
+				start position:
+					null
+				stop position:
+					null
+				qualifiers:
+					None
 ij> -- clean up
 drop table t1;
 0 rows inserted/updated/deleted
@@ -1304,7 +1310,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -1313,13 +1319,13 @@
 				Number of rows visited=5
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					None
+				stop position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> select max(x) from x where x = 7;
 1          
 -----------
@@ -1387,7 +1393,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -1396,14 +1402,14 @@
 				Number of rows visited=2
 				Scan type=btree
 				Tree height=1
-				start position: 
-	>= on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
+				start position:
+					>= on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
 				qualifiers:
-None
+					None
 ij> select max(x) from x where y = 7;
 1          
 -----------
@@ -1471,7 +1477,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -1480,16 +1486,16 @@
 				Number of rows visited=5
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-Column[0][0] Id: 1
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+					Column[0][0] Id: 1
+					Operator: =
+					Ordered nulls: false
+					Unknown return value: false
+					Negate comparison result: false
 ij> select max(x) from x where y = 7;
 1          
 -----------
@@ -1557,7 +1563,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0, 1}
 				Number of columns fetched=2
 				Number of deleted rows visited=0
@@ -1566,16 +1572,16 @@
 				Number of rows visited=5
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-Column[0][0] Id: 1
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+					Column[0][0] Id: 1
+					Operator: =
+					Ordered nulls: false
+					Unknown return value: false
+					Negate comparison result: false
 ij> select max(y) from x where y = 7;
 1          
 -----------
@@ -1643,7 +1649,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={1}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -1652,16 +1658,16 @@
 				Number of rows visited=5
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-Column[0][0] Id: 1
-Operator: =
-Ordered nulls: false
-Unknown return value: false
-Negate comparison result: false
+					Column[0][0] Id: 1
+					Operator: =
+					Ordered nulls: false
+					Unknown return value: false
+					Negate comparison result: false
 ij> select max(x) from x group by x;
 1          
 -----------
@@ -1734,7 +1740,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -1743,12 +1749,12 @@
 				Number of rows visited=5
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> -- could do max optimization on this, but we don't 
 -- really know much about qualifications
 select max(x) from x where x > 99;
@@ -1820,7 +1826,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -1829,13 +1835,13 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	> on first 1 column(s).
-	Ordered null semantics on the following columns: 
-				stop position: 
-	None
+				start position:
+					> on first 1 column(s).
+					Ordered null semantics on the following columns: 
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> autocommit off;
 ij> prepare p as 'select max(x) from x';
 ij> execute p;
@@ -2135,7 +2141,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -2144,12 +2150,12 @@
 				Number of rows visited=1
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> -- min of b should use max optimization whether b in nullable or not because NULLS are sorted high
 select min(b) from t1;
 1          
@@ -2350,7 +2356,7 @@
 				next time (milliseconds) = 0
 				close time (milliseconds) = 0
 				next time in milliseconds/row = 0
-			scan information: 
+			scan information:
 				Bit set of columns fetched={0}
 				Number of columns fetched=1
 				Number of deleted rows visited=0
@@ -2359,12 +2365,12 @@
 				Number of rows visited=10
 				Scan type=btree
 				Tree height=1
-				start position: 
-	None
-				stop position: 
-	None
+				start position:
+					None
+				stop position:
+					None
 				qualifiers:
-None
+					None
 ij> create table t2 (a int not null, b int not null);
 0 rows inserted/updated/deleted
 ij> insert into t2 select a, b from t1 where a is not null and b is not null;