[Libreoffice-commits] core.git: 7 commits - connectivity/source dbaccess/source include/connectivity svx/source

Lionel Elie Mamane lionel at mamane.lu
Fri Apr 26 07:50:40 PDT 2013


 connectivity/source/commontools/predicateinput.cxx    |    2 
 connectivity/source/parse/sqlbison.y                  |    5 
 connectivity/source/parse/sqlnode.cxx                 |  247 +++++++++++-------
 connectivity/source/simpledbt/parsenode_s.cxx         |    4 
 connectivity/source/simpledbt/parsenode_s.hxx         |    1 
 dbaccess/source/ui/inc/QueryDesignView.hxx            |    2 
 dbaccess/source/ui/querydesign/QueryDesignView.cxx    |    5 
 dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx |    2 
 include/connectivity/sqlnode.hxx                      |   14 -
 include/connectivity/virtualdbtools.hxx               |    1 
 svx/source/fmcomp/gridcell.cxx                        |    5 
 svx/source/form/filtnav.cxx                           |    2 
 svx/source/form/formcontroller.cxx                    |    1 
 13 files changed, 178 insertions(+), 113 deletions(-)

New commits:
commit a0b720c9fca7ae7ad2a38637aa34b1a3a4bd9ef4
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Apr 26 16:45:54 2013 +0200

    remove never-generated "predicate_check" entry
    
    Change-Id: Ib3957fbadf6bfebfaabd5bef09aaf7ab21862cd6

diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index f840039..0adc5f6 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -1404,7 +1404,6 @@ OSQLParser::OSQLParser(const ::com::sun::star::uno::Reference< ::com::sun::star:
             { OSQLParseNode::insert_statement, "insert_statement" },
             { OSQLParseNode::insert_atom_commalist, "insert_atom_commalist" },
             { OSQLParseNode::insert_atom, "insert_atom" },
-            { OSQLParseNode::predicate_check, "predicate_check" },
             { OSQLParseNode::from_clause, "from_clause" },
             { OSQLParseNode::qualified_join, "qualified_join" },
             { OSQLParseNode::cross_union, "cross_union" },
diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
index fe27a41..d8007ac 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
@@ -3431,7 +3431,6 @@ void OQueryDesignView::fillFunctionInfo(  const ::connectivity::OSQLParseNode* p
         case OSQLParseNode::between_predicate:
         case OSQLParseNode::like_predicate:
         case OSQLParseNode::test_for_null:
-        case OSQLParseNode::predicate_check: // Seems to never be generated?
         case OSQLParseNode::boolean_term:
         case OSQLParseNode::boolean_primary:
         case OSQLParseNode::in_predicate:
diff --git a/include/connectivity/sqlnode.hxx b/include/connectivity/sqlnode.hxx
index 3ab0b65..f0fe1ac 100644
--- a/include/connectivity/sqlnode.hxx
+++ b/include/connectivity/sqlnode.hxx
@@ -171,7 +171,6 @@ namespace connectivity
             insert_statement,
             insert_atom_commalist,
             insert_atom,
-            predicate_check,
             from_clause,
             qualified_join,
             cross_union,
commit 16c9ce4877def18ca4578171a96615a632d08092
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Apr 26 16:44:43 2013 +0200

    QueryDesign: in criteria, remove matching column_ref in simple expressions
    
    Basically, in first children of infix predicates in search_conditions
    
    Change-Id: I0e2f8fbdde023b088f33d2e2fcbd41110f0e02a8

diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index 4c67ea3..f840039 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -129,6 +129,62 @@ namespace
         rNewValue += rQuot;
         return rNewValue;
     }
+
+    bool columnMatchP(const connectivity::OSQLParseNode* pSubTree, const connectivity::SQLParseNodeParameter& rParam)
+    {
+        using namespace connectivity;
+        assert(SQL_ISRULE(pSubTree,column_ref));
+
+        // retrieve the field's name & table range
+        OUString aFieldName;
+        try
+        {
+            sal_Int32 nNamePropertyId = PROPERTY_ID_NAME;
+            if ( rParam.xField->getPropertySetInfo()->hasPropertyByName( OMetaConnection::getPropMap().getNameByIndex( PROPERTY_ID_REALNAME ) ) )
+                nNamePropertyId = PROPERTY_ID_REALNAME;
+            rParam.xField->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex( nNamePropertyId ) ) >>= aFieldName;
+        }
+        catch ( Exception& )
+        {
+        }
+
+        if(pSubTree->count())
+        {
+            const OSQLParseNode* pCol = pSubTree->getChild(pSubTree->count()-1);
+            if (SQL_ISRULE(pCol,column_val))
+            {
+                assert(pCol->count() == 1);
+                pCol = pCol->getChild(0);
+            }
+            const OSQLParseNode* pTable(NULL);
+            switch (pSubTree->count())
+            {
+            case 1:
+                break;
+            case 3:
+                pTable = pSubTree->getChild(0);
+                break;
+            case 5:
+            case 7:
+                SAL_WARN("connectivity.parse", "SQL: catalog and/or schema in column_ref in predicate");
+                break;
+            default:
+                SAL_WARN("connectivity.parse", "columnMatchP: SQL grammar changed; column_ref has " << pSubTree->count() << " children");
+                assert(false);
+                break;
+            }
+            // TODO: not all DBMS match column names case-insensitively...
+            // see XDatabaseMetaData::supportsMixedCaseIdentifiers()
+            // and XDatabaseMetaData::supportsMixedCaseQuotedIdentifiers()
+            if  (   // table name matches (or no table name)?
+                    ( !pTable || pTable->getTokenValue().equalsIgnoreAsciiCase(rParam.sPredicateTableAlias) )
+                 && // column name matches?
+                    pCol->getTokenValue().equalsIgnoreAsciiCase(aFieldName)
+                )
+                return true;
+        }
+        return false;
+    }
 }
 
 namespace connectivity
