Tag: cws_src680_qiq
User: fs      
Date: 06/06/07 05:18:09

Modified:
 /dba/connectivity/source/parse/
  sqliterator.cxx

Log:
 #i51143# allow subqueries in FROM / getTableRef -> getTableNode

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.46.78.5&r2=1.46.78.6
Delta lines:  +124 -111
-----------------------
--- sqliterator.cxx     23 May 2006 13:54:37 -0000      1.46.78.5
+++ sqliterator.cxx     7 Jun 2006 12:18:06 -0000       1.46.78.6
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: sqliterator.cxx,v $
  *
- *  $Revision: 1.46.78.5 $
+ *  $Revision: 1.46.78.6 $
  *
- *  last change: $Author: fs $ $Date: 2006/05/23 13:54:37 $
+ *  last change: $Author: fs $ $Date: 2006/06/07 12:18:06 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -449,74 +449,81 @@
 //-----------------------------------------------------------------------------
 void OSQLParseTreeIterator::getQualified_join( OSQLTables& _rTables, const 
OSQLParseNode *pTableRef, ::rtl::OUString& aTableRange )
 {
+    OSL_PRECOND( SQL_ISRULE( pTableRef, joined_table ) || SQL_ISRULE( 
pTableRef, cross_union ),
+        "OSQLParseTreeIterator::getQualified_join: illegal node!" );
        
        aTableRange = ::rtl::OUString();
 
-       const OSQLParseNode* pNode = 
getTableRef(_rTables,pTableRef->getChild(0),aTableRange);
-       if(isTableNode(pNode))
+       const OSQLParseNode* pNode = 
getTableNode(_rTables,pTableRef->getChild(0),aTableRange);
+       if ( isTableNode( pNode ) )
                traverseOneTableName( _rTables, pNode, aTableRange );
 
        sal_uInt32 nPos = 4;
        if(SQL_ISRULE(pTableRef,cross_union) || 
pTableRef->getChild(1)->getTokenID() != SQL_TOKEN_NATURAL)
                nPos = 3;
 
-       pNode = getTableRef(_rTables,pTableRef->getChild(nPos),aTableRange);
+       pNode = getTableNode(_rTables,pTableRef->getChild(nPos),aTableRange);
        if ( isTableNode( pNode ) )
                traverseOneTableName( _rTables, pNode, aTableRange );
 }
 //-----------------------------------------------------------------------------
