use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class Select method from.
public static <R> ExpectingJoin1<R> from(Database database, CommonTableExpression<R> cte) {
Alias<R> alias = cte.asAlias();
SelectStatement<R> select = new SelectStatement<>(new Scope(database, alias), alias.type(), From.from(alias), alias.rowMapper(), Projection.of(alias));
cte.commonTableExpressions().forEach(select::addCommonTableExpression);
return new ExpectingJoin1<>(select);
}
use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class Select method from.
public static <R> ExpectingJoin1<R> from(Database database, CommonTableExpression<R> cte, String aliasName) {
Alias<R> alias = cte.as(aliasName);
SelectStatement<R> select = new SelectStatement<>(new Scope(database, alias), alias.type(), From.from(alias), alias.rowMapper(), Projection.of(alias));
cte.commonTableExpressions().forEach(select::addCommonTableExpression);
return new ExpectingJoin1<>(select);
}
use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class SelectStatement method sqlImpl.
String sqlImpl(Scope outerScope) {
Scope innerScope = outerScope.plus(scope);
String sql = String.format("%sselect %s%s%s%s%s%s%s", commonTableExpressionSql(outerScope), projection().sql(innerScope), from.sql(innerScope), whereClauseSql(innerScope), groupByClauseSql(innerScope), havingClauseSql(innerScope), unionsSql(innerScope), orderByClauseSql(innerScope));
sql = fetchFirstSql(sql);
sql = isolationLevelSql(sql);
return sql;
}
use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class OlapTest method olapFunction.
@ParameterizedTest(name = "{index}: {1}")
@MethodSource("parametersForOlapTest")
void olapFunction(Function<Alias<SalespersonRow>, InOlapExpectingPartitionBy<?>> f, String expectedSql) {
Database database = testDatabase(new AnsiDialect());
Alias<SalespersonRow> s = database.table(SalespersonRow.class).as("s");
Scope scope = new Scope(database, s);
InOlapExpectingPartitionBy<?> result = f.apply(s);
assertThat(result.sql(scope), is(expectedSql));
assertThat(result.precedence(), is(Precedence.UNARY));
}
use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class BooleanExpressionTest method testAnd.
@ParameterizedTest
@MethodSource("argsForAnd")
void testAnd(BiFunction<Alias<SalespersonRow>, BooleanExpression, BooleanExpression> method, String expectedSql) {
MockitoAnnotations.initMocks(this);
Database database = testDatabase(new AnsiDialect());
Alias<SalespersonRow> alias = database.table(SalespersonRow.class).as("s");
Scope scope = new Scope(database, alias);
when(sut.precedence()).thenReturn(Precedence.UNARY);
method.apply(alias, sut);
verify(sut).appendAnd(appendArg.capture());
assertThat(appendArg.getValue().sql(scope), is(expectedSql));
}
Aggregations