Search in sources :

Example 1 with Scope

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);
}
Also used : Scope(com.cadenzauk.siesta.Scope)

Example 2 with Scope

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);
}
Also used : Scope(com.cadenzauk.siesta.Scope)

Example 3 with Scope

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;
}
Also used : Scope(com.cadenzauk.siesta.Scope)

Example 4 with Scope

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));
}
Also used : AnsiDialect(com.cadenzauk.siesta.dialect.AnsiDialect) Scope(com.cadenzauk.siesta.Scope) TestDatabase.testDatabase(com.cadenzauk.siesta.model.TestDatabase.testDatabase) Database(com.cadenzauk.siesta.Database) SalespersonRow(com.cadenzauk.siesta.model.SalespersonRow) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 5 with Scope

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));
}
Also used : AnsiDialect(com.cadenzauk.siesta.dialect.AnsiDialect) Scope(com.cadenzauk.siesta.Scope) TestDatabase.testDatabase(com.cadenzauk.siesta.model.TestDatabase.testDatabase) Database(com.cadenzauk.siesta.Database) SalespersonRow(com.cadenzauk.siesta.model.SalespersonRow) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Aggregations

Scope (com.cadenzauk.siesta.Scope)9 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)6 Database (com.cadenzauk.siesta.Database)5 MethodSource (org.junit.jupiter.params.provider.MethodSource)5 AnsiDialect (com.cadenzauk.siesta.dialect.AnsiDialect)3 SalespersonRow (com.cadenzauk.siesta.model.SalespersonRow)3 TestDatabase.testDatabase (com.cadenzauk.siesta.model.TestDatabase.testDatabase)3 MockitoTest (com.cadenzauk.core.MockitoTest)1 Test (org.junit.jupiter.api.Test)1