diff options
author | Ocke Janssen [oj] <Ocke.Janssen@sun.com> | 2010-05-27 08:30:29 +0200 |
---|---|---|
committer | Ocke Janssen [oj] <Ocke.Janssen@sun.com> | 2010-05-27 08:30:29 +0200 |
commit | e8b60987500abf6a5a5c905853800e9dd77c3d72 (patch) | |
tree | 59ac66f552b5818a072d396bd337d9f672d54d94 /connectivity | |
parent | dd6deed10c7fee3dbd1313b983d2142f340bfe9f (diff) |
dba33f: #i107654# like corrected
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/source/parse/sqlbison.y | 12 | ||||
-rw-r--r-- | connectivity/source/parse/sqlnode.cxx | 9 |
2 files changed, 11 insertions, 10 deletions
diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y index 06911d0b59f4..fdaad4cd81c1 100644 --- a/connectivity/source/parse/sqlbison.y +++ b/connectivity/source/parse/sqlbison.y @@ -1270,12 +1270,14 @@ like_predicate: $$ = SQL_NEW_RULE; $$->append(pColumnRef); $$->append($1); - OSQLParseNode* p2nd = $1->getChild(2); - if ( !xxx_pGLOBAL_SQLPARSER->buildLikeRule($1,p2nd,$1->getChild(3)) ) + OSQLParseNode* p2nd = $1->removeAt(2); + OSQLParseNode* p3rd = $1->removeAt(2); + if ( !xxx_pGLOBAL_SQLPARSER->buildLikeRule($1,p2nd,p3rd) ) { delete $$; YYABORT; } + $1->append(p3rd); } else YYERROR; @@ -1290,12 +1292,14 @@ like_predicate: $$ = SQL_NEW_RULE; $$->append(pColumnRef); $$->append($1); - OSQLParseNode* p2nd = $1->getChild(2); - if ( !xxx_pGLOBAL_SQLPARSER->buildLikeRule($1,p2nd,$1->getChild(3)) ) + OSQLParseNode* p2nd = $1->removeAt(2); + OSQLParseNode* p3rd = $1->removeAt(2); + if ( !xxx_pGLOBAL_SQLPARSER->buildLikeRule($1,p2nd,p3rd) ) { delete $$; YYABORT; } + $1->append(p3rd); } else YYERROR; diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx index af087e78896e..b8bcd5334787 100644 --- a/connectivity/source/parse/sqlnode.cxx +++ b/connectivity/source/parse/sqlnode.cxx @@ -715,13 +715,10 @@ void OSQLParseNode::impl_parseLikeNodeToString_throw( ::rtl::OUStringBuffer& rSt m_aChildren[0]->impl_parseNodeToString_throw( rString, aNewParam ); const OSQLParseNode* pPart2 = m_aChildren[1]; + pPart2->getChild(0)->impl_parseNodeToString_throw( rString, aNewParam ); pPart2->getChild(1)->impl_parseNodeToString_throw( rString, aNewParam ); - if (SQL_ISTOKEN(pPart2->getChild(0), NOT)) - pPart2->getChild(2)->impl_parseNodeToString_throw( rString, aNewParam ); - - sal_Int32 nCurentPos = pPart2->count() - 2; - pParaNode = pPart2->getChild(nCurentPos); - pEscNode = pPart2->getChild(nCurentPos+1); + pParaNode = pPart2->getChild(2); + pEscNode = pPart2->getChild(3); if (pParaNode->isToken()) { |