@@ -342,7 +398,7 @@ namespace
 }
 
 //-----------------------------------------------------------------------------
-void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const SQLParseNodeParameter& rParam) const
+void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const SQLParseNodeParameter& rParam, bool bSimple) const
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::impl_parseNodeToString_throw" );
     if ( isToken() )
@@ -360,18 +416,19 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
     // special handling for parameters
     case parameter:
     {
+        bSimple=false;
         if(!rString.isEmpty())
             rString.appendAscii(" ");
         if (nCount == 1)    // ?
-            m_aChildren[0]->impl_parseNodeToString_throw( rString, rParam );
+            m_aChildren[0]->impl_parseNodeToString_throw( rString, rParam, false );
         else if (nCount == 2)   // :Name
         {
-            m_aChildren[0]->impl_parseNodeToString_throw( rString, rParam );
+            m_aChildren[0]->impl_parseNodeToString_throw( rString, rParam, false );
             rString.append(m_aChildren[1]->m_aNodeValue);
         }                   // [Name]
         else
         {
-            m_aChildren[0]->impl_parseNodeToString_throw( rString, rParam );
+            m_aChildren[0]->impl_parseNodeToString_throw( rString, rParam, false );
             rString.append(m_aChildren[1]->m_aNodeValue);
             rString.append(m_aChildren[2]->m_aNodeValue);
         }
@@ -381,6 +438,7 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
 
     // table refs
     case table_ref:
+        bSimple=false;
         if (  ( nCount == 2 ) || ( nCount == 3 ) || ( nCount == 5 ) )
         {
             impl_parseTableRangeNodeToString_throw( rString, rParam );
@@ -390,16 +448,18 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
 
     // table name - might be a query name
     case table_name:
+        bSimple=false;
         bHandled = impl_parseTableNameNodeToString_throw( rString, rParam );
         break;
 
     case as_clause:
+        bSimple=false;
         assert(nCount == 0 || nCount == 2);
         if (nCount == 2)
         {
             if ( rParam.aMetaData.generateASBeforeCorrelationName() )
                 rString.append(OUString(" AS "));
-            m_aChildren[1]->impl_parseNodeToString_throw( rString, rParam );
+            m_aChildren[1]->impl_parseNodeToString_throw( rString, rParam, false );
         }
         bHandled = true;
         break;
@@ -413,7 +473,7 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
         // Depending on whether international is given, LIKE is treated differently
         // international: *, ? are placeholders
         // else SQL92 conform: %, _
-        impl_parseLikeNodeToString_throw( rString, rParam );
+        impl_parseLikeNodeToString_throw( rString, rParam, bSimple );
         bHandled = true;
         break;
 
@@ -424,13 +484,14 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
     case length_exp:
     case char_value_fct:
     {
+        bSimple=false;
         if (!addDateValue(rString, rParam))
         {
             // Do not quote function name
             SQLParseNodeParameter aNewParam(rParam);
             aNewParam.bQuote = ( SQL_ISRULE(this,length_exp)    || SQL_ISRULE(this,char_value_fct) );
 
-            m_aChildren[0]->impl_parseNodeToString_throw( rString, aNewParam );
+            m_aChildren[0]->impl_parseNodeToString_throw( rString, aNewParam, false );
             aNewParam.bQuote = rParam.bQuote;
             //aNewParam.bPredicate = sal_False; // disable [ ] around names // look at i73215
             OUStringBuffer aStringPara;
@@ -439,7 +500,7 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
                 const OSQLParseNode * pSubTree = m_aChildren[i];
                 if (pSubTree)
                 {
-                    pSubTree->impl_parseNodeToString_throw( aStringPara, aNewParam );
+                    pSubTree->impl_parseNodeToString_throw( aStringPara, aNewParam, false );
 
                     // In the comma lists, put commas in-between all subtrees
                     if ((m_eNodeType == SQL_NODE_COMMALISTRULE)     && (i < (nCount - 1)))
@@ -452,6 +513,15 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
         }
         bHandled = true;
     }
+    case odbc_call_spec:
+    case subquery:
+    case term:
+    case factor:
+    case window_function:
+    case cast_spec:
+    case num_value_exp:
+        bSimple = false;
+
     break;
     default:
         break;
@@ -479,68 +549,16 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
             // simplify criterion display by removing:
             //   "currentFieldName"
             //   "currentFieldName" =
-            // but only at the very beginning of the criterion
-            // (not embedded deep in the expression).
-            // TODO: replace "beginning of criterion" by "in simple expression",
-            // that is anything made of:
+            // but only in simple expressions.
+            // This means anything that is made of:
+            // (see the rules conditionalised by inPredicateCheck() in sqlbison.y).
             //  - parentheses
             //  - logical operators (and, or, not)
             //  - comparison operators (IS, =, >, <, BETWEEN, LIKE, ...)
-            //    (see where the parser calls inPredicateCheck for a full list)
             // but *not* e.g. in function arguments
-            if (rParam.bPredicate && rString.isEmpty() && rParam.xField.is() && SQL_ISRULE(pSubTree,column_ref))
+            if (bSimple && rParam.bPredicate && rParam.xField.is() && SQL_ISRULE(pSubTree,column_ref))
             {
-                bool bFilter = false;
-                // retrieve the field's name & table range
-                OUString aFieldName;
-                try
-                {
-                    sal_Int32 nNamePropertyId = PROPERTY_ID_NAME;
-                    if ( rParam.xField->getPropertySetInfo()->hasPropertyByName( OMetaConnection::getPropMap().getNameByIndex( PROPERTY_ID_REALNAME ) ) )
-                        nNamePropertyId = PROPERTY_ID_REALNAME;
-                    rParam.xField->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex( nNamePropertyId ) ) >>= aFieldName;
-                }
-                catch ( Exception& )
-                {
-                }
-
-                if(pSubTree->count())
-                {
-                    const OSQLParseNode* pCol = pSubTree->m_aChildren[pSubTree->count()-1];
-                    if (SQL_ISRULE(pCol,column_val))
-                    {
-                        assert(pCol->count() == 1);
-                        pCol = pCol->getChild(0);
-                    }
-                    const OSQLParseNode* pTable(NULL);
-                    switch (pSubTree->count())
-                    {
-                    case 1:
-                        break;
-                    case 3:
-                        pTable = pSubTree->m_aChildren[0];
-                        break;
-                    case 5:
-                    case 7:
-                        SAL_WARN("connectivity.parse", "SQL: catalog and/or schema in column_ref in predicate");
-                        break;
-                    default:
-                        SAL_WARN("connectivity.parse", "impl_parseNodeToString_throw: SQL grammar changed; column_ref has " << pSubTree->count() << " children");
-                        assert(false);
-                        break;
-                    }
-                    // TODO: not all DBMS match column names case-insensitively...
-                    // see XDatabaseMetaData::supportsMixedCaseIdentifiers()
-                    // and XDatabaseMetaData::supportsMixedCaseQuotedIdentifiers()
-                    if  (   // table name matches (or no table name)?
-                            ( !pTable || pTable->getTokenValue().equalsIgnoreAsciiCase(rParam.sPredicateTableAlias) )
-                         && // column name matches?
-                            pCol->getTokenValue().equalsIgnoreAsciiCase(aFieldName)
-                        )
-                        bFilter = true;
-                }
-
-                if (bFilter)
+                if (columnMatchP(pSubTree, rParam))
                 {
                     // skip field
                     ++i;
@@ -558,7 +576,7 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
                 }
                 else
                 {
-                    pSubTree->impl_parseNodeToString_throw( rString, aNewParam );
+                    pSubTree->impl_parseNodeToString_throw( rString, aNewParam, bSimple );
                     ++i;
 
                     // In the comma lists, put commas in-between all subtrees
@@ -568,7 +586,7 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
             }
             else
             {
-                pSubTree->impl_parseNodeToString_throw( rString, aNewParam );
+                pSubTree->impl_parseNodeToString_throw( rString, aNewParam, bSimple );
                 ++i;
 
                 // In the comma lists, put commas in-between all subtrees
@@ -580,6 +598,36 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
                         rString.appendAscii(",");
                 }
             }
+            // The right hand-side of these operators is not simple
+            switch ( getKnownRuleID() )
+            {
+            case general_set_fct:
+            case set_fct_spec:
+            case position_exp:
+            case extract_exp:
+            case length_exp:
+            case char_value_fct:
+            case odbc_call_spec:
+            case subquery:
+            case comparison_predicate:
+            case between_predicate:
+            case like_predicate:
+            case test_for_null:
+            case in_predicate:
+            case existence_test:
+            case unique_test:
+            case all_or_any_predicate:
+            case join_condition:
+            case boolean_test:
+            case comparison_predicate_part_2:
+            case parenthesized_boolean_value_expression:
+            case other_like_predicate_part_2:
+            case between_predicate_part_2:
+                bSimple=false;
+                break;
+            default:
+                break;
+            }
         }
     }
 }
