Search in sources :

Example 6 with ExpressionEvaluator

use of org.seasar.doma.internal.expr.ExpressionEvaluator in project doma by domaframework.

the class SqlParserTest method testEmptyParens_whiteSpace.

@Test
public void testEmptyParens_whiteSpace() {
    ExpressionEvaluator evaluator = new ExpressionEvaluator();
    SqlParser parser = new SqlParser("select rank(   )");
    SqlNode sqlNode = parser.parse();
    PreparedSql sql = new NodePreparedSqlBuilder(config, SqlKind.SELECT, "dummyPath", evaluator, SqlLogType.FORMATTED).build(sqlNode, Function.identity());
    assertEquals("select rank(   )", sql.getRawSql());
}
Also used : PreparedSql(org.seasar.doma.jdbc.PreparedSql) ExpressionEvaluator(org.seasar.doma.internal.expr.ExpressionEvaluator) SqlNode(org.seasar.doma.jdbc.SqlNode) Test(org.junit.jupiter.api.Test)

Example 7 with ExpressionEvaluator

use of org.seasar.doma.internal.expr.ExpressionEvaluator in project doma by domaframework.

the class SqlParserTest method testIf_removeWhere.

@Test
public void testIf_removeWhere() {
    ExpressionEvaluator evaluator = new ExpressionEvaluator();
    evaluator.add("name", new Value(String.class, null));
    String testSql = "select * from aaa where /*%if name != null*/bbb = /*name*/'ccc' /*%end*/";
    SqlParser parser = new SqlParser(testSql);
    SqlNode sqlNode = parser.parse();
    PreparedSql sql = new NodePreparedSqlBuilder(config, SqlKind.SELECT, "dummyPath", evaluator, SqlLogType.FORMATTED).build(sqlNode, Function.identity());
    assertEquals("select * from aaa", sql.getRawSql());
    assertEquals("select * from aaa", sql.getFormattedSql());
    assertEquals(0, sql.getParameters().size());
}
Also used : PreparedSql(org.seasar.doma.jdbc.PreparedSql) Value(org.seasar.doma.internal.expr.Value) ExpressionEvaluator(org.seasar.doma.internal.expr.ExpressionEvaluator) SqlNode(org.seasar.doma.jdbc.SqlNode) Test(org.junit.jupiter.api.Test)

Example 8 with ExpressionEvaluator

use of org.seasar.doma.internal.expr.ExpressionEvaluator in project doma by domaframework.

the class SqlParserTest method testBindVariable_in_empty_iterable.

@Test
public void testBindVariable_in_empty_iterable() {
    ExpressionEvaluator evaluator = new ExpressionEvaluator();
    evaluator.add("name", new Value(List.class, Collections.emptyList()));
    String testSql = "select * from aaa where ename in /*name*/('aaa', 'bbb')";
    SqlParser parser = new SqlParser(testSql);
    SqlNode sqlNode = parser.parse();
    PreparedSql sql = new NodePreparedSqlBuilder(config, SqlKind.SELECT, "dummyPath", evaluator, SqlLogType.FORMATTED).build(sqlNode, Function.identity());
    assertEquals("select * from aaa where ename in (null)", sql.getRawSql());
    assertEquals("select * from aaa where ename in (null)", sql.getFormattedSql());
    assertEquals(0, sql.getParameters().size());
}
Also used : PreparedSql(org.seasar.doma.jdbc.PreparedSql) Value(org.seasar.doma.internal.expr.Value) ArrayList(java.util.ArrayList) List(java.util.List) ExpressionEvaluator(org.seasar.doma.internal.expr.ExpressionEvaluator) SqlNode(org.seasar.doma.jdbc.SqlNode) Test(org.junit.jupiter.api.Test)

Example 9 with ExpressionEvaluator

use of org.seasar.doma.internal.expr.ExpressionEvaluator in project doma by domaframework.

the class SqlParserTest method testIf_removeOrderBy.

