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]

Reply via email to