@@ -644,7 +692,7 @@ bool OSQLParseNode::impl_parseTableNameNodeToString_throw( OUStringBuffer& rStri
             {
                 // parse the sub-select to SDBC level, too
                 OUStringBuffer sSubSelect;
-                pSubQueryNode->impl_parseNodeToString_throw( sSubSelect, rParam );
+                pSubQueryNode->impl_parseNodeToString_throw( sSubSelect, rParam, false );
                 if ( !sSubSelect.isEmpty() )
                     sCommand = sSubSelect.makeStringAndClear();
             }
@@ -690,11 +738,11 @@ void OSQLParseNode::impl_parseTableRangeNodeToString_throw(OUStringBuffer& rStri
 
     // rString += OUString(" ");
     ::std::for_each(m_aChildren.begin(),m_aChildren.end(),
-        boost::bind( &OSQLParseNode::impl_parseNodeToString_throw, _1, boost::ref( rString ), boost::cref( rParam ) ));
+        boost::bind( &OSQLParseNode::impl_parseNodeToString_throw, _1, boost::ref( rString ), boost::cref( rParam ), false ));
 }
 
 //-----------------------------------------------------------------------------
-void OSQLParseNode::impl_parseLikeNodeToString_throw( OUStringBuffer& rString, const SQLParseNodeParameter& rParam ) const
+void OSQLParseNode::impl_parseLikeNodeToString_throw( OUStringBuffer& rString, const SQLParseNodeParameter& rParam, bool bSimple ) const
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::impl_parseLikeNodeToString_throw" );
     OSL_ENSURE(count() == 2,"count != 2: Prepare for GPF");