-const OSQLParseNode* OSQLParseTreeIterator::getTableRef( OSQLTables& _rTables, 
const OSQLParseNode *pTableRef,::rtl::OUString& aTableRange )
+const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& 
_rTables, const OSQLParseNode *pTableRef,::rtl::OUString& aTableRange )
 {
+    OSL_PRECOND( SQL_ISRULE( pTableRef, table_ref ) || SQL_ISRULE( pTableRef, 
joined_table )
+              || SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( 
pTableRef, cross_union )
+              || SQL_ISRULE( pTableRef, subquery ),
+        "OSQLParseTreeIterator::getTableNode: only to be called for table_ref 
nodes!" );
+       
+       const OSQLParseNode* pTableNameNode = NULL;
        
-       const OSQLParseNode *pTableName = pTableRef;
-       if (pTableName->count() == 4 )
+    if ( SQL_ISRULE( pTableRef, joined_table ) )
        {
-               if(SQL_ISPUNCTUATION(pTableName->getChild(0),"{"))
-               { // { OJ joined_table }
-                       
getQualified_join(_rTables,pTableName->getChild(2),aTableRange);
-                       pTableName = NULL;
+        getQualified_join( _rTables, pTableRef->getChild(1), aTableRange );
+    }
+    else if ( SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( 
pTableRef, cross_union ) )
+    {
+        getQualified_join( _rTables, pTableRef, aTableRange );
                }
                else
                {
-                       // Tabellennamen gefunden
-                       if(!isTableNode(pTableName))
-                               pTableName = pTableRef->getChild(0);
-                       aTableRange = ::rtl::OUString();
-                       if(pTableRef->count() == 4)
-                               aTableRange = 
pTableRef->getChild(2)->getTokenValue(); // Tabellenrange an Pos 2
+        if ( pTableRef->count() == 4 )
+        {
+            if ( SQL_ISPUNCTUATION( pTableRef->getChild(0), "{" ) )
+            {   // { OJ joined_table }
+                getQualified_join( _rTables, pTableRef->getChild(2), 
aTableRange );
                }
+            else
+            {   // table_node as range_variable op_column_commalist
+                pTableNameNode = pTableRef->getChild(0);
+                aTableRange = pTableRef->getChild(2)->getTokenValue();
        }
-       else if(SQL_ISRULE(pTableName,table_ref))
-       {
-               pTableName = pTableRef->getChild(0);
-               aTableRange = ::rtl::OUString();
        }
-       else if(SQL_ISRULE(pTableName,qualified_join) || 
SQL_ISRULE(pTableName,cross_union))
+        else if ( pTableRef->count() == 3 )
+        {   // subquery as range_variable
+            const OSQLParseNode* pSubQuery = pTableRef->getChild(0);
+            OSL_ENSURE( pSubQuery->count() == 3, "sub queries should have 3 
children!" );
+            const OSQLParseNode* pQueryExpression = pSubQuery->getChild(1);
+            if ( SQL_ISRULE( pQueryExpression, select_statement ) )
        {
-               getQualified_join(_rTables,pTableRef,aTableRange);
-               pTableName = NULL;
+                getSelect_statement( *m_pImpl->m_pSubTables, pQueryExpression 
);
+                aTableRange = pTableRef->getChild(2)->getTokenValue();
        }
-       else if (SQL_ISRULE(pTableName,joined_table))
+            else
        {
-               // '(' qualified_join ')'
-               getQualified_join(_rTables,pTableName->getChild(1),aTableRange);
-               pTableName = NULL;
+                OSL_ENSURE( false, "OSQLParseTreeIterator::getTableNode: 
subquery which is no select_statement: not yet implemented!" );
+            }
        }
-       else if(pTableRef->count() == 6)
+        else if ( pTableRef->count() == 6 )
        {
                // '(' joined_table ')' as range_variable op_column_commalist
-               if(SQL_ISRULE(pTableRef->getChild(1),qualified_join) || 
SQL_ISRULE(pTableRef->getChild(1),cross_union))
-                       
getQualified_join(_rTables,pTableRef->getChild(1),aTableRange);
-               else if(SQL_ISRULE(pTableRef->getChild(1),select_statement)) // 
Unterabfrage
-                       getSelect_statement(_rTables,pTableRef->getChild(1));
-               else if(pTableRef->getChild(1)->count() == 4)
-                       // pTableRef->getChild(1) ->> non_join_query_exp
-                       getSelect_statement(_rTables,pTableRef->getChild(0)); 
// query_exp SQL_TOKEN_UNION all query_term
-               else
-               {// nyi: tiefere Verschachtelung m"oglch
+            getQualified_join( _rTables, pTableRef->getChild(1), aTableRange );
+            aTableRange = pTableRef->getChild(4)->getTokenValue();
                }
+        else
+            OSL_ENSURE( false, "OSQLParseTreeIterator::getTableNode: unhandled 
case!" );
        }
-       return pTableName;
+
+       return pTableNameNode;
 }
 //-----------------------------------------------------------------------------
 void OSQLParseTreeIterator::getSelect_statement(OSQLTables& _rTables,const 
OSQLParseNode* pSelect)
@@ -529,8 +536,8 @@
        }
        OSQLParseNode * pTableRefCommalist = 
pSelect->getChild(3)->getChild(0)->getChild(1);
 
-       OSL_ENSURE(pTableRefCommalist != NULL,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
-       
OSL_ENSURE(SQL_ISRULE(pTableRefCommalist,table_ref_commalist),"OSQLParseTreeIterator:
 Fehler im Parse Tree");
+       OSL_ENSURE(pTableRefCommalist != NULL,"OSQLParseTreeIterator: error in 
parse tree!");
+       
OSL_ENSURE(SQL_ISRULE(pTableRefCommalist,table_ref_commalist),"OSQLParseTreeIterator:
 error in parse tree!");
 
        const OSQLParseNode* pTableName = NULL;
        ::rtl::OUString aTableRange;
@@ -549,23 +556,29 @@
                        pTableName = pTableListElement->getChild(0);
                        if( isTableNode( pTableName ) )
                        {       // Tabellennamen gefunden
-                               if ( pTableListElement->count() == 4 )  // 
Tabellenrange an Pos 2
+                               if ( pTableListElement->count() == 4 )
+                {   // table_node as range_variable op_column_commalist
+                OSL_ENSURE( pTableListElement->getChild(1)->getKnownRuleID() 
== OSQLParseNode::as,
+                    "OSQLParseTreeIterator::getSelect_statement: table_ref 
rules changed?" );
                                        aTableRange = 
pTableListElement->getChild(2)->getTokenValue();
+                }
                                traverseOneTableName( _rTables, pTableName, 
aTableRange );
                        }
                        else if(SQL_ISPUNCTUATION(pTableName,"{"))
+            {   // '{' SQL_TOKEN_OJ joined_table '}'
                                getQualified_join( _rTables, 
pTableListElement->getChild(2), aTableRange );
-                       else // '(' joined_table ')' as range_variable 
op_column_commalist
-                               getTableRef( _rTables, pTableListElement, 
aTableRange );
+            }
+                       else
+            {   // '(' joined_table ')' as range_variable op_column_commalist
+                               getTableNode( _rTables, pTableListElement, 
aTableRange );
+            }
                }
                else if (SQL_ISRULE( pTableListElement, qualified_join ) || 
SQL_ISRULE( pTableListElement, cross_union ) )
                {
-                       // qualified_join oder cross_union vorhanden
                        getQualified_join( _rTables, pTableListElement, 
aTableRange );
                }
                else if ( SQL_ISRULE( pTableListElement, joined_table ) )
                {
-                       // '(' qualified_join ')'
                        getQualified_join( _rTables, 
pTableListElement->getChild(1), aTableRange );
                }
 
@@ -971,26 +984,26 @@
                return;
        }
 
-       OSL_ENSURE(pSelectNode->count() >= 4,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(pSelectNode->count() >= 4,"OSQLParseTreeIterator: error in 
parse tree!");
 
        OSQLParseNode * pTableExp = pSelectNode->getChild(3);
-       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: Fehler im Parse 
Tree");
-       
OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator:table_exp 
Fehler im Parse Tree");
-       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: error in parse 
tree!");
+       
OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator:table_exp 
error in parse tree!");
+       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: error in 
parse tree!");
 
        sal_uInt32 nPos = ( _bOrder ? 4 : 2 );
 
        OSQLParseNode * pOptByClause = pTableExp->getChild(nPos);
-       OSL_ENSURE(pOptByClause != NULL,"OSQLParseTreeIterator: Fehler im Parse 
Tree");
+       OSL_ENSURE(pOptByClause != NULL,"OSQLParseTreeIterator: error in parse 
tree!");
        if ( pOptByClause->count() == 0 )
                return;
 
-       OSL_ENSURE(pOptByClause->count() == 3,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(pOptByClause->count() == 3,"OSQLParseTreeIterator: error in 
parse tree!");
 
        OSQLParseNode * pOrderingSpecCommalist = pOptByClause->getChild(2);
-       OSL_ENSURE(pOrderingSpecCommalist != NULL,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
-       OSL_ENSURE(!_bOrder || 
SQL_ISRULE(pOrderingSpecCommalist,ordering_spec_commalist),"OSQLParseTreeIterator:ordering_spec_commalist
 Fehler im Parse Tree");
-       OSL_ENSURE(pOrderingSpecCommalist->count() > 0,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+       OSL_ENSURE(pOrderingSpecCommalist != NULL,"OSQLParseTreeIterator: error 
in parse tree!");
+       OSL_ENSURE(!_bOrder || 
SQL_ISRULE(pOrderingSpecCommalist,ordering_spec_commalist),"OSQLParseTreeIterator:ordering_spec_commalist
 error in parse tree!");
+       OSL_ENSURE(pOrderingSpecCommalist->count() > 0,"OSQLParseTreeIterator: 
error in parse tree!");
 
        ::rtl::OUString sColumnName,aColumnAlias;
        ::rtl::OUString aTableRange;
@@ -998,11 +1011,11 @@
        for (sal_uInt32 i = 0; i < nCount; ++i)
        {
                OSQLParseNode* pColumnRef  = 
pOrderingSpecCommalist->getChild(i);
-               OSL_ENSURE(pColumnRef  != NULL,"OSQLParseTreeIterator: Fehler 
im Parse Tree");
+               OSL_ENSURE(pColumnRef  != NULL,"OSQLParseTreeIterator: error in 
parse tree!");
                if ( _bOrder )
                {
-                       
OSL_ENSURE(SQL_ISRULE(pColumnRef,ordering_spec),"OSQLParseTreeIterator:ordering_spec
 Fehler im Parse Tree");
-                       OSL_ENSURE(pColumnRef->count() == 
2,"OSQLParseTreeIterator: Fehler im Parse Tree");
+                       
OSL_ENSURE(SQL_ISRULE(pColumnRef,ordering_spec),"OSQLParseTreeIterator:ordering_spec
 error in parse tree!");
+                       OSL_ENSURE(pColumnRef->count() == 
2,"OSQLParseTreeIterator: error in parse tree!");
 
                        pColumnRef = pColumnRef->getChild(0);
                }
@@ -1022,12 +1035,12 @@
                {       // here I found a predicate
                        pColumnRef->parseNodeToStr( sColumnName, 
m_pImpl->m_xDatabaseMetaData, NULL, sal_False, sal_False );
                }
-               OSL_ENSURE(pColumnRef != NULL,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+               OSL_ENSURE(pColumnRef != NULL,"OSQLParseTreeIterator: error in 
parse tree!");
                if ( _bOrder )
                {
                        // Ascending/Descending
                        OSQLParseNode * pOptAscDesc = 
pColumnRef->getParent()->getChild(1);
-                       OSL_ENSURE(pOptAscDesc != NULL,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+                       OSL_ENSURE(pOptAscDesc != NULL,"OSQLParseTreeIterator: 
error in parse tree!");
 
                        sal_Bool bAscending = pOptAscDesc && 
SQL_ISTOKEN(pOptAscDesc,ASC);
                        setOrderByColumnName(sColumnName, 
aTableRange,bAscending);
@@ -1066,19 +1079,19 @@
                        traverseSelectionCriteria(pSelectNode->getChild(3));
                        return;
                }
-               OSL_ENSURE(pSelectNode->count() >= 4,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+               OSL_ENSURE(pSelectNode->count() >= 4,"OSQLParseTreeIterator: 
error in parse tree!");
 
                OSQLParseNode * pTableExp = pSelectNode->getChild(3);
-               OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
-               
OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: Fehler im 
Parse Tree");
-               OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+               OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: error in 
parse tree!");
+               
OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: error in 
parse tree!");
+               OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: 
error in parse tree!");
 
                pWhereClause = pTableExp->getChild(1);
        } else if (SQL_ISRULE(pSelectNode,update_statement_searched)) {
-               OSL_ENSURE(pSelectNode->count() == 5,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+               OSL_ENSURE(pSelectNode->count() == 5,"OSQLParseTreeIterator: 
error in parse tree!");
                pWhereClause = pSelectNode->getChild(4);
        } else if (SQL_ISRULE(pSelectNode,delete_statement_searched)) {
-               OSL_ENSURE(pSelectNode->count() == 4,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+               OSL_ENSURE(pSelectNode->count() == 4,"OSQLParseTreeIterator: 
error in parse tree!");
                pWhereClause = pSelectNode->getChild(3);
        } else if (SQL_ISRULE(pSelectNode,delete_statement_positioned)) {
                // nyi
@@ -1091,15 +1104,15 @@
        if (! SQL_ISRULE(pWhereClause,where_clause)) {
                // Die Where Clause ist meistens optional, d. h. es koennte 
sich auch
                // um "optional_where_clause" handeln.
-               
OSL_ENSURE(SQL_ISRULE(pWhereClause,opt_where_clause),"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+               
OSL_ENSURE(SQL_ISRULE(pWhereClause,opt_where_clause),"OSQLParseTreeIterator: 
error in parse tree!");
                return;
        }
 
        // Wenn es aber eine where_clause ist, dann darf sie nicht leer sein:
-       OSL_ENSURE(pWhereClause->count() == 2,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(pWhereClause->count() == 2,"OSQLParseTreeIterator: error in 
parse tree!");
 
        OSQLParseNode * pComparisonPredicate = pWhereClause->getChild(1);
-       OSL_ENSURE(pComparisonPredicate != NULL,"OSQLParseTreeIterator: Fehler 
im Parse Tree");
+       OSL_ENSURE(pComparisonPredicate != NULL,"OSQLParseTreeIterator: error 
in parse tree!");
 
 
        //
@@ -1225,7 +1238,7 @@
        {
                sal_Int32 ePredicateType;
 
-               OSL_ENSURE(pSearchCondition->count() >= 
4,"OSQLParseTreeIterator: Fehler im Parse Tree");
+               OSL_ENSURE(pSearchCondition->count() >= 
4,"OSQLParseTreeIterator: error in parse tree!");
 
                sal_Int32 nCurentPos = pSearchCondition->count()-2;
 
@@ -1237,8 +1250,8 @@
                else
                        ePredicateType = SQLFilterOperator::LIKE;
 
-               OSL_ENSURE(pNum_value_exp != NULL,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
-               OSL_ENSURE(pOptEscape != NULL,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+               OSL_ENSURE(pNum_value_exp != NULL,"OSQLParseTreeIterator: error 
in parse tree!");
+               OSL_ENSURE(pOptEscape != NULL,"OSQLParseTreeIterator: error in 
parse tree!");
 
                if (pOptEscape->count() != 0)
                {
@@ -1265,7 +1278,7 @@
        }
        else if (SQL_ISRULE(pSearchCondition,in_predicate))
        {
-               OSL_ENSURE(pSearchCondition->count() == 
4,"OSQLParseTreeIterator: Fehler im Parse Tree");
+               OSL_ENSURE(pSearchCondition->count() == 
4,"OSQLParseTreeIterator: error in parse tree!");
 
                traverseORCriteria(pSearchCondition->getChild(0));
                //      if (! aIteratorStatus.IsSuccessful()) return;
@@ -1290,8 +1303,8 @@
        {
                sal_Int32 ePredicateType;
 
-               OSL_ENSURE(pSearchCondition->count() >= 
3,"OSQLParseTreeIterator: Fehler im Parse Tree");
-               
OSL_ENSURE(SQL_ISTOKEN(pSearchCondition->getChild(1),IS),"OSQLParseTreeIterator:
 Fehler im Parse Tree");
+               OSL_ENSURE(pSearchCondition->count() >= 
3,"OSQLParseTreeIterator: error in parse tree!");
+               
OSL_ENSURE(SQL_ISTOKEN(pSearchCondition->getChild(1),IS),"OSQLParseTreeIterator:
 error in parse tree!");
 
                if (SQL_ISTOKEN(pSearchCondition->getChild(2),NOT) )
                        ePredicateType = SQLFilterOperator::NOT_SQLNULL;
@@ -1320,7 +1333,7 @@
 {
        if ( !SQL_ISRULE( _pParseNode, parameter ) )
         return;
-       OSL_ENSURE(_pParseNode->count() > 0,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(_pParseNode->count() > 0,"OSQLParseTreeIterator: error in 
parse tree!");
        OSQLParseNode * pMark = _pParseNode->getChild(0);
        ::rtl::OUString sParameterName;
 
@@ -1342,7 +1355,7 @@
        }
        else
        {
-               OSL_ASSERT("OSQLParseTreeIterator: Fehler im Parse Tree");
+               OSL_ASSERT("OSQLParseTreeIterator: error in parse tree!");
        }
 
        // found a parameter
@@ -1766,11 +1779,11 @@
        OSQLParseNode * pWhereClause = NULL;
        if(getStatementType() == SQL_STATEMENT_SELECT)
        {
-               OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: 
Fehler im Parse Tree");
+               OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: error 
in parse tree!");
                OSQLParseNode * pTableExp = m_pParseTree->getChild(3);
-               OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
-               
OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: Fehler im 
Parse Tree");
-               OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: 
Fehler im Parse Tree");
+               OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: error in 
parse tree!");
+               
OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: error in 
parse tree!");
+               OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: 
error in parse tree!");
 
                pWhereClause = pTableExp->getChild(1);
        }
@@ -1795,11 +1808,11 @@
        // Parse Tree analysieren (je nach Statement-Typ)
        // und Zeiger auf ORDER-Klausel setzen:
        OSQLParseNode * pOrderClause = NULL;
-       OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: error in 
parse tree!");
        OSQLParseNode * pTableExp = m_pParseTree->getChild(3);
-       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: Fehler im Parse 
Tree");
-       OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: 
Fehler im Parse Tree");
-       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: error in parse 
tree!");
+       OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: 
error in parse tree!");
+       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: error in 
parse tree!");
 
        pOrderClause = pTableExp->getChild(4);
        // Wenn es aber eine order_by ist, dann darf sie nicht leer sein:
@@ -1816,11 +1829,11 @@
        // Parse Tree analysieren (je nach Statement-Typ)
        // und Zeiger auf ORDER-Klausel setzen:
        OSQLParseNode * pGroupClause = NULL;
-       OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: error in 
parse tree!");
        OSQLParseNode * pTableExp = m_pParseTree->getChild(3);
-       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: Fehler im Parse 
Tree");
-       OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: 
Fehler im Parse Tree");
-       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: error in parse 
tree!");
+       OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: 
error in parse tree!");
+       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: error in 
parse tree!");
 
        pGroupClause = pTableExp->getChild(2);
        // Wenn es aber eine order_by ist, dann darf sie nicht leer sein:
@@ -1837,11 +1850,11 @@
        // Parse Tree analysieren (je nach Statement-Typ)
        // und Zeiger auf ORDER-Klausel setzen:
        OSQLParseNode * pHavingClause = NULL;
-       OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(m_pParseTree->count() >= 4,"ParseTreeIterator: error in 
parse tree!");
        OSQLParseNode * pTableExp = m_pParseTree->getChild(3);
-       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: Fehler im Parse 
Tree");
-       OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: 
Fehler im Parse Tree");
-       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: Fehler im 
Parse Tree");
+       OSL_ENSURE(pTableExp != NULL,"OSQLParseTreeIterator: error in parse 
tree!");
+       OSL_ENSURE(SQL_ISRULE(pTableExp,table_exp),"OSQLParseTreeIterator: 
error in parse tree!");
+       OSL_ENSURE(pTableExp->count() == 5,"OSQLParseTreeIterator: error in 
parse tree!");
 
        pHavingClause = pTableExp->getChild(3);
        // Wenn es aber eine order_by ist, dann darf sie nicht leer sein:




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to