use of org.seasar.doma.internal.jdbc.sql.SqlParser in project doma by domaframework.
the class StandardPagingTransformerTest method testOffsetLimit_forNode.
@Test
public void testOffsetLimit_forNode() {
String expected = "select * from ( select temp_.*, row_number() over( order by temp_.name1, temp_.name2, temp_.id ) as doma_rownumber_ from ( select emp.id from emp ) as temp_ ) as temp2_ where doma_rownumber_ > 5 and doma_rownumber_ <= 15";
StandardPagingTransformer transformer = new StandardPagingTransformer(5, 10);
SqlParser parser = new SqlParser("select emp.id from emp order by /*%for e: values*/emp.name/*#e*/, /*%end*/emp.id");
SqlNode sqlNode = transformer.transform(parser.parse());
ExpressionEvaluator evaluator = new ExpressionEvaluator();
evaluator.add("values", new Value(List.class, Arrays.asList(1, 2)));
NodePreparedSqlBuilder sqlBuilder = new NodePreparedSqlBuilder(new MockConfig(), SqlKind.SELECT, "dummyPath", evaluator, SqlLogType.FORMATTED);
PreparedSql sql = sqlBuilder.build(sqlNode, Function.identity());
assertEquals(expected, sql.getRawSql());
}
use of org.seasar.doma.internal.jdbc.sql.SqlParser in project doma by domaframework.
the class StandardPagingTransformerTest method testOrderByClauseUnspecified.
@Test
public void testOrderByClauseUnspecified() {
StandardPagingTransformer transformer = new StandardPagingTransformer(5, 10);
SqlParser parser = new SqlParser("select * from emp");
try {
transformer.transform(parser.parse());
fail();
} catch (JdbcException expected) {
System.out.println(expected.getMessage());
assertEquals(Message.DOMA2201, expected.getMessageResource());
}
}
use of org.seasar.doma.internal.jdbc.sql.SqlParser in project doma by domaframework.
the class StandardPagingTransformerTest method testOffsetLimit.
@Test
public void testOffsetLimit() {
String expected = "select * from ( select temp_.*, row_number() over( order by temp_.id ) as doma_rownumber_ from ( select emp.id from emp ) as temp_ ) as temp2_ where doma_rownumber_ > 5 and doma_rownumber_ <= 15";
StandardPagingTransformer transformer = new StandardPagingTransformer(5, 10);
SqlParser parser = new SqlParser("select emp.id from emp order by emp.id");
SqlNode sqlNode = transformer.transform(parser.parse());
NodePreparedSqlBuilder sqlBuilder = new NodePreparedSqlBuilder(new MockConfig(), SqlKind.SELECT, "dummyPath");
PreparedSql sql = sqlBuilder.build(sqlNode, Function.identity());
assertEquals(expected, sql.getRawSql());
}
use of org.seasar.doma.internal.jdbc.sql.SqlParser in project doma by domaframework.
the class BatchSqlValidatorTest method testEmbeddedVariable.
@Test
void testEmbeddedVariable() throws Exception {
Class<?> target = BatchSqlValidationDao.class;
addCompilationUnit(target);
addProcessor(new TestProcessor() {
@Override
protected void run() {
ExecutableElement methodElement = createMethodElement(target, "testEmbeddedVariable", String.class);
LinkedHashMap<String, TypeMirror> parameterTypeMap = createParameterTypeMap(methodElement);
BatchSqlValidator validator = new BatchSqlValidator(ctx, methodElement, parameterTypeMap, "aaa/bbbDao/ccc.sql", false, false);
SqlParser parser = new SqlParser("select * from emp /*# orderBy */");
SqlNode sqlNode = parser.parse();
sqlNode.accept(validator, null);
}
});
compile();
assertTrue(getCompiledResult());
assertMessage(Message.DOMA4181);
}
use of org.seasar.doma.internal.jdbc.sql.SqlParser in project doma by domaframework.
the class BatchSqlValidatorTest method testIfAndEmbeddedVariable.
@Test
void testIfAndEmbeddedVariable() throws Exception {
Class<?> target = BatchSqlValidationDao.class;
addCompilationUnit(target);
addProcessor(new TestProcessor() {
@Override
protected void run() {
ExecutableElement methodElement = createMethodElement(target, "testIfAndEmbeddedVariable", String.class);
LinkedHashMap<String, TypeMirror> parameterTypeMap = createParameterTypeMap(methodElement);
BatchSqlValidator validator = new BatchSqlValidator(ctx, methodElement, parameterTypeMap, "aaa/bbbDao/ccc.sql", false, false);
SqlParser parser = new SqlParser("select * from emp where /*%if true*/ id = 1 /*%end */ /*# orderBy */");
SqlNode sqlNode = parser.parse();
sqlNode.accept(validator, null);
}
});
compile();
assertTrue(getCompiledResult());
assertEquals(2, getDiagnostics().size());
}
Aggregations