@@ -705,38 +753,12 @@ void OSQLParseNode::impl_parseLikeNodeToString_throw( OUStringBuffer& rString, c
     SQLParseNodeParameter aNewParam(rParam);
     //aNewParam.bQuote = sal_True; // why setting this to true? @see http://www.openoffice.org/issues/show_bug.cgi?id=75557
 
-    // if there is a field given we don't display the fieldname, if there are any
-    sal_Bool bAddName = sal_True;
-    if (rParam.xField.is())
-    {
-        // retrieve the fields name
-        OUString aFieldName;
-        try
-        {
-            // retrieve the fields name
-            OUString aString;
-            rParam.xField->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME)) >>= aString;
-            aFieldName = aString.getStr();
-        }
-        catch ( Exception& )
-        {
-            OSL_FAIL( "OSQLParseNode::impl_parseLikeNodeToString_throw Exception occurred!" );
-        }
-        if ( !m_aChildren[0]->isLeaf() )
-        {
-            const OSQLParseNode* pCol = m_aChildren[0]->getChild(m_aChildren[0]->count()-1);
-            if ((SQL_ISRULE(pCol,column_val) && pCol->getChild(0)->getTokenValue().equalsIgnoreAsciiCase(aFieldName)) ||
-                pCol->getTokenValue().equalsIgnoreAsciiCase(aFieldName) )
-                bAddName = sal_False;
-        }
-    }
-
-    if (bAddName)
-        m_aChildren[0]->impl_parseNodeToString_throw( rString, aNewParam );
+    if (bSimple && !columnMatchP(m_aChildren[0], rParam))
+        m_aChildren[0]->impl_parseNodeToString_throw( rString, aNewParam, bSimple );
 
     const OSQLParseNode* pPart2 = m_aChildren[1];
-    pPart2->getChild(0)->impl_parseNodeToString_throw( rString, aNewParam );
-    pPart2->getChild(1)->impl_parseNodeToString_throw( rString, aNewParam );
+    pPart2->getChild(0)->impl_parseNodeToString_throw( rString, aNewParam, false );
+    pPart2->getChild(1)->impl_parseNodeToString_throw( rString, aNewParam, false );
     pParaNode = pPart2->getChild(2);
     pEscNode  = pPart2->getChild(3);
 
@@ -747,9 +769,9 @@ void OSQLParseNode::impl_parseLikeNodeToString_throw( OUStringBuffer& rString, c
         rString.append(SetQuotation(aStr,OUString("\'"),OUString("\'\'")));
     }
     else
-        pParaNode->impl_parseNodeToString_throw( rString, aNewParam );
+        pParaNode->impl_parseNodeToString_throw( rString, aNewParam, false );
 
-    pEscNode->impl_parseNodeToString_throw( rString, aNewParam );
+    pEscNode->impl_parseNodeToString_throw( rString, aNewParam, false );
 }
 
 
@@ -1441,7 +1463,8 @@ OSQLParser::OSQLParser(const ::com::sun::star::uno::Reference< ::com::sun::star:
             { OSQLParseNode::character_string_type, "character_string_type" },
             { OSQLParseNode::other_like_predicate_part_2, "other_like_predicate_part_2" },
             { OSQLParseNode::between_predicate_part_2, "between_predicate_part_2" },
-            { OSQLParseNode::cast_spec, "cast_spec" }
+            { OSQLParseNode::cast_spec, "cast_spec" },
+            { OSQLParseNode::window_function, "window_function" }
         };
         const size_t nRuleMapCount = sizeof( aRuleDescriptions ) / sizeof( aRuleDescriptions[0] );
         // added a new rule? Adjust this map!
diff --git a/include/connectivity/sqlnode.hxx b/include/connectivity/sqlnode.hxx
index 51a9ec2..3ab0b65 100644
--- a/include/connectivity/sqlnode.hxx
+++ b/include/connectivity/sqlnode.hxx
@@ -231,6 +231,7 @@ namespace connectivity
             other_like_predicate_part_2,
             between_predicate_part_2,
             cast_spec,
+            window_function,
             rule_count             // last value
         };
 
@@ -423,8 +424,8 @@ namespace connectivity
                             bool _bSubstitute) const;
 
     private:
