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: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org