User: obo Date: 2008-07-25 07:41:46+0000 Modified: dba/connectivity/source/parse/sqliterator.cxx
Log: INTEGRATION: CWS dba30g (1.58.18); FILE MERGED 2008/07/22 08:06:10 fs 1.58.18.1: #i91857# re-added joined_table File Changes: Directory: /dba/connectivity/source/parse/ ========================================== File [changed]: sqliterator.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/parse/sqliterator.cxx?r1=1.58&r2=1.59 Delta lines: +16 -8 -------------------- --- sqliterator.cxx 2008-06-16 12:11:56+0000 1.58 +++ sqliterator.cxx 2008-07-25 07:41:44+0000 1.59 @@ -497,13 +497,16 @@ //----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables, const OSQLParseNode *pTableRef,::rtl::OUString& rTableRange ) { - OSL_PRECOND( SQL_ISRULE( pTableRef, table_ref ) - || SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( pTableRef, cross_union ) - || SQL_ISRULE( pTableRef, subquery ), + OSL_PRECOND( SQL_ISRULE( pTableRef, table_ref ) || SQL_ISRULE( pTableRef, joined_table ) + || SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( pTableRef, cross_union ), "OSQLParseTreeIterator::getTableNode: only to be called for table_ref nodes!" ); const OSQLParseNode* pTableNameNode = NULL; + if ( SQL_ISRULE( pTableRef, joined_table ) ) + { + getQualified_join( _rTables, pTableRef->getChild(1), rTableRange ); + } if ( SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( pTableRef, cross_union ) ) { getQualified_join( _rTables, pTableRef, rTableRange ); @@ -511,12 +514,14 @@ else { rTableRange = OSQLParseNode::getTableRange(pTableRef); - if ( pTableRef->count() == 4 || pTableRef->count() == 5 ) // '{' SQL_TOKEN_OJ joined_table '}' || '(' joined_table ')' range_variable op_column_commalist + if ( ( pTableRef->count() == 4 ) // '{' SQL_TOKEN_OJ joined_table '}' + || ( pTableRef->count() == 5 ) // '(' joined_table ')' range_variable op_column_commalist + ) { getQualified_join( _rTables, pTableRef->getChild(6 - pTableRef->count()), rTableRange ); } - else if ( pTableRef->count() == 3 ) - { // subquery as range_variable + else if ( pTableRef->count() == 3 ) // subquery range_variable op_column_commalist + { const OSQLParseNode* pSubQuery = pTableRef->getChild(0); OSL_ENSURE( pSubQuery->count() == 3, "sub queries should have 3 children!" ); const OSQLParseNode* pQueryExpression = pSubQuery->getChild(1); @@ -529,9 +534,8 @@ OSL_ENSURE( false, "OSQLParseTreeIterator::getTableNode: subquery which is no select_statement: not yet implemented!" ); } } - else if ( pTableRef->count() == 2 ) + else if ( pTableRef->count() == 2 ) // table_node table_primary_as_range_column { - // table_node pTableNameNode = pTableRef->getChild(0); } else @@ -587,6 +591,10 @@ { getQualified_join( _rTables, pTableListElement, aTableRange ); } + else if ( SQL_ISRULE( pTableListElement, joined_table ) ) + { + getQualified_join( _rTables, pTableListElement->getChild(1), aTableRange ); + } // if (! aIteratorStatus.IsSuccessful()) break; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