-        void impl_parseNodeToString_throw( OUStringBuffer& rString, const SQLParseNodeParameter& rParam) const;
-        void impl_parseLikeNodeToString_throw( OUStringBuffer& rString, const SQLParseNodeParameter& rParam ) const;
+        void impl_parseNodeToString_throw( OUStringBuffer& rString, const SQLParseNodeParameter& rParam, bool bSimple=true ) const;
+        void impl_parseLikeNodeToString_throw( OUStringBuffer& rString, const SQLParseNodeParameter& rParam, bool bSimple=true ) const;
         void impl_parseTableRangeNodeToString_throw( OUStringBuffer& rString, const SQLParseNodeParameter& rParam ) const;
 
         /** parses a table_name node into a SQL statement particle.
commit fccfa69c15a1f55dda753b84d4f6919145b6f3f3
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Apr 26 16:36:28 2013 +0200

    remove unused const
    
    Change-Id: I94c274e8afc70fa702063d61139299a7bde9165b

diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y
index 6d6c4f6..c2b02ce 100644
--- a/connectivity/source/parse/sqlbison.y
+++ b/connectivity/source/parse/sqlbison.y
@@ -4467,11 +4467,6 @@ const Locale& OParseContext::getDefaultLocale()
 // sofort nach dem Scanner-Aufruf in eine gleichnamige eigene
 // Member-Variable.
 
-const double fMilliSecondsPerDay = 86400000.0;
-
-//------------------------------------------------------------------------------
-
-
 //------------------------------------------------------------------
 ::rtl::OUString ConvertLikeToken(const OSQLParseNode* pTokenNode, const OSQLParseNode* pEscapeNode, sal_Bool bInternational)
 {
commit 1bc4a49d9ba99ff0531bafc2cf0183f726bfe14b
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Apr 26 12:14:33 2013 +0200

    QueryDesign: in criteria, remove column_ref when table *and* column name match
    
    As opposed to only the column name
    
    Change-Id: I261d13f23214f950daa55a5b63cd486e59a0e127

diff --git a/connectivity/source/commontools/predicateinput.cxx b/connectivity/source/commontools/predicateinput.cxx
index a7f8f04..bf8092f 100644
--- a/connectivity/source/commontools/predicateinput.cxx
+++ b/connectivity/source/commontools/predicateinput.cxx
@@ -268,7 +268,7 @@ namespace dbtools
                 // translate it back into a string
                 sTransformedText = OUString();
                 pParseNode->parseNodeToPredicateStr(
-                    sTransformedText, m_xConnection, m_xFormatter, _rxField,
+                    sTransformedText, m_xConnection, m_xFormatter, _rxField, OUString(),
                     rParseContext.getPreferredLocale(), (sal_Char)nDecSeparator, &rParseContext
                 );
                 _rPredicateValue = sTransformedText;
diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index 779283f..4c67ea3 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -140,6 +140,7 @@ namespace connectivity
 //-----------------------------------------------------------------------------
 SQLParseNodeParameter::SQLParseNodeParameter( const Reference< XConnection >& _rxConnection,
         const Reference< XNumberFormatter >& _xFormatter, const Reference< XPropertySet >& _xField,
+        const OUString &_sPredicateTableAlias,
         const Locale& _rLocale, const IParseContext* _pContext,
         bool _bIntl, bool _bQuote, sal_Char _cDecSep, bool _bPredicate, bool _bParseToSDBC )
     :rLocale(_rLocale)
@@ -148,6 +149,7 @@ SQLParseNodeParameter::SQLParseNodeParameter( const Reference< XConnection >& _r
     ,pSubQueryHistory( new QueryNameSet )
     ,xFormatter(_xFormatter)
     ,xField(_xField)
+    ,sPredicateTableAlias(_sPredicateTableAlias)
     ,m_rContext( _pContext ? (const IParseContext&)(*_pContext) : (const IParseContext&)OSQLParser::s_aDefaultContext )
     ,cDecSep(_cDecSep)
     ,bQuote(_bQuote)
@@ -215,7 +217,7 @@ void OSQLParseNode::parseNodeToStr(OUString& rString,
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::parseNodeToStr" );
 
     parseNodeToStr(
-        rString, _rxConnection, NULL, NULL,
+        rString, _rxConnection, NULL, NULL, OUString(),
         pContext ? pContext->getPreferredLocale() : OParseContext::getDefaultLocale(),
         pContext, _bIntl, _bQuote, '.', false, false );
 }
@@ -233,7 +235,7 @@ void OSQLParseNode::parseNodeToPredicateStr(OUString& rString,
     OSL_ENSURE(xFormatter.is(), "OSQLParseNode::parseNodeToPredicateStr:: no formatter!");
 
     if (xFormatter.is())
-        parseNodeToStr(rString, _rxConnection, xFormatter, NULL, rIntl, pContext, sal_True, sal_True, _cDec, true, false);
+        parseNodeToStr(rString, _rxConnection, xFormatter, NULL, OUString(), rIntl, pContext, sal_True, sal_True, _cDec, true, false);
 }
 
 //-----------------------------------------------------------------------------
@@ -241,6 +243,7 @@ void OSQLParseNode::parseNodeToPredicateStr(OUString& rString,
                                               const Reference< XConnection > & _rxConnection,
                                               const Reference< XNumberFormatter > & xFormatter,
                                               const Reference< XPropertySet > & _xField,
+                                              const OUString &_sPredicateTableAlias,
                                               const ::com::sun::star::lang::Locale& rIntl,
                                               sal_Char _cDec,
                                               const IParseContext* pContext ) const
@@ -250,7 +253,7 @@ void OSQLParseNode::parseNodeToPredicateStr(OUString& rString,
     OSL_ENSURE(xFormatter.is(), "OSQLParseNode::parseNodeToPredicateStr:: no formatter!");
 
     if (xFormatter.is())
-        parseNodeToStr( rString, _rxConnection, xFormatter, _xField, rIntl, pContext, true, true, _cDec, true, false );
+        parseNodeToStr( rString, _rxConnection, xFormatter, _xField, _sPredicateTableAlias, rIntl, pContext, true, true, _cDec, true, false );
 }
 
 //-----------------------------------------------------------------------------
@@ -258,6 +261,7 @@ void OSQLParseNode::parseNodeToStr(OUString& rString,
                       const Reference< XConnection > & _rxConnection,
                       const Reference< XNumberFormatter > & xFormatter,
                       const Reference< XPropertySet > & _xField,
+                      const OUString &_sPredicateTableAlias,
                       const ::com::sun::star::lang::Locale& rIntl,
                       const IParseContext* pContext,
                       bool _bIntl,
@@ -277,7 +281,7 @@ void OSQLParseNode::parseNodeToStr(OUString& rString,
         {
             OSQLParseNode::impl_parseNodeToString_throw( sBuffer,
                 SQLParseNodeParameter(
-                    _rxConnection, xFormatter, _xField, rIntl, pContext,
+                     _rxConnection, xFormatter, _xField, _sPredicateTableAlias, rIntl, pContext,
                     _bIntl, _bQuote, _cDecSep, _bPredicate, _bSubstitute
                 ) );
         }
@@ -299,7 +303,7 @@ bool OSQLParseNode::parseNodeToExecutableStatement( OUString& _out_rString, cons
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::parseNodeToExecutableStatement" );
     OSL_PRECOND( _rxConnection.is(), "OSQLParseNode::parseNodeToExecutableStatement: invalid connection!" );
     SQLParseNodeParameter aParseParam( _rxConnection,
-        NULL, NULL, OParseContext::getDefaultLocale(), NULL, false, true, '.', false, true );
+        NULL, NULL, OUString(), OParseContext::getDefaultLocale(), NULL, false, true, '.', false, true );
 
     if ( aParseParam.aMetaData.supportsSubqueriesInFrom() )
     {
@@ -340,7 +344,7 @@ namespace
 //-----------------------------------------------------------------------------
 void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const SQLParseNodeParameter& rParam) const
 {
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::getTableRange" );
+    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::impl_parseNodeToString_throw" );
     if ( isToken() )
     {
         parseLeaf(rString,rParam);
@@ -477,10 +481,17 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
             //   "currentFieldName" =
             // but only at the very beginning of the criterion
             // (not embedded deep in the expression).
-            if (rString.isEmpty() && rParam.xField.is() && SQL_ISRULE(pSubTree,column_ref))
+            // TODO: replace "beginning of criterion" by "in simple expression",
+            // that is anything made of:
+            //  - parentheses
+            //  - logical operators (and, or, not)
+            //  - comparison operators (IS, =, >, <, BETWEEN, LIKE, ...)
+            //    (see where the parser calls inPredicateCheck for a full list)
+            // but *not* e.g. in function arguments
+            if (rParam.bPredicate && rString.isEmpty() && rParam.xField.is() && SQL_ISRULE(pSubTree,column_ref))
             {
-                sal_Bool bFilter = sal_False;
-                // retrieve the fields name
+                bool bFilter = false;
+                // retrieve the field's name & table range
                 OUString aFieldName;
                 try
                 {
@@ -496,21 +507,47 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
                 if(pSubTree->count())
                 {
                     const OSQLParseNode* pCol = pSubTree->m_aChildren[pSubTree->count()-1];
-                    if  (   (   SQL_ISRULE(pCol,column_val)
-                            &&  pCol->getChild(0)->getTokenValue().equalsIgnoreAsciiCase(aFieldName)
-                            )
-                        ||  pCol->getTokenValue().equalsIgnoreAsciiCase(aFieldName)
+                    if (SQL_ISRULE(pCol,column_val))
+                    {
+                        assert(pCol->count() == 1);
+                        pCol = pCol->getChild(0);
+                    }
+                    const OSQLParseNode* pTable(NULL);
+                    switch (pSubTree->count())
+                    {
+                    case 1:
+                        break;
+                    case 3:
+                        pTable = pSubTree->m_aChildren[0];
+                        break;
+                    case 5:
+                    case 7:
+                        SAL_WARN("connectivity.parse", "SQL: catalog and/or schema in column_ref in predicate");
+                        break;
+                    default:
+                        SAL_WARN("connectivity.parse", "impl_parseNodeToString_throw: SQL grammar changed; column_ref has " << pSubTree->count() << " children");
+                        assert(false);
+                        break;
+                    }
+                    // TODO: not all DBMS match column names case-insensitively...
+                    // see XDatabaseMetaData::supportsMixedCaseIdentifiers()
+                    // and XDatabaseMetaData::supportsMixedCaseQuotedIdentifiers()
+                    if  (   // table name matches (or no table name)?
+                            ( !pTable || pTable->getTokenValue().equalsIgnoreAsciiCase(rParam.sPredicateTableAlias) )
+                         && // column name matches?
+                            pCol->getTokenValue().equalsIgnoreAsciiCase(aFieldName)
                         )
-                        bFilter = sal_True;
+                        bFilter = true;
                 }
 
-                // ok we found the field, if the following node is the
-                // comparision operator '=' we filter it as well
                 if (bFilter)
                 {
+                    // skip field
+                    ++i;
+                    // if the following node is the comparision operator'=',
+                    // we filter it as well
                     if (SQL_ISRULE(this, comparison_predicate))
                     {
-                        ++i;
                         if(i != m_aChildren.end())
                         {
                             pSubTree = *i;
@@ -518,8 +555,6 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
                                 ++i;
                         }
                     }
-                    else
-                        ++i;
                 }
                 else
                 {
diff --git a/connectivity/source/simpledbt/parsenode_s.cxx b/connectivity/source/simpledbt/parsenode_s.cxx
index 6887cf3..92cd3a2 100644
--- a/connectivity/source/simpledbt/parsenode_s.cxx
+++ b/connectivity/source/simpledbt/parsenode_s.cxx
@@ -71,9 +71,11 @@ namespace connectivity
     //----------------------------------------------------------------
     void OSimpleParseNode::parseNodeToPredicateStr(OUString& _rString, const Reference< XConnection >& _rxConnection,
         const Reference< XNumberFormatter >& _rxFormatter, const Reference< XPropertySet >& _rxField,
+        const OUString &_sPredicateTableAlias,
         const Locale& _rIntl, const sal_Char _cDecSeparator,const IParseContext* _pContext) const
     {
-        m_pFullNode->parseNodeToPredicateStr( _rString, _rxConnection, _rxFormatter, _rxField, _rIntl, _cDecSeparator, _pContext );
+        m_pFullNode->parseNodeToPredicateStr( _rString, _rxConnection, _rxFormatter, _rxField, _sPredicateTableAlias,
+                                              _rIntl, _cDecSeparator, _pContext );
     }
 
 //........................................................................
diff --git a/connectivity/source/simpledbt/parsenode_s.hxx b/connectivity/source/simpledbt/parsenode_s.hxx
index d8bd6f9..0166933 100644
--- a/connectivity/source/simpledbt/parsenode_s.hxx
+++ b/connectivity/source/simpledbt/parsenode_s.hxx
@@ -54,6 +54,7 @@ namespace connectivity
             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& _rxFormatter,
             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxField,
+            const OUString &_sPredicateTableAlias,
             const ::com::sun::star::lang::Locale& _rIntl,
             const sal_Char _cDecSeparator,
             const IParseContext* _pContext
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
index ad29c14..b54b381 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
@@ -1118,6 +1118,7 @@ sal_Bool OSelectionBrowseBox::SaveModified()
                                                             xConnection,
                                                             static_cast<OQueryController&>(getDesignView()->getController()).getNumberFormatter(),
                                                             xColumn,
+                                                            pEntry->GetAlias(),
                                                             getDesignView()->getLocale(),
                                                             static_cast<sal_Char>(getDesignView()->getDecimalSeparator().toChar()),
                                                             &(static_cast<OQueryController&>(getDesignView()->getController()).getParser().getContext()));
@@ -1157,6 +1158,7 @@ sal_Bool OSelectionBrowseBox::SaveModified()
                                                                     xConnection,
                                                                     static_cast<OQueryController&>(getDesignView()->getController()).getNumberFormatter(),
                                                                     xColumn,
+                                                                    pEntry->GetAlias(),
                                                                     getDesignView()->getLocale(),
                                                                     static_cast<sal_Char>(getDesignView()->getDecimalSeparator().toChar()),
                                                                     &(static_cast<OQueryController&>(getDesignView()->getController()).getParser().getContext()));
diff --git a/include/connectivity/sqlnode.hxx b/include/connectivity/sqlnode.hxx
index 940b27f..51a9ec2 100644
--- a/include/connectivity/sqlnode.hxx
+++ b/include/connectivity/sqlnode.hxx
@@ -82,6 +82,7 @@ namespace connectivity
         ::boost::shared_ptr< QueryNameSet >     pSubQueryHistory;
         ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >    xFormatter;
         ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >       xField;
+        OUString                                                                        sPredicateTableAlias;
         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >    xQueries;  // see bParseToSDBCLevel
         const IParseContext& m_rContext;
         sal_Char            cDecSep;
@@ -94,6 +95,7 @@ namespace connectivity
             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& _xFormatter,
             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _xField,
+            const OUString &_sPredicateTableAlias,
             const ::com::sun::star::lang::Locale& _rLocale,
             const IParseContext* _pContext,
             bool _bIntl,
@@ -329,6 +331,7 @@ namespace connectivity
                                      const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
                                      const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > & xFormatter,
                                      const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & _xField,
+                                     const OUString &_sTableAlias,
                                      const ::com::sun::star::lang::Locale& rIntl,
                                      sal_Char _cDec,
                                      const IParseContext* pContext = NULL ) const;
@@ -410,6 +413,7 @@ namespace connectivity
                             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
                             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > & xFormatter,
                             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & _xField,
+                            const OUString &_sPredicateTableAlias,
                             const ::com::sun::star::lang::Locale& rIntl,
                             const IParseContext* pContext,
                             bool _bIntl,
diff --git a/include/connectivity/virtualdbtools.hxx b/include/connectivity/virtualdbtools.hxx
index 352c98d..9083016 100644
--- a/include/connectivity/virtualdbtools.hxx
+++ b/include/connectivity/virtualdbtools.hxx
@@ -294,6 +294,7 @@ namespace connectivity
                 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
                 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& _rxFormatter,
                 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxField,
+                const OUString &_sPredicateTableAlias,
                 const ::com::sun::star::lang::Locale& _rIntl,
                 const sal_Char _cDecSeparator,
                 const IParseContext* _pContext
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index f7dcf11..22b4716 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -2985,7 +2985,10 @@ sal_Bool DbFilterField::commitControl()
                 xParseNode->parseNodeToPredicateStr(aPreparedText,
                                                     xConnection,
                                                     xNumberFormatter,
-                                                    m_rColumn.GetField(),aAppLocale,'.',
+                                                    m_rColumn.GetField(),
+                                                    OUString(),
+                                                    aAppLocale,
+                                                    '.',
                                                     getParseContext());
                 m_aText = aPreparedText;
             }
diff --git a/svx/source/form/filtnav.cxx b/svx/source/form/filtnav.cxx
index 9bd6570..8b665eb 100644
--- a/svx/source/form/filtnav.cxx
+++ b/svx/source/form/filtnav.cxx
@@ -903,7 +903,7 @@ sal_Bool FmFilterModel::ValidateText(FmFilterItem* pItem, OUString& rText, OUStr
             OUString aPreparedText;
             Locale aAppLocale = Application::GetSettings().GetUILanguageTag().getLocale();
             xParseNode->parseNodeToPredicateStr(
-                aPreparedText, xConnection, xFormatter, xField, aAppLocale, '.', getParseContext() );
+                aPreparedText, xConnection, xFormatter, xField, OUString(), aAppLocale, '.', getParseContext() );
             rText = aPreparedText;
             return sal_True;
         }
diff --git a/svx/source/form/formcontroller.cxx b/svx/source/form/formcontroller.cxx
index c9fab0b..313fcd8 100644
--- a/svx/source/form/formcontroller.cxx
+++ b/svx/source/form/formcontroller.cxx
@@ -3246,6 +3246,7 @@ void FormController::setFilter(::std::vector<FmFieldInfo>& rFieldInfos)
                                                                     ,xConnection
                                                                     ,xFormatter
                                                                     ,xField
+                                                                    ,OUString()
                                                                     ,aAppLocale
                                                                     ,cDecimalSeparator
                                                                     ,getParseContext());
commit fae7a3d060664e6540dbdfc3babd54ac9ccb45bf
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Apr 26 02:59:26 2013 +0200

    String -> OUString
    
    Change-Id: Ibf566a11a383b77a930d46967e496752c88b39e4

diff --git a/dbaccess/source/ui/inc/QueryDesignView.hxx b/dbaccess/source/ui/inc/QueryDesignView.hxx
index 4b88212..f49614b 100644
--- a/dbaccess/source/ui/inc/QueryDesignView.hxx
+++ b/dbaccess/source/ui/inc/QueryDesignView.hxx
@@ -141,7 +141,7 @@ namespace dbaui
                 );
 
         ::connectivity::OSQLParseNode* getPredicateTreeFromEntry(   OTableFieldDescRef pEntry,
-                                                                    const String& _sCriteria,
+                                                                    const OUString& _sCriteria,
                                                                     OUString& _rsErrorMessage,
                                                                     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxColumn) const;
 
diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
index 6f37036..fe27a41 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
@@ -3072,7 +3072,7 @@ void OQueryDesignView::SaveUIConfig()
 }
 // -----------------------------------------------------------------------------
 OSQLParseNode* OQueryDesignView::getPredicateTreeFromEntry(OTableFieldDescRef pEntry,
-                                                           const String& _sCriteria,
+                                                           const OUString& _sCriteria,
                                                            OUString& _rsErrorMessage,
                                                            Reference<XPropertySet>& _rxColumn) const
 {
@@ -3086,7 +3086,6 @@ OSQLParseNode* OQueryDesignView::getPredicateTreeFromEntry(OTableFieldDescRef pE
     ::connectivity::OSQLParser& rParser( static_cast<OQueryController&>(getController()).getParser() );
     OQueryTableWindow* pWin = static_cast<OQueryTableWindow*>(pEntry->GetTabWindow());
 
-    String sTest(_sCriteria);
     // special handling for functions
     if ( pEntry->GetFunctionType() & (FKT_OTHER | FKT_AGGREGATE | FKT_NUMERIC) )
     {
@@ -3157,6 +3156,7 @@ OSQLParseNode* OQueryDesignView::getPredicateTreeFromEntry(OTableFieldDescRef pE
         }
     }
 
+    OUString sTest(_sCriteria);
     OSQLParseNode* pParseNode = rParser.predicateTree(  _rsErrorMessage,
                                                         sTest,
                                                         static_cast<OQueryController&>(getController()).getNumberFormatter(),
commit e9ae448b1ed4424aadc183397d9f45b873ee3bc2
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Apr 26 02:52:36 2013 +0200

    janitorial: indentation, spacing, ...
    
    Change-Id: Ie794e91783f8eaacf236070e7cdeb5b5f4361e9b

diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index 21275b4..779283f 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -1232,8 +1232,8 @@ OSQLParseNode* OSQLParser::predicateTree(OUString& rErrorMessage, const OUString
     if (SQLyyparse() != 0)
     {
         m_sFieldName= OUString();
-    m_xField.clear();
-    m_xFormatter.clear();
+        m_xField.clear();
+        m_xFormatter.clear();
         m_nFormatKey = 0;
         m_nDateFormatKey = 0;
 
@@ -1253,8 +1253,8 @@ OSQLParseNode* OSQLParser::predicateTree(OUString& rErrorMessage, const OUString
         (*s_pGarbageCollector)->clear();
 
         m_sFieldName= OUString();
-    m_xField.clear();
-    m_xFormatter.clear();
+        m_xField.clear();
+        m_xFormatter.clear();
         m_nFormatKey = 0;
         m_nDateFormatKey = 0;
 
@@ -1729,7 +1729,7 @@ sal_Bool OSQLParseNode::addDateValue(OUStringBuffer& rString, const SQLParseNode
     return sal_False;
 }
 // -----------------------------------------------------------------------------
-void OSQLParseNode::replaceNodeValue(const OUString& rTableAlias,const OUString& rColumnName)
+void OSQLParseNode::replaceNodeValue(const OUString& rTableAlias, const OUString& rColumnName)
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::replaceNodeValue" );
     for (sal_uInt32 i=0;i<count();++i)
@@ -1856,7 +1856,7 @@ void OSQLParseNode::disjunctiveNormalForm(OSQLParseNode*& pSearchCondition)
     }
 }
 //-----------------------------------------------------------------------------
-void OSQLParseNode::negateSearchCondition(OSQLParseNode*& pSearchCondition,sal_Bool bNegate)
+void OSQLParseNode::negateSearchCondition(OSQLParseNode*& pSearchCondition, sal_Bool bNegate)
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::negateSearchCondition" );
     if(!pSearchCondition) // no where condition at entry point
commit e3d0f6ad119b8421a12d02c26d7410599ebb33e1
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri Apr 26 02:51:37 2013 +0200

    sal_Bool -> bool
    
    Change-Id: I157e0e84cbc9832dd863607b8f52359596b51c8c

diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index 391e6d6..21275b4 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -209,8 +209,8 @@ OUString OSQLParseNode::convertTimeString(const SQLParseNodeParameter& rParam, c
 void OSQLParseNode::parseNodeToStr(OUString& rString,
                                    const Reference< XConnection >& _rxConnection,
                                    const IParseContext* pContext,
-                                   sal_Bool _bIntl,
-                                   sal_Bool _bQuote) const
+                                   bool _bIntl,
+                                   bool _bQuote) const
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen at sun.com", "OSQLParseNode::parseNodeToStr" );
 
diff --git a/include/connectivity/sqlnode.hxx b/include/connectivity/sqlnode.hxx
index f988f78..940b27f 100644
--- a/include/connectivity/sqlnode.hxx
+++ b/include/connectivity/sqlnode.hxx
@@ -314,8 +314,8 @@ namespace connectivity
         void parseNodeToStr(OUString& rString,
                             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
                             const IParseContext* pContext = NULL,
-                            sal_Bool _bIntl = sal_False,
-                            sal_Bool _bQuote= sal_True) const;
+                            bool _bIntl = sal_False,
+                            bool _bQuote= sal_True) const;
 
         // quoted and internationalised
         void parseNodeToPredicateStr(OUString& rString,


More information about the Libreoffice-commits mailing list