I have a optimizer question I was hoping for someone well versed could provide some input to:

As part of my work on DERBY-2998, the implementation of the ROW_NUMBER() window function, I'm having trouble with the optimizer and its (lack of) pushing predicates down the query tree.

The scenario I have is a nested SELECT with a WHERE clause on the outer SELECT referring an aliased column in the inner SELECT. The query in question is this one:

SELECT * FROM (SELECT ROW_NUMBER() AS R, T.* FROM T) AS TR WHERE R < 3;

I've attached the output from derby.language.logQueryPlan along with derby.debug.true=DumpOptimizedTree for reference.

Reading the log of the optimized tree and query plan, I deduce the optimizer does not push the where predicate(s) into the inner select like it should (ought to), and I can't seem to wrap my head around why this isn't so, and where in the code this was supposed to have happened. I've probably just gone blind at this, and I may be interpreting the graph from DumpOptimizedTree wrong for all I know.

Ideally I'd like the optimizer to push the where predicate all the way into the OLAPResultSet node, and stop the execution there once the restricion given in the where predicate is met. In this particular case that decision is based on the fact that row_number() is ever increasing. But that's all part of the restriction evaluation, and at this stage I have no restriction/where predicate in OLAPResultSet - even after optimization.

To add to the info I see the same kind of queryplan in the similar query where the aliased expression is exchanged with 'a*b':

SELECT * FROM (SELECT a*b AS R, T.* FROM T) AS TR WHERE R < 3;

So I'm starting to wonder if this is a general Derby problem, where restrictions on aliased expression columns are not properly optimized?

Your comments and input is greatly appreciated!

Cheers,
Thomas
--
Thomas Nielsen
----------------------------------------------------------------
2007-12-07 10:32:28.556 GMT:
 Booting Derby version The Apache Software Foundation - Apache Derby - 10.4.0.0 alpha - (601732M): instance c013800d-0116-b429-b344-ffffe275b270
on database directory /var/tmp/ij/mydb  

Database Class Loader started - derby.database.classpath=''

[EMAIL PROTECTED]
name: null
updateMode: READ_ONLY (1)
statementType: SELECT
resultSet: 	
	[EMAIL PROTECTED]
	correlation Name: null
	null
	tableNumber -1
	level 0
	resultSetNumber: 0
	referencedTableMap: {0}
	statementResultSet: false
	resultColumns: 	
	[EMAIL PROTECTED]
	exposedName: R
	name: R
	tableName: TR
	isNameGenerated: false
	sourceTableName: null
	type: BIGINT NOT NULL
	columnDescriptor: null
	isGenerated: false
	isGeneratedForUnmatchedColumnInInsert: false
	isGroupingColumn: false
	isReferenced: true
	isRedundant: false
	virtualColumnId: 1
	resultSetNumber: -1
	dataTypeServices: BIGINT NOT NULL
	expression: 		
		[EMAIL PROTECTED]
		dataTypeServices: null
		sourceColumn: 			
			[EMAIL PROTECTED]
			exposedName: R
			name: R
			tableName: null
			isNameGenerated: false
			sourceTableName: null
			type: BIGINT NOT NULL
			columnDescriptor: null
			isGenerated: false
			isGeneratedForUnmatchedColumnInInsert: false
			isGroupingColumn: false
			isReferenced: false
			isRedundant: false
			virtualColumnId: 1
			resultSetNumber: -1
			dataTypeServices: BIGINT NOT NULL
			expression: 				
				[EMAIL PROTECTED]
				columnName: R
				tableNumber: 0
				columnNumber: 1
				replacesAggregate: false
				tableName: TR
				nestingLevel: 0
				sourceLevel: 0
				dataTypeServices: BIGINT NOT NULL
				source: 					
					[EMAIL PROTECTED]
					exposedName: R
					name: R
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: BIGINT NOT NULL
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: true
					isRedundant: false
					virtualColumnId: 1
					resultSetNumber: -1
					dataTypeServices: BIGINT NOT NULL
					expression: 						
						[EMAIL PROTECTED]
						dataTypeServices: null
						sourceColumn: 							
							[EMAIL PROTECTED]
							exposedName: R
							name: R
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: BIGINT NOT NULL
							columnDescriptor: null
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: false
							isRedundant: false
							virtualColumnId: 1
							resultSetNumber: -1
							dataTypeServices: BIGINT NOT NULL
							expression: 								
								[EMAIL PROTECTED]
								exposedName: null
								name: null
								tableName: null
								isNameGenerated: false
								sourceTableName: null
								type: BIGINT NOT NULL
								columnDescriptor: null
								isGenerated: false
								isGeneratedForUnmatchedColumnInInsert: false
								isGroupingColumn: false
								isReferenced: false
								isRedundant: false
								virtualColumnId: 0
								resultSetNumber: -1
								dataTypeServices: BIGINT NOT NULL
	
	[EMAIL PROTECTED]
	exposedName: A
	name: A
	tableName: TR
	isNameGenerated: false
	sourceTableName: T
	type: INTEGER
	columnDescriptor: null
	isGenerated: false
	isGeneratedForUnmatchedColumnInInsert: false
	isGroupingColumn: false
	isReferenced: true
	isRedundant: false
	virtualColumnId: 2
	resultSetNumber: -1
	dataTypeServices: INTEGER
	expression: 		
		[EMAIL PROTECTED]
		dataTypeServices: null
		sourceColumn: 			
			[EMAIL PROTECTED]
			exposedName: A
			name: A
			tableName: null
			isNameGenerated: false
			sourceTableName: null
			type: INTEGER
			columnDescriptor: null
			isGenerated: false
			isGeneratedForUnmatchedColumnInInsert: false
			isGroupingColumn: false
			isReferenced: false
			isRedundant: false
			virtualColumnId: 2
			resultSetNumber: -1
			dataTypeServices: INTEGER
			expression: 				
				[EMAIL PROTECTED]
				columnName: A
				tableNumber: 0
				columnNumber: 2
				replacesAggregate: false
				tableName: TR
				nestingLevel: 0
				sourceLevel: 0
				dataTypeServices: INTEGER
				source: 					
					[EMAIL PROTECTED]
					exposedName: A
					name: A
					tableName: T
					isNameGenerated: false
					sourceTableName: T
					type: INTEGER
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: true
					isRedundant: false
					virtualColumnId: 2
					resultSetNumber: -1
					dataTypeServices: INTEGER
					expression: 						
						[EMAIL PROTECTED]
						dataTypeServices: null
						sourceColumn: 							
							[EMAIL PROTECTED]
							exposedName: A
							name: A
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: INTEGER
							columnDescriptor: null
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: false
							isRedundant: false
							virtualColumnId: 2
							resultSetNumber: -1
							dataTypeServices: INTEGER
							expression: 								
								[EMAIL PROTECTED]
								columnName: A
								tableNumber: 1
								columnNumber: 1
								replacesAggregate: false
								tableName: T
								nestingLevel: 1
								sourceLevel: 1
								dataTypeServices: INTEGER
								source: 									
									[EMAIL PROTECTED]
									exposedName: A
									name: A
									tableName: null
									isNameGenerated: false
									sourceTableName: null
									type: INTEGER
									columnDescriptor: columnName: A
									columnPosition: 1
									columnType: INTEGER
									columnDefault: null
									uuid: 72e9c096-0114-cb72-028f-ffffe275b270
									defaultUUID: null
									
									isGenerated: false
									isGeneratedForUnmatchedColumnInInsert: false
									isGroupingColumn: false
									isReferenced: true
									isRedundant: false
									virtualColumnId: 1
									resultSetNumber: -1
									dataTypeServices: INTEGER
									expression: 										
										[EMAIL PROTECTED]
										dataTypeServices: null
										sourceColumn: 											
											[EMAIL PROTECTED]
											exposedName: A
											name: A
											tableName: null
											isNameGenerated: false
											sourceTableName: null
											type: INTEGER
											columnDescriptor: columnName: A
											columnPosition: 1
											columnType: INTEGER
											columnDefault: null
											uuid: 72e9c096-0114-cb72-028f-ffffe275b270
											defaultUUID: null
											
											isGenerated: false
											isGeneratedForUnmatchedColumnInInsert: false
											isGroupingColumn: false
											isReferenced: true
											isRedundant: false
											virtualColumnId: 1
											resultSetNumber: -1
											dataTypeServices: INTEGER
											expression: 												
												[EMAIL PROTECTED]
												columnName: A
												TdataTypeServices: INTEGER
	
	[EMAIL PROTECTED]
	exposedName: B
	name: B
	tableName: TR
	isNameGenerated: false
	sourceTableName: T
	type: INTEGER
	columnDescriptor: null
	isGenerated: false
	isGeneratedForUnmatchedColumnInInsert: false
	isGroupingColumn: false
	isReferenced: true
	isRedundant: false
	virtualColumnId: 3
	resultSetNumber: -1
	dataTypeServices: INTEGER
	expression: 		
		[EMAIL PROTECTED]
		dataTypeServices: null
		sourceColumn: 			
			[EMAIL PROTECTED]
			exposedName: B
			name: B
			tableName: null
			isNameGenerated: false
			sourceTableName: null
			type: INTEGER
			columnDescriptor: null
			isGenerated: false
			isGeneratedForUnmatchedColumnInInsert: false
			isGroupingColumn: false
			isReferenced: false
			isRedundant: false
			virtualColumnId: 3
			resultSetNumber: -1
			dataTypeServices: INTEGER
			expression: 				
				[EMAIL PROTECTED]
				columnName: B
				tableNumber: 0
				columnNumber: 3
				replacesAggregate: false
				tableName: TR
				nestingLevel: 0
				sourceLevel: 0
				dataTypeServices: INTEGER
				source: 					
					[EMAIL PROTECTED]
					exposedName: B
					name: B
					tableName: T
					isNameGenerated: false
					sourceTableName: T
					type: INTEGER
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: true
					isRedundant: false
					virtualColumnId: 3
					resultSetNumber: -1
					dataTypeServices: INTEGER
					expression: 						
						[EMAIL PROTECTED]
						dataTypeServices: null
						sourceColumn: 							
							[EMAIL PROTECTED]
							exposedName: B
							name: B
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: INTEGER
							columnDescriptor: null
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: false
							isRedundant: false
							virtualColumnId: 3
							resultSetNumber: -1
							dataTypeServices: INTEGER
							expression: 								
								[EMAIL PROTECTED]
								columnName: B
								tableNumber: 1
								columnNumber: 2
								replacesAggregate: false
								tableName: T
								nestingLevel: 1
								sourceLevel: 1
								dataTypeServices: INTEGER
								source: 									
									[EMAIL PROTECTED]
									exposedName: B
									name: B
									tableName: null
									isNameGenerated: false
									sourceTableName: null
									type: INTEGER
									columnDescriptor: columnName: B
									columnPosition: 2
									columnType: INTEGER
									columnDefault: null
									uuid: 72e9c096-0114-cb72-028f-ffffe275b270
									defaultUUID: null
									
									isGenerated: false
									isGeneratedForUnmatchedColumnInInsert: false
									isGroupingColumn: false
									isReferenced: true
									isRedundant: false
									virtualColumnId: 2
									resultSetNumber: -1
									dataTypeServices: INTEGER
									expression: 										
										[EMAIL PROTECTED]
										dataTypeServices: null
										sourceColumn: 											
											[EMAIL PROTECTED]
											exposedName: B
											name: B
											tableName: null
											isNameGenerated: false
											sourceTableName: null
											type: INTEGER
											columnDescriptor: columnName: B
											columnPosition: 2
											columnType: INTEGER
											columnDefault: null
											uuid: 72e9c096-0114-cb72-028f-ffffe275b270
											defaultUUID: null
											
											isGenerated: false
											isGeneratedForUnmatchedColumnInInsert: false
											isGroupingColumn: false
											isReferenced: true
											isRedundant: false
											virtualColumnId: 2
											resultSetNumber: -1
											dataTypeServices: INTEGER
											expression: 												
												[EMAIL PROTECTED]
												columnName: B
												TdataTypeServices: INTEGER
	childResult: 		
		[EMAIL PROTECTED]
		correlation Name: null
		null
		tableNumber -1
		level 0
		resultSetNumber: 0
		referencedTableMap: {0}
		statementResultSet: false
		resultColumns: 		
		[EMAIL PROTECTED]
		exposedName: R
		name: R
		tableName: null
		isNameGenerated: false
		sourceTableName: null
		type: BIGINT NOT NULL
		columnDescriptor: null
		isGenerated: false
		isGeneratedForUnmatchedColumnInInsert: false
		isGroupingColumn: false
		isReferenced: false
		isRedundant: false
		virtualColumnId: 1
		resultSetNumber: -1
		dataTypeServices: BIGINT NOT NULL
		expression: 			
			[EMAIL PROTECTED]
			columnName: R
			tableNumber: 0
			columnNumber: 1
			replacesAggregate: false
			tableName: TR
			nestingLevel: 0
			sourceLevel: 0
			dataTypeServices: BIGINT NOT NULL
			source: 				
				[EMAIL PROTECTED]
				exposedName: R
				name: R
				tableName: null
				isNameGenerated: false
				sourceTableName: null
				type: BIGINT NOT NULL
				columnDescriptor: null
				isGenerated: false
				isGeneratedForUnmatchedColumnInInsert: false
				isGroupingColumn: false
				isReferenced: true
				isRedundant: false
				virtualColumnId: 1
				resultSetNumber: -1
				dataTypeServices: BIGINT NOT NULL
				expression: 					
					[EMAIL PROTECTED]
					dataTypeServices: null
					sourceColumn: 						
						[EMAIL PROTECTED]
						exposedName: R
						name: R
						tableName: null
						isNameGenerated: false
						sourceTableName: null
						type: BIGINT NOT NULL
						columnDescriptor: null
						isGenerated: false
						isGeneratedForUnmatchedColumnInInsert: false
						isGroupingColumn: false
						isReferenced: false
						isRedundant: false
						virtualColumnId: 1
						resultSetNumber: -1
						dataTypeServices: BIGINT NOT NULL
						expression: 							
							[EMAIL PROTECTED]
							exposedName: null
							name: null
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: BIGINT NOT NULL
							columnDescriptor: null
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: false
							isRedundant: false
							virtualColumnId: 0
							resultSetNumber: -1
							dataTypeServices: BIGINT NOT NULL
		
		[EMAIL PROTECTED]
		exposedName: A
		name: A
		tableName: null
		isNameGenerated: false
		sourceTableName: null
		type: INTEGER
		columnDescriptor: null
		isGenerated: false
		isGeneratedForUnmatchedColumnInInsert: false
		isGroupingColumn: false
		isReferenced: false
		isRedundant: false
		virtualColumnId: 2
		resultSetNumber: -1
		dataTypeServices: INTEGER
		expression: 			
			[EMAIL PROTECTED]
			columnName: A
			tableNumber: 0
			columnNumber: 2
			replacesAggregate: false
			tableName: TR
			nestingLevel: 0
			sourceLevel: 0
			dataTypeServices: INTEGER
			source: 				
				[EMAIL PROTECTED]
				exposedName: A
				name: A
				tableName: T
				isNameGenerated: false
				sourceTableName: T
				type: INTEGER
				columnDescriptor: null
				isGenerated: false
				isGeneratedForUnmatchedColumnInInsert: false
				isGroupingColumn: false
				isReferenced: true
				isRedundant: false
				virtualColumnId: 2
				resultSetNumber: -1
				dataTypeServices: INTEGER
				expression: 					
					[EMAIL PROTECTED]
					dataTypeServices: null
					sourceColumn: 						
						[EMAIL PROTECTED]
						exposedName: A
						name: A
						tableName: null
						isNameGenerated: false
						sourceTableName: null
						type: INTEGER
						columnDescriptor: null
						isGenerated: false
						isGeneratedForUnmatchedColumnInInsert: false
						isGroupingColumn: false
						isReferenced: false
						isRedundant: false
						virtualColumnId: 2
						resultSetNumber: -1
						dataTypeServices: INTEGER
						expression: 							
							[EMAIL PROTECTED]
							columnName: A
							tableNumber: 1
							columnNumber: 1
							replacesAggregate: false
							tableName: T
							nestingLevel: 1
							sourceLevel: 1
							dataTypeServices: INTEGER
							source: 								
								[EMAIL PROTECTED]
								exposedName: A
								name: A
								tableName: null
								isNameGenerated: false
								sourceTableName: null
								type: INTEGER
								columnDescriptor: columnName: A
								columnPosition: 1
								columnType: INTEGER
								columnDefault: null
								uuid: 72e9c096-0114-cb72-028f-ffffe275b270
								defaultUUID: null
								
								isGenerated: false
								isGeneratedForUnmatchedColumnInInsert: false
								isGroupingColumn: false
								isReferenced: true
								isRedundant: false
								virtualColumnId: 1
								resultSetNumber: -1
								dataTypeServices: INTEGER
								expression: 									
									[EMAIL PROTECTED]
									dataTypeServices: null
									sourceColumn: 										
										[EMAIL PROTECTED]
										exposedName: A
										name: A
										tableName: null
										isNameGenerated: false
										sourceTableName: null
										type: INTEGER
										columnDescriptor: columnName: A
										columnPosition: 1
										columnType: INTEGER
										columnDefault: null
										uuid: 72e9c096-0114-cb72-028f-ffffe275b270
										defaultUUID: null
										
										isGenerated: false
										isGeneratedForUnmatchedColumnInInsert: false
										isGroupingColumn: false
										isReferenced: true
										isRedundant: false
										virtualColumnId: 1
										resultSetNumber: -1
										dataTypeServices: INTEGER
										expression: 											
											[EMAIL PROTECTED]
											columnName: A
											TdataTypeServices: INTEGER
		
		[EMAIL PROTECTED]
		exposedName: B
		name: B
		tableName: null
		isNameGenerated: false
		sourceTableName: null
		type: INTEGER
		columnDescriptor: null
		isGenerated: false
		isGeneratedForUnmatchedColumnInInsert: false
		isGroupingColumn: false
		isReferenced: false
		isRedundant: false
		virtualColumnId: 3
		resultSetNumber: -1
		dataTypeServices: INTEGER
		expression: 			
			[EMAIL PROTECTED]
			columnName: B
			tableNumber: 0
			columnNumber: 3
			replacesAggregate: false
			tableName: TR
			nestingLevel: 0
			sourceLevel: 0
			dataTypeServices: INTEGER
			source: 				
				[EMAIL PROTECTED]
				exposedName: B
				name: B
				tableName: T
				isNameGenerated: false
				sourceTableName: T
				type: INTEGER
				columnDescriptor: null
				isGenerated: false
				isGeneratedForUnmatchedColumnInInsert: false
				isGroupingColumn: false
				isReferenced: true
				isRedundant: false
				virtualColumnId: 3
				resultSetNumber: -1
				dataTypeServices: INTEGER
				expression: 					
					[EMAIL PROTECTED]
					dataTypeServices: null
					sourceColumn: 						
						[EMAIL PROTECTED]
						exposedName: B
						name: B
						tableName: null
						isNameGenerated: false
						sourceTableName: null
						type: INTEGER
						columnDescriptor: null
						isGenerated: false
						isGeneratedForUnmatchedColumnInInsert: false
						isGroupingColumn: false
						isReferenced: false
						isRedundant: false
						virtualColumnId: 3
						resultSetNumber: -1
						dataTypeServices: INTEGER
						expression: 							
							[EMAIL PROTECTED]
							columnName: B
							tableNumber: 1
							columnNumber: 2
							replacesAggregate: false
							tableName: T
							nestingLevel: 1
							sourceLevel: 1
							dataTypeServices: INTEGER
							source: 								
								[EMAIL PROTECTED]
								exposedName: B
								name: B
								tableName: null
								isNameGenerated: false
								sourceTableName: null
								type: INTEGER
								columnDescriptor: columnName: B
								columnPosition: 2
								columnType: INTEGER
								columnDefault: null
								uuid: 72e9c096-0114-cb72-028f-ffffe275b270
								defaultUUID: null
								
								isGenerated: false
								isGeneratedForUnmatchedColumnInInsert: false
								isGroupingColumn: false
								isReferenced: true
								isRedundant: false
								virtualColumnId: 2
								resultSetNumber: -1
								dataTypeServices: INTEGER
								expression: 									
									[EMAIL PROTECTED]
									dataTypeServices: null
									sourceColumn: 										
										[EMAIL PROTECTED]
										exposedName: B
										name: B
										tableName: null
										isNameGenerated: false
										sourceTableName: null
										type: INTEGER
										columnDescriptor: columnName: B
										columnPosition: 2
										columnType: INTEGER
										columnDefault: null
										uuid: 72e9c096-0114-cb72-028f-ffffe275b270
										defaultUUID: null
										
										isGenerated: false
										isGeneratedForUnmatchedColumnInInsert: false
										isGroupingColumn: false
										isReferenced: true
										isRedundant: false
										virtualColumnId: 2
										resultSetNumber: -1
										dataTypeServices: INTEGER
										expression: 											
											[EMAIL PROTECTED]
											columnName: B
											TdataTypeServices: INTEGER
		childResult: 			
			[EMAIL PROTECTED]
			correlation Name: null
			null
			tableNumber 0
			level 0
			resultSetNumber: 0
			referencedTableMap: {0}
			statementResultSet: false
			resultColumns: 			
			[EMAIL PROTECTED]
			exposedName: R
			name: R
			tableName: null
			isNameGenerated: false
			sourceTableName: null
			type: BIGINT NOT NULL
			columnDescriptor: null
			isGenerated: false
			isGeneratedForUnmatchedColumnInInsert: false
			isGroupingColumn: false
			isReferenced: true
			isRedundant: false
			virtualColumnId: 1
			resultSetNumber: -1
			dataTypeServices: BIGINT NOT NULL
			expression: 				
				[EMAIL PROTECTED]
				dataTypeServices: null
				sourceColumn: 					
					[EMAIL PROTECTED]
					exposedName: R
					name: R
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: BIGINT NOT NULL
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: false
					isRedundant: false
					virtualColumnId: 1
					resultSetNumber: -1
					dataTypeServices: BIGINT NOT NULL
					expression: 						
						[EMAIL PROTECTED]
						exposedName: null
						name: null
						tableName: null
						isNameGenerated: false
						sourceTableName: null
						type: BIGINT NOT NULL
						columnDescriptor: null
						isGenerated: false
						isGeneratedForUnmatchedColumnInInsert: false
						isGroupingColumn: false
						isReferenced: false
						isRedundant: false
						virtualColumnId: 0
						resultSetNumber: -1
						dataTypeServices: BIGINT NOT NULL
			
			[EMAIL PROTECTED]
			exposedName: A
			name: A
			tableName: T
			isNameGenerated: false
			sourceTableName: T
			type: INTEGER
			columnDescriptor: null
			isGenerated: false
			isGeneratedForUnmatchedColumnInInsert: false
			isGroupingColumn: false
			isReferenced: true
			isRedundant: false
			virtualColumnId: 2
			resultSetNumber: -1
			dataTypeServices: INTEGER
			expression: 				
				[EMAIL PROTECTED]
				dataTypeServices: null
				sourceColumn: 					
					[EMAIL PROTECTED]
					exposedName: A
					name: A
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: INTEGER
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: false
					isRedundant: false
					virtualColumnId: 2
					resultSetNumber: -1
					dataTypeServices: INTEGER
					expression: 						
						[EMAIL PROTECTED]
						columnName: A
						tableNumber: 1
						columnNumber: 1
						replacesAggregate: false
						tableName: T
						nestingLevel: 1
						sourceLevel: 1
						dataTypeServices: INTEGER
						source: 							
							[EMAIL PROTECTED]
							exposedName: A
							name: A
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: INTEGER
							columnDescriptor: columnName: A
							columnPosition: 1
							columnType: INTEGER
							columnDefault: null
							uuid: 72e9c096-0114-cb72-028f-ffffe275b270
							defaultUUID: null
							
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: true
							isRedundant: false
							virtualColumnId: 1
							resultSetNumber: -1
							dataTypeServices: INTEGER
							expression: 								
								[EMAIL PROTECTED]
								dataTypeServices: null
								sourceColumn: 									
									[EMAIL PROTECTED]
									exposedName: A
									name: A
									tableName: null
									isNameGenerated: false
									sourceTableName: null
									type: INTEGER
									columnDescriptor: columnName: A
									columnPosition: 1
									columnType: INTEGER
									columnDefault: null
									uuid: 72e9c096-0114-cb72-028f-ffffe275b270
									defaultUUID: null
									
									isGenerated: false
									isGeneratedForUnmatchedColumnInInsert: false
									isGroupingColumn: false
									isReferenced: true
									isRedundant: false
									virtualColumnId: 1
									resultSetNumber: -1
									dataTypeServices: INTEGER
									expression: 										
										[EMAIL PROTECTED]
										columnName: A
										TdataTypeServices: INTEGER
			
			[EMAIL PROTECTED]
			exposedName: B
			name: B
			tableName: T
			isNameGenerated: false
			sourceTableName: T
			type: INTEGER
			columnDescriptor: null
			isGenerated: false
			isGeneratedForUnmatchedColumnInInsert: false
			isGroupingColumn: false
			isReferenced: true
			isRedundant: false
			virtualColumnId: 3
			resultSetNumber: -1
			dataTypeServices: INTEGER
			expression: 				
				[EMAIL PROTECTED]
				dataTypeServices: null
				sourceColumn: 					
					[EMAIL PROTECTED]
					exposedName: B
					name: B
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: INTEGER
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: false
					isRedundant: false
					virtualColumnId: 3
					resultSetNumber: -1
					dataTypeServices: INTEGER
					expression: 						
						[EMAIL PROTECTED]
						columnName: B
						tableNumber: 1
						columnNumber: 2
						replacesAggregate: false
						tableName: T
						nestingLevel: 1
						sourceLevel: 1
						dataTypeServices: INTEGER
						source: 							
							[EMAIL PROTECTED]
							exposedName: B
							name: B
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: INTEGER
							columnDescriptor: columnName: B
							columnPosition: 2
							columnType: INTEGER
							columnDefault: null
							uuid: 72e9c096-0114-cb72-028f-ffffe275b270
							defaultUUID: null
							
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: true
							isRedundant: false
							virtualColumnId: 2
							resultSetNumber: -1
							dataTypeServices: INTEGER
							expression: 								
								[EMAIL PROTECTED]
								dataTypeServices: null
								sourceColumn: 									
									[EMAIL PROTECTED]
									exposedName: B
									name: B
									tableName: null
									isNameGenerated: false
									sourceTableName: null
									type: INTEGER
									columnDescriptor: columnName: B
									columnPosition: 2
									columnType: INTEGER
									columnDefault: null
									uuid: 72e9c096-0114-cb72-028f-ffffe275b270
									defaultUUID: null
									
									isGenerated: false
									isGeneratedForUnmatchedColumnInInsert: false
									isGroupingColumn: false
									isReferenced: true
									isRedundant: false
									virtualColumnId: 2
									resultSetNumber: -1
									dataTypeServices: INTEGER
									expression: 										
										[EMAIL PROTECTED]
										columnName: B
										TdataTypeServices: INTEGER
			childResult: 				
				[EMAIL PROTECTED]
				correlation Name: null
				null
				tableNumber -1
				level 0
				resultSetNumber: 0
				referencedTableMap: {1}
				statementResultSet: false
				resultColumns: 				
				[EMAIL PROTECTED]
				exposedName: R
				name: R
				tableName: null
				isNameGenerated: false
				sourceTableName: null
				type: BIGINT NOT NULL
				columnDescriptor: null
				isGenerated: false
				isGeneratedForUnmatchedColumnInInsert: false
				isGroupingColumn: false
				isReferenced: false
				isRedundant: false
				virtualColumnId: 1
				resultSetNumber: -1
				dataTypeServices: BIGINT NOT NULL
				expression: 					
					[EMAIL PROTECTED]
					exposedName: null
					name: null
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: BIGINT NOT NULL
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: false
					isRedundant: false
					virtualColumnId: 0
					resultSetNumber: -1
					dataTypeServices: BIGINT NOT NULL
				
				[EMAIL PROTECTED]
				exposedName: A
				name: A
				tableName: null
				isNameGenerated: false
				sourceTableName: null
				type: INTEGER
				columnDescriptor: null
				isGenerated: false
				isGeneratedForUnmatchedColumnInInsert: false
				isGroupingColumn: false
				isReferenced: false
				isRedundant: false
				virtualColumnId: 2
				resultSetNumber: -1
				dataTypeServices: INTEGER
				expression: 					
					[EMAIL PROTECTED]
					columnName: A
					tableNumber: 1
					columnNumber: 1
					replacesAggregate: false
					tableName: T
					nestingLevel: 1
					sourceLevel: 1
					dataTypeServices: INTEGER
					source: 						
						[EMAIL PROTECTED]
						exposedName: A
						name: A
						tableName: null
						isNameGenerated: false
						sourceTableName: null
						type: INTEGER
						columnDescriptor: columnName: A
						columnPosition: 1
						columnType: INTEGER
						columnDefault: null
						uuid: 72e9c096-0114-cb72-028f-ffffe275b270
						defaultUUID: null
						
						isGenerated: false
						isGeneratedForUnmatchedColumnInInsert: false
						isGroupingColumn: false
						isReferenced: true
						isRedundant: false
						virtualColumnId: 1
						resultSetNumber: -1
						dataTypeServices: INTEGER
						expression: 							
							[EMAIL PROTECTED]
							dataTypeServices: null
							sourceColumn: 								
								[EMAIL PROTECTED]
								exposedName: A
								name: A
								tableName: null
								isNameGenerated: false
								sourceTableName: null
								type: INTEGER
								columnDescriptor: columnName: A
								columnPosition: 1
								columnType: INTEGER
								columnDefault: null
								uuid: 72e9c096-0114-cb72-028f-ffffe275b270
								defaultUUID: null
								
								isGenerated: false
								isGeneratedForUnmatchedColumnInInsert: false
								isGroupingColumn: false
								isReferenced: true
								isRedundant: false
								virtualColumnId: 1
								resultSetNumber: -1
								dataTypeServices: INTEGER
								expression: 									
									[EMAIL PROTECTED]
									columnName: A
									TdataTypeServices: INTEGER
				
				[EMAIL PROTECTED]
				exposedName: B
				name: B
				tableName: null
				isNameGenerated: false
				sourceTableName: null
				type: INTEGER
				columnDescriptor: null
				isGenerated: false
				isGeneratedForUnmatchedColumnInInsert: false
				isGroupingColumn: false
				isReferenced: false
				isRedundant: false
				virtualColumnId: 3
				resultSetNumber: -1
				dataTypeServices: INTEGER
				expression: 					
					[EMAIL PROTECTED]
					columnName: B
					tableNumber: 1
					columnNumber: 2
					replacesAggregate: false
					tableName: T
					nestingLevel: 1
					sourceLevel: 1
					dataTypeServices: INTEGER
					source: 						
						[EMAIL PROTECTED]
						exposedName: B
						name: B
						tableName: null
						isNameGenerated: false
						sourceTableName: null
						type: INTEGER
						columnDescriptor: columnName: B
						columnPosition: 2
						columnType: INTEGER
						columnDefault: null
						uuid: 72e9c096-0114-cb72-028f-ffffe275b270
						defaultUUID: null
						
						isGenerated: false
						isGeneratedForUnmatchedColumnInInsert: false
						isGroupingColumn: false
						isReferenced: true
						isRedundant: false
						virtualColumnId: 2
						resultSetNumber: -1
						dataTypeServices: INTEGER
						expression: 							
							[EMAIL PROTECTED]
							dataTypeServices: null
							sourceColumn: 								
								[EMAIL PROTECTED]
								exposedName: B
								name: B
								tableName: null
								isNameGenerated: false
								sourceTableName: null
								type: INTEGER
								columnDescriptor: columnName: B
								columnPosition: 2
								columnType: INTEGER
								columnDefault: null
								uuid: 72e9c096-0114-cb72-028f-ffffe275b270
								defaultUUID: null
								
								isGenerated: false
								isGeneratedForUnmatchedColumnInInsert: false
								isGroupingColumn: false
								isReferenced: true
								isRedundant: false
								virtualColumnId: 2
								resultSetNumber: -1
								dataTypeServices: INTEGER
								expression: 									
									[EMAIL PROTECTED]
									columnName: B
									TdataTypeServices: INTEGER
				childResult: 					
					[EMAIL PROTECTED]
					correlation Name: null
					null
					tableNumber -1
					level 0
					resultSetNumber: 0
					referencedTableMap: null
					statementResultSet: false
					resultColumns: 					
					[EMAIL PROTECTED]
					exposedName: R
					name: R
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: BIGINT NOT NULL
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: false
					isRedundant: false
					virtualColumnId: 1
					resultSetNumber: -1
					dataTypeServices: BIGINT NOT NULL
					expression: 						
						[EMAIL PROTECTED]
						exposedName: null
						name: null
						tableName: null
						isNameGenerated: false
						sourceTableName: null
						type: BIGINT NOT NULL
						columnDescriptor: null
						isGenerated: false
						isGeneratedForUnmatchedColumnInInsert: false
						isGroupingColumn: false
						isReferenced: false
						isRedundant: false
						virtualColumnId: 0
						resultSetNumber: -1
						dataTypeServices: BIGINT NOT NULL
					
					[EMAIL PROTECTED]
					exposedName: A
					name: A
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: INTEGER
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: false
					isRedundant: false
					virtualColumnId: 2
					resultSetNumber: -1
					dataTypeServices: INTEGER
					expression: 						
						[EMAIL PROTECTED]
						columnName: A
						tableNumber: 1
						columnNumber: 1
						replacesAggregate: false
						tableName: T
						nestingLevel: 1
						sourceLevel: 1
						dataTypeServices: INTEGER
						source: 							
							[EMAIL PROTECTED]
							exposedName: A
							name: A
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: INTEGER
							columnDescriptor: columnName: A
							columnPosition: 1
							columnType: INTEGER
							columnDefault: null
							uuid: 72e9c096-0114-cb72-028f-ffffe275b270
							defaultUUID: null
							
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: true
							isRedundant: false
							virtualColumnId: 1
							resultSetNumber: -1
							dataTypeServices: INTEGER
							expression: 								
								[EMAIL PROTECTED]
								dataTypeServices: null
								sourceColumn: 									
									[EMAIL PROTECTED]
									exposedName: A
									name: A
									tableName: null
									isNameGenerated: false
									sourceTableName: null
									type: INTEGER
									columnDescriptor: columnName: A
									columnPosition: 1
									columnType: INTEGER
									columnDefault: null
									uuid: 72e9c096-0114-cb72-028f-ffffe275b270
									defaultUUID: null
									
									isGenerated: false
									isGeneratedForUnmatchedColumnInInsert: false
									isGroupingColumn: false
									isReferenced: true
									isRedundant: false
									virtualColumnId: 1
									resultSetNumber: -1
									dataTypeServices: INTEGER
									expression: 										
										[EMAIL PROTECTED]
										columnName: A
										TdataTypeServices: INTEGER
					
					[EMAIL PROTECTED]
					exposedName: B
					name: B
					tableName: null
					isNameGenerated: false
					sourceTableName: null
					type: INTEGER
					columnDescriptor: null
					isGenerated: false
					isGeneratedForUnmatchedColumnInInsert: false
					isGroupingColumn: false
					isReferenced: false
					isRedundant: false
					virtualColumnId: 3
					resultSetNumber: -1
					dataTypeServices: INTEGER
					expression: 						
						[EMAIL PROTECTED]
						columnName: B
						tableNumber: 1
						columnNumber: 2
						replacesAggregate: false
						tableName: T
						nestingLevel: 1
						sourceLevel: 1
						dataTypeServices: INTEGER
						source: 							
							[EMAIL PROTECTED]
							exposedName: B
							name: B
							tableName: null
							isNameGenerated: false
							sourceTableName: null
							type: INTEGER
							columnDescriptor: columnName: B
							columnPosition: 2
							columnType: INTEGER
							columnDefault: null
							uuid: 72e9c096-0114-cb72-028f-ffffe275b270
							defaultUUID: null
							
							isGenerated: false
							isGeneratedForUnmatchedColumnInInsert: false
							isGroupingColumn: false
							isReferenced: true
							isRedundant: false
							virtualColumnId: 2
							resultSetNumber: -1
							dataTypeServices: INTEGER
							expression: 								
								[EMAIL PROTECTED]
								dataTypeServices: null
								sourceColumn: 									
									[EMAIL PROTECTED]
									exposedName: B
									name: B
									tableName: null
									isNameGenerated: false
									sourceTableName: null
									type: INTEGER
									columnDescriptor: columnName: B
									columnPosition: 2
									columnType: INTEGER
									columnDefault: null
									uuid: 72e9c096-0114-cb72-028f-ffffe275b270
									defaultUUID: null
									
									isGenerated: false
									isGeneratedForUnmatchedColumnInInsert: false
									isGroupingColumn: false
									isReferenced: true
									isRedundant: false
									virtualColumnId: 2
									resultSetNumber: -1
									dataTypeServices: INTEGER
									expression: 										
										[EMAIL PROTECTED]
										columnName: B
										TdataTypeServices: INTEGER
				restrictionList: 					
					[EMAIL PROTECTED]
									projectSubquerys: 					
					[EMAIL PROTECTED]
									restrictSubquerys: 					
					[EMAIL PROTECTED]
								restrictionList: 				
				[EMAIL PROTECTED]
				null.R < <expr>
				referencedSet: {0}
				pushable: true
				; 					
					[EMAIL PROTECTED]
					null.R < <expr>
					referencedSet: {0}
					pushable: true
					andNode: 						
						[EMAIL PROTECTED]
						operator: and
						methodName: and
						dataTypeServices: BOOLEAN NOT NULL
						leftOperand: 							
							[EMAIL PROTECTED]
							operator: <
							methodName: lessThan
							dataTypeServices: BOOLEAN NOT NULL
							leftOperand: 								
								[EMAIL PROTECTED]
								columnName: R
								tableNumber: 0
								columnNumber: 1
								replacesAggregate: false
								tableName: null
								nestingLevel: 0
								sourceLevel: 0
								dataTypeServices: null
								source: 									
									[EMAIL PROTECTED]
									exposedName: R
									name: R
									tableName: null
									isNameGenerated: false
									sourceTableName: null
									type: BIGINT NOT NULL
									columnDescriptor: null
									isGenerated: false
									isGeneratedForUnmatchedColumnInInsert: false
									isGroupingColumn: false
									isReferenced: false
									isRedundant: false
									virtualColumnId: 1
									resultSetNumber: -1
									dataTypeServices: BIGINT NOT NULL
									expression: 										
										[EMAIL PROTECTED]
										exposedName: null
										name: null
										tableName: null
										isNameGenerated: false
										sourceTableName: null
										type: BIGINT NOT NULL
										columnDescriptor: null
										isGenerated: false
										isGeneratedForUnmatchedColumnInInsert: false
										isGroupingColumn: false
										isReferenced: false
										isRedundant: false
										virtualColumnId: 0
										resultSetNumber: -1
										dataTypeServices: BIGINT NOT NULL
							rightOperand: 								
								[EMAIL PROTECTED]
								value: 3
								dataTypeServices: INTEGER NOT NULL
						rightOperand: 							
							[EMAIL PROTECTED]
							value: true
							dataTypeServices: BOOLEAN NOT NULL
		restrictionList: 			
			[EMAIL PROTECTED]
					projectSubquerys: 			
			[EMAIL PROTECTED]
					restrictSubquerys: 			
			[EMAIL PROTECTED]
			orderByList: 2007-12-07 10:33:18.125 GMT Thread[main,5,main] (XID = 492), (SESSIONID = 0), select * from (select row_number() as r, t.* from t) as tr where r < 3 ******* Project-Restrict ResultSet (4):
