summaryrefslogtreecommitdiff
path: root/connectivity
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
commite8b60987500abf6a5a5c905853800e9dd77c3d72 (patch)
tree59ac66f552b5818a072d396bd337d9f672d54d94 /connectivity
parentdd6deed10c7fee3dbd1313b983d2142f340bfe9f (diff)
dba33f: #i107654# like corrected
Diffstat (limited to 'connectivity')
-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 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())
{