public SaxParserConsumer( ResultSet rs, RelationInformation rinfo, InputStream is, String tName) throws OdaException
public SaxParserConsumer( ResultSet rs, RelationInformation rinfo, XMLDataInputStream is, String tName) throws OdaException
	public SaxParserConsumer( ResultSet rs, RelationInformation rinfo, InputStream is, String tName) throws OdaException	{		this.resultSet = rs;		                                 		//must start from 0		cachedResultSetRowNo = 0;				//must start from -1		currentAvailableMaxLineNo = -1;		tableName = tName;		relationInfo = rinfo;		nestedColumnUtil = new NestedColumnUtil( relationInfo, tableName, true);				//must start from 0		currentRowNo = 0;		cachedResultSet = new String[Constants.CACHED_RESULT_SET_LENGTH][resultSet.getMetaData().getColumnCount( )];		this.rootPath = relationInfo.getTableRootPath( tableName );				this.namesOfCachedComplexNestedColumns = relationInfo.getTableComplexNestedXMLColumnNames( tableName );		this.namesOfCachedSimpleNestedColumns = relationInfo.getTableSimpleNestedXMLColumnNames( tableName );				this.namesOfColumns = relationInfo.getTableColumnNames( tableName );				XMLDataInputStream xdis = (is instanceof XMLDataInputStream)?(XMLDataInputStream)is:new XMLDataInputStream(is);				if( namesOfCachedComplexNestedColumns.length > 0)		{			spNestedQueryHelper = new SaxParserComplexNestedQueryHelper(rinfo, xdis, tName);			while ( !spNestedQueryHelper.isPrepared( ) )			{				try				{					synchronized ( this )					{						wait( 1000 );					}				}				catch ( InterruptedException e )				{					throw new OdaException( e.getLocalizedMessage() );				}			}		}		sp = new SaxParser( xdis , this );		spThread = new Thread( sp );		spThread.start();	}