Number of opens = 1
Rows seen = 5
Rows filtered = 3
restriction = true
projection = true
	constructor time (milliseconds) = 0
	open time (milliseconds) = 0
	next time (milliseconds) = 0
	close time (milliseconds) = 0
	restriction time (milliseconds) = 0
	projection time (milliseconds) = 0
	optimizer estimated row count:           10.00
	optimizer estimated cost:           69.48

Source result set:
	Project-Restrict ResultSet (3):
	Number of opens = 1
	Rows seen = 5
	Rows filtered = 0
	restriction = false
	projection = true
		constructor time (milliseconds) = 0
		open time (milliseconds) = 0
		next time (milliseconds) = 0
		close time (milliseconds) = 0
		restriction time (milliseconds) = 0
		projection time (milliseconds) = 0
		optimizer estimated row count:           10.00
		optimizer estimated cost:           69.48

	Source result set:
		Number of opens = 1
		Rows seen = 5
			constructor time (milliseconds) = 0
			open time (milliseconds) = 0
			next time (milliseconds) = 0
			close time (milliseconds) = 0
			optimizer estimated row count:           10.00
			optimizer estimated cost:           69.48

			Table Scan ResultSet for T at read committed isolation level using share row locking chosen by the optimizer
			Number of opens = 1
			Rows seen = 5
			Rows filtered = 0
			Fetch Size = 1
				constructor time (milliseconds) = 0
				open time (milliseconds) = 0
				next time (milliseconds) = 0
				close time (milliseconds) = 0
				next time in milliseconds/row = 0

			scan information: 
				Bit set of columns fetched=All
				Number of columns fetched=2
				Number of pages visited=2
				Number of rows qualified=5
				Number of rows visited=10
				Scan type=heap
				start position: 
null				stop position: 
null				qualifiers:
None
				optimizer estimated row count:           10.00
				optimizer estimated cost:           69.48


Reply via email to