Author: tfischer
Date: Wed Sep 3 19:53:25 2014
New Revision: 1622341
URL: http://svn.apache.org/r1622341
Log:
TORQUE-321 remove wrong optimization of iLike without wildcards
Modified:
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/LikeBuilder.java
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java
Modified:
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/LikeBuilder.java
URL:
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/LikeBuilder.java?rev=1622341&r1=1622340&r2=1622341&view=diff
==============================================================================
---
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/LikeBuilder.java
(original)
+++
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/LikeBuilder.java
Wed Sep 3 19:53:25 2014
@@ -57,9 +57,9 @@ public class LikeBuilder extends Abstrac
* @return the rendered SQL for the WhereClauseExpression
*/
public PreparedStatementPart buildPs(
- WhereClauseExpression whereClausePart,
- boolean ignoreCase,
- Adapter adapter)
+ final WhereClauseExpression whereClausePart,
+ final boolean ignoreCase,
+ final Adapter adapter)
throws TorqueException
{
if (!(whereClausePart.getRValue() instanceof String))
@@ -153,7 +153,10 @@ public class LikeBuilder extends Abstrac
whereClausePart.getLValue(), ignoreCase, adapter);
}
- if (replaceWithEquals)
+ if (replaceWithEquals
+ && !whereClausePart.getOperator().equals(SqlEnum.NOT_ILIKE)
+ && !whereClausePart.getOperator().equals(SqlEnum.ILIKE)
+ )
{
if (whereClausePart.getOperator().equals(SqlEnum.NOT_LIKE)
|| whereClausePart.getOperator().equals(SqlEnum.NOT_ILIKE))
@@ -210,8 +213,8 @@ public class LikeBuilder extends Abstrac
* {@inheritDoc}
*/
public boolean isApplicable(
- WhereClauseExpression whereClauseExpression,
- Adapter adapter)
+ final WhereClauseExpression whereClauseExpression,
+ final Adapter adapter)
{
if (whereClauseExpression.getOperator().equals(SqlEnum.LIKE)
|| whereClauseExpression.getOperator().equals(SqlEnum.NOT_LIKE)
Modified:
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java
URL:
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java?rev=1622341&r1=1622340&r2=1622341&view=diff
==============================================================================
---
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java
(original)
+++
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java
Wed Sep 3 19:53:25 2014
@@ -1917,6 +1917,25 @@ public class SqlBuilderTest extends Base
query.getPreparedStatementReplacements().get(0));
}
+ public void testIlikeNoWildcard() throws Exception
+ {
+ Criteria criteria = new Criteria();
+ criteria.addSelectColumn(new ColumnImpl("table.column1"));
+ criteria.where(
+ new ColumnImpl("table.column2"),
+ "value2",
+ Criteria.ILIKE);
+
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals("SELECT table.column1 FROM table "
+ + "WHERE table.column2 ILIKE ?",
+ query.toString());
+ assertEquals(1, query.getPreparedStatementReplacements().size());
+ assertEquals(
+ "value2",
+ query.getPreparedStatementReplacements().get(0));
+ }
+
public void testNotIlike() throws Exception
{
Criteria criteria = new Criteria();
@@ -1936,6 +1955,25 @@ public class SqlBuilderTest extends Base
query.getPreparedStatementReplacements().get(0));
}
+ public void testNotIlikeNoWildcard() throws Exception
+ {
+ Criteria criteria = new Criteria();
+ criteria.addSelectColumn(new ColumnImpl("table.column1"));
+ criteria.where(
+ new ColumnImpl("table.column2"),
+ "value2",
+ Criteria.NOT_ILIKE);
+
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals("SELECT table.column1 FROM table "
+ + "WHERE table.column2 NOT ILIKE ?",
+ query.toString());
+ assertEquals(1, query.getPreparedStatementReplacements().size());
+ assertEquals(
+ "value2",
+ query.getPreparedStatementReplacements().get(0));
+ }
+
public void testLvalueString() throws Exception
{
Criteria criteria = new Criteria();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]