⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 realresultsetstatisticsfactory.java

📁 derby database source code.good for you.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
											ors.closeTime,											ors.resultSetNumber,											ors.subqueryNumber,											ors.pointOfAttachment,											ors.optimizerEstimatedRowCount,											ors.optimizerEstimatedCost,											getResultSetStatistics(ors.source)											);		}		else if (rs instanceof NormalizeResultSet)		{			NormalizeResultSet nrs = (NormalizeResultSet) rs;			return new RealNormalizeResultSetStatistics(											nrs.numOpens,											nrs.rowsSeen,											nrs.rowsFiltered,											nrs.constructorTime,											nrs.openTime,											nrs.nextTime,											nrs.closeTime,											nrs.resultSetNumber,											nrs.optimizerEstimatedRowCount,											nrs.optimizerEstimatedCost,											getResultSetStatistics(nrs.source)											);		}		else if (rs instanceof MaterializedResultSet)		{			MaterializedResultSet mrs = (MaterializedResultSet) rs;			return new RealMaterializedResultSetStatistics(											mrs.numOpens,											mrs.rowsSeen,											mrs.rowsFiltered,											mrs.constructorTime,											mrs.openTime,											mrs.nextTime,											mrs.closeTime,											mrs.createTCTime,											mrs.fetchTCTime,											mrs.resultSetNumber,											mrs.optimizerEstimatedRowCount,											mrs.optimizerEstimatedCost,											getResultSetStatistics(mrs.source)											);		}		else if (rs instanceof ScrollInsensitiveResultSet)		{			ScrollInsensitiveResultSet sirs = (ScrollInsensitiveResultSet) rs;			return new RealScrollInsensitiveResultSetStatistics(											sirs.numOpens,											sirs.rowsSeen,											sirs.rowsFiltered,											sirs.constructorTime,											sirs.openTime,											sirs.nextTime,											sirs.closeTime,											sirs.numFromHashTable,											sirs.numToHashTable,											sirs.resultSetNumber,											sirs.optimizerEstimatedRowCount,											sirs.optimizerEstimatedCost,											getResultSetStatistics(sirs.source)											);		}		else if (rs instanceof CurrentOfResultSet)		{			CurrentOfResultSet cors = (CurrentOfResultSet) rs;			return new RealCurrentOfStatistics(											cors.numOpens,											cors.rowsSeen,											cors.rowsFiltered,											cors.constructorTime,											cors.openTime,											cors.nextTime,											cors.closeTime,											cors.resultSetNumber											);		}		else if (rs instanceof HashScanResultSet)		{			boolean instantaneousLocks = false;			HashScanResultSet hsrs = (HashScanResultSet) rs;			String startPosition = null;			String stopPosition = null;			String isolationLevel =  null;			String lockString = null;			switch (hsrs.isolationLevel)			{				case TransactionController.ISOLATION_SERIALIZABLE:					isolationLevel =                         MessageService.getTextMessage(                            SQLState.LANG_SERIALIZABLE);					break;				case TransactionController.ISOLATION_REPEATABLE_READ:					isolationLevel =                         MessageService.getTextMessage(                            SQLState.LANG_REPEATABLE_READ);					break;				case TransactionController.ISOLATION_READ_COMMITTED_NOHOLDLOCK:					instantaneousLocks = true;					//fall through				case TransactionController.ISOLATION_READ_COMMITTED:					isolationLevel = MessageService.getTextMessage(												SQLState.LANG_READ_COMMITTED);					break;			}			if (hsrs.forUpdate)			{				lockString = MessageService.getTextMessage(													SQLState.LANG_EXCLUSIVE);			}			else			{				if (instantaneousLocks)				{					lockString = MessageService.getTextMessage(											SQLState.LANG_INSTANTANEOUS_SHARE);				}				else				{					lockString = MessageService.getTextMessage(														SQLState.LANG_SHARE);				}			}			switch (hsrs.lockMode)			{				case TransactionController.MODE_TABLE:					// RESOLVE: Not sure this will really work, as we					// are tacking together English words to make a phrase.					// Will this work in other languages?					lockString = lockString + " " +									MessageService.getTextMessage(														SQLState.LANG_TABLE);					break;				case TransactionController.MODE_RECORD:					// RESOLVE: Not sure this will really work, as we					// are tacking together English words to make a phrase.					// Will this work in other languages?					lockString = lockString + " " +									MessageService.getTextMessage(															SQLState.LANG_ROW);					break;			}			if (hsrs.indexName != null)			{				/* Start and stop position strings will be non-null			 	* if the HSRS has been closed.  Otherwise, we go off			 	* and build the strings now.			 	*/				startPosition = hsrs.startPositionString;				if (startPosition == null)				{					startPosition = hsrs.printStartPosition();				}				stopPosition = hsrs.stopPositionString;				if (stopPosition == null)				{					stopPosition = hsrs.printStopPosition();				}			}			// DistinctScanResultSet is simple sub-class of			// HashScanResultSet			if (rs instanceof DistinctScanResultSet)			{				return new RealDistinctScanStatistics(											hsrs.numOpens,											hsrs.rowsSeen,											hsrs.rowsFiltered,											hsrs.constructorTime,											hsrs.openTime,											hsrs.nextTime,											hsrs.closeTime,											hsrs.resultSetNumber,											hsrs.tableName,											hsrs.indexName,											hsrs.isConstraint,											hsrs.hashtableSize,											hsrs.keyColumns,											hsrs.printQualifiers(												hsrs.scanQualifiers),											hsrs.printQualifiers(												hsrs.nextQualifiers),											hsrs.getScanProperties(),											startPosition,											stopPosition,											isolationLevel,											lockString,											hsrs.optimizerEstimatedRowCount,											hsrs.optimizerEstimatedCost											);			}			else			{				return new RealHashScanStatistics(											hsrs.numOpens,											hsrs.rowsSeen,											hsrs.rowsFiltered,											hsrs.constructorTime,											hsrs.openTime,											hsrs.nextTime,											hsrs.closeTime,											hsrs.resultSetNumber,											hsrs.tableName,											hsrs.indexName,											hsrs.isConstraint,											hsrs.hashtableSize,											hsrs.keyColumns,											hsrs.printQualifiers(												hsrs.scanQualifiers),											hsrs.printQualifiers(												hsrs.nextQualifiers),											hsrs.getScanProperties(),											startPosition,											stopPosition,											isolationLevel,											lockString,											hsrs.optimizerEstimatedRowCount,											hsrs.optimizerEstimatedCost											);			}		}		else if (rs instanceof HashTableResultSet)		{			HashTableResultSet htrs = (HashTableResultSet) rs;			int subqueryTrackingArrayLength =				(htrs.subqueryTrackingArray == null) ? 0 :					htrs.subqueryTrackingArray.length;			ResultSetStatistics[] subqueryTrackingArray =				new ResultSetStatistics[subqueryTrackingArrayLength];			boolean anyAttached = false;			for (int index = 0; index < subqueryTrackingArrayLength; index++)			{				if (htrs.subqueryTrackingArray[index] != null &&					htrs.subqueryTrackingArray[index].getPointOfAttachment() ==						htrs.resultSetNumber)				{					subqueryTrackingArray[index] =										getResultSetStatistics(											htrs.subqueryTrackingArray[index]);					anyAttached = true;				}			}			if (! anyAttached)			{				subqueryTrackingArray = null;			}			return new                 RealHashTableStatistics(                    htrs.numOpens,                    htrs.rowsSeen,                    htrs.rowsFiltered,                    htrs.constructorTime,                    htrs.openTime,                    htrs.nextTime,                    htrs.closeTime,                    htrs.resultSetNumber,                    htrs.hashtableSize,                    htrs.keyColumns,                    HashScanResultSet.printQualifiers(                        htrs.nextQualifiers),                    htrs.scanProperties,                    htrs.optimizerEstimatedRowCount,                    htrs.optimizerEstimatedCost,                    subqueryTrackingArray,                    getResultSetStatistics(htrs.source)                    );		}		else if (rs instanceof VTIResultSet)		{			VTIResultSet vtirs = (VTIResultSet) rs;			return new RealVTIStatistics(										vtirs.numOpens,										vtirs.rowsSeen,										vtirs.rowsFiltered,										vtirs.constructorTime,										vtirs.openTime,										vtirs.nextTime,										vtirs.closeTime,										vtirs.resultSetNumber,										vtirs.javaClassName,										vtirs.optimizerEstimatedRowCount,										vtirs.optimizerEstimatedCost										);		}		else if (rs instanceof DependentResultSet)		{			boolean instantaneousLocks = false;			DependentResultSet dsrs = (DependentResultSet) rs;			String startPosition = null;			String stopPosition = null;			String isolationLevel =  null;			String lockString = null;			String lockRequestString = null;			switch (dsrs.isolationLevel)			{				case TransactionController.ISOLATION_SERIALIZABLE:					isolationLevel =                         MessageService.getTextMessage(                            SQLState.LANG_SERIALIZABLE);					break;				case TransactionController.ISOLATION_REPEATABLE_READ:					isolationLevel =                         MessageService.getTextMessage(                            SQLState.LANG_REPEATABLE_READ);					break;				case TransactionController.ISOLATION_READ_COMMITTED_NOHOLDLOCK:					instantaneousLocks = true;					//fall through				case TransactionController.ISOLATION_READ_COMMITTED:					isolationLevel = MessageService.getTextMessage(												SQLState.LANG_READ_COMMITTED);					break;				case TransactionController.ISOLATION_READ_UNCOMMITTED:					isolationLevel =                         MessageService.getTextMessage(                            SQLState.LANG_READ_UNCOMMITTED);					break;			}			if (dsrs.forUpdate)			{				lockString = MessageService.getTextMessage(												SQLState.LANG_EXCLUSIVE);			}			else			{				if (instantaneousLocks)				{					lockString = MessageService.getTextMessage(											SQLState.LANG_INSTANTANEOUS_SHARE);				}				else				{					lockString = MessageService.getTextMessage(														SQLState.LANG_SHARE);				}			}			switch (dsrs.lockMode)			{				case TransactionController.MODE_TABLE:					// RESOLVE: Not sure this will really work, as we					// are tacking together English words to make a phrase.					// Will this work in other languages?					lockRequestString = lockString + " " +										MessageService.getTextMessage(											SQLState.LANG_TABLE);					break;				case TransactionController.MODE_RECORD:					// RESOLVE: Not sure this will really work, as we					// are tacking together English words to make a phrase.					// Will this work in other languages?					lockRequestString = lockString + " " +										MessageService.getTextMessage(											SQLState.LANG_ROW);					break;			}			/* Start and stop position strings will be non-null			 * if the dSRS has been closed.  Otherwise, we go off			 * and build the strings now.			 */			startPosition = dsrs.startPositionString;			if (startPosition == null)			{				startPosition = dsrs.printStartPosition();			}			stopPosition = dsrs.stopPositionString;			if (stopPosition == null)			{				stopPosition = dsrs.printStopPosition();			}					return new                 RealTableScanStatistics(                    dsrs.numOpens,                    dsrs.rowsSeen,                    dsrs.rowsFiltered,                    dsrs.constructorTime,                    dsrs.openTime,                    dsrs.nextTime,                    dsrs.closeTime,                    dsrs.resultSetNumber,                    dsrs.tableName,                    dsrs.indexName,                    dsrs.isConstraint,                    dsrs.printQualifiers(),                    dsrs.getScanProperties(),                    startPosition,                    stopPosition,                    isolationLevel,                    lockRequestString,                    dsrs.rowsPerRead,                    dsrs.coarserLock,                    dsrs.optimizerEstimatedRowCount,                    dsrs.optimizerEstimatedCost);		}		else		{			return null;		}	}	//	// class interface	//	public RealResultSetStatisticsFactory() 	{	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -