summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOcke Janssen [oj] <Ocke.Janssen@sun.com>2010-05-27 08:30:29 +0200
committerOcke Janssen [oj] <Ocke.Janssen@sun.com>2010-05-27 08:30:29 +0200
commit6d8d642a0cddfb83d285d8da69677067bbf9d1f2 (patch)
treef7727baa4447496aa755ec64ae60489dbc96ce46
parentdaf76132db519d472610d6ab4bf943153f5a8b16 (diff)
dba33f: #i107654# like corrected
-rw-r--r--connectivity/source/parse/sqlbison.y12
-rw-r--r--connectivity/source/parse/sqlnode.cxx9
2 files changed, 11 insertions, 10 deletions
diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y
index 06911d0b59..fdaad4cd81 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 181799f3cd..9b9f9fb66f 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())
{