@Test
public void testIf_removeOrderBy() {
    ExpressionEvaluator evaluator = new ExpressionEvaluator();
    evaluator.add("name", new Value(String.class, null));
    String testSql = "select * from aaa order by /*%if name != null*/bbb/*%end*/";
    SqlParser parser = new SqlParser(testSql);
    SqlNode sqlNode = parser.parse();
    PreparedSql sql = new NodePreparedSqlBuilder(config, SqlKind.SELECT, "dummyPath", evaluator, SqlLogType.FORMATTED).build(sqlNode, Function.identity());
    assertEquals("select * from aaa", sql.getRawSql());
    assertEquals("select * from aaa", sql.getFormattedSql());
    assertEquals(0, sql.getParameters().size());
}
Also used : PreparedSql(org.seasar.doma.jdbc.PreparedSql) Value(org.seasar.doma.internal.expr.Value) ExpressionEvaluator(org.seasar.doma.internal.expr.ExpressionEvaluator) SqlNode(org.seasar.doma.jdbc.SqlNode) Test(org.junit.jupiter.api.Test)

Example 10 with ExpressionEvaluator

use of org.seasar.doma.internal.expr.ExpressionEvaluator in project doma by domaframework.

the class SqlParserTest method testIf_removeGroupBy.

@Test
public void testIf_removeGroupBy() {
    ExpressionEvaluator evaluator = new ExpressionEvaluator();
    evaluator.add("name", new Value(String.class, null));
    String testSql = "select * from aaa group by /*%if name != null*/bbb/*%end*/";
    SqlParser parser = new SqlParser(testSql);
    SqlNode sqlNode = parser.parse();
    PreparedSql sql = new NodePreparedSqlBuilder(config, SqlKind.SELECT, "dummyPath", evaluator, SqlLogType.FORMATTED).build(sqlNode, Function.identity());
    assertEquals("select * from aaa", sql.getRawSql());
    assertEquals("select * from aaa", sql.getFormattedSql());
    assertEquals(0, sql.getParameters().size());
}
Also used : PreparedSql(org.seasar.doma.jdbc.PreparedSql) Value(org.seasar.doma.internal.expr.Value) ExpressionEvaluator(org.seasar.doma.internal.expr.ExpressionEvaluator) SqlNode(org.seasar.doma.jdbc.SqlNode) Test(org.junit.jupiter.api.Test)

Aggregations

ExpressionEvaluator (org.seasar.doma.internal.expr.ExpressionEvaluator)83 Test (org.junit.jupiter.api.Test)77 Value (org.seasar.doma.internal.expr.Value)52 PreparedSql (org.seasar.doma.jdbc.PreparedSql)51 SqlNode (org.seasar.doma.jdbc.SqlNode)48 EvaluationResult (org.seasar.doma.internal.expr.EvaluationResult)18 BigDecimal (java.math.BigDecimal)14 List (java.util.List)14 ArrayList (java.util.ArrayList)12 JdbcException (org.seasar.doma.jdbc.JdbcException)10 NodePreparedSqlBuilder (org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder)8 AnonymousNode (org.seasar.doma.internal.jdbc.sql.node.AnonymousNode)6 FromClauseNode (org.seasar.doma.internal.jdbc.sql.node.FromClauseNode)6 SelectClauseNode (org.seasar.doma.internal.jdbc.sql.node.SelectClauseNode)6 SelectStatementNode (org.seasar.doma.internal.jdbc.sql.node.SelectStatementNode)6 WhereClauseNode (org.seasar.doma.internal.jdbc.sql.node.WhereClauseNode)6 WordNode (org.seasar.doma.internal.jdbc.sql.node.WordNode)6 EndNode (org.seasar.doma.internal.jdbc.sql.node.EndNode)5 IfBlockNode (org.seasar.doma.internal.jdbc.sql.node.IfBlockNode)5 IfNode (org.seasar.doma.internal.jdbc.sql.node.IfNode)5