INTEGRATION: CWS dba204c (1.48.8); FILE MERGED

2006/07/26 10:25:25 fs 1.48.8.1: #66596# getTableNode: add forgotten case table_ref := table_node
This commit is contained in:
Ivo Hinkelmann
2006-08-04 12:50:09 +00:00
parent 0e90df7f7b
commit 686dea6220

View File

@@ -4,9 +4,9 @@
*
* $RCSfile: sqliterator.cxx,v $
*
* $Revision: 1.48 $
* $Revision: 1.49 $
*
* last change: $Author: obo $ $Date: 2006-07-10 14:38:34 $
* last change: $Author: ihi $ $Date: 2006-08-04 13:50:09 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -530,7 +530,7 @@ void OSQLParseTreeIterator::getQualified_join( OSQLTables& _rTables, const OSQLP
traverseOneTableName( _rTables, pNode, aTableRange );
}
//-----------------------------------------------------------------------------
const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables, const OSQLParseNode *pTableRef,::rtl::OUString& aTableRange )
const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables, const OSQLParseNode *pTableRef,::rtl::OUString& rTableRange )
{
OSL_PRECOND( SQL_ISRULE( pTableRef, table_ref ) || SQL_ISRULE( pTableRef, joined_table )
|| SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( pTableRef, cross_union )
@@ -541,11 +541,11 @@ const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables,
if ( SQL_ISRULE( pTableRef, joined_table ) )
{
getQualified_join( _rTables, pTableRef->getChild(1), aTableRange );
getQualified_join( _rTables, pTableRef->getChild(1), rTableRange );
}
else if ( SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( pTableRef, cross_union ) )
{
getQualified_join( _rTables, pTableRef, aTableRange );
getQualified_join( _rTables, pTableRef, rTableRange );
}
else
{
@@ -553,12 +553,12 @@ const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables,
{
if ( SQL_ISPUNCTUATION( pTableRef->getChild(0), "{" ) )
{ // { OJ joined_table }
getQualified_join( _rTables, pTableRef->getChild(2), aTableRange );
getQualified_join( _rTables, pTableRef->getChild(2), rTableRange );
}
else
{ // table_node as range_variable op_column_commalist
pTableNameNode = pTableRef->getChild(0);
aTableRange = pTableRef->getChild(2)->getTokenValue();
rTableRange = pTableRef->getChild(2)->getTokenValue();
}
}
else if ( pTableRef->count() == 3 )
@@ -569,7 +569,7 @@ const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables,
if ( SQL_ISRULE( pQueryExpression, select_statement ) )
{
getSelect_statement( *m_pImpl->m_pSubTables, pQueryExpression );
aTableRange = pTableRef->getChild(2)->getTokenValue();
rTableRange = pTableRef->getChild(2)->getTokenValue();
}
else
{
@@ -579,8 +579,13 @@ const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables,
else if ( pTableRef->count() == 6 )
{
// '(' joined_table ')' as range_variable op_column_commalist
getQualified_join( _rTables, pTableRef->getChild(1), aTableRange );
aTableRange = pTableRef->getChild(4)->getTokenValue();
getQualified_join( _rTables, pTableRef->getChild(1), rTableRange );
rTableRange = pTableRef->getChild(4)->getTokenValue();
}
else if ( pTableRef->count() == 1 )
{
// table_node
pTableNameNode = pTableRef->getChild(0);
}
else
OSL_ENSURE( false, "OSQLParseTreeIterator::getTableNode: unhandled case!" );