[#894] Move functions from Field<?> to new org.jooq.impl.SQL and make them static - moved window functions
This commit is contained in:
parent
3197037dd5
commit
67acab88c0
@ -6881,23 +6881,15 @@ public abstract class jOOQAbstractTest<
|
||||
// STDDEV_POP(), STDDEV_SAMP(), VAR_POP(), VAR_SAMP()
|
||||
result =
|
||||
create().select(TBook_ID(),
|
||||
TBook_ID().stddevPopOver()
|
||||
.partitionByOne(),
|
||||
TBook_ID().stddevSampOver()
|
||||
.partitionByOne(),
|
||||
TBook_ID().varPopOver()
|
||||
.partitionByOne(),
|
||||
TBook_ID().varSampOver()
|
||||
.partitionByOne(),
|
||||
stddevPop(TBook_ID()).over().partitionByOne(),
|
||||
stddevSamp(TBook_ID()).over().partitionByOne(),
|
||||
varPop(TBook_ID()).over().partitionByOne(),
|
||||
varSamp(TBook_ID()).over().partitionByOne(),
|
||||
|
||||
TBook_ID().stddevPopOver()
|
||||
.partitionBy(TBook_AUTHOR_ID()),
|
||||
TBook_ID().stddevSampOver()
|
||||
.partitionBy(TBook_AUTHOR_ID()),
|
||||
TBook_ID().varPopOver()
|
||||
.partitionBy(TBook_AUTHOR_ID()),
|
||||
TBook_ID().varSampOver()
|
||||
.partitionBy(TBook_AUTHOR_ID()))
|
||||
stddevPop(TBook_ID()).over().partitionBy(TBook_AUTHOR_ID()),
|
||||
stddevSamp(TBook_ID()).over().partitionBy(TBook_AUTHOR_ID()),
|
||||
varPop(TBook_ID()).over().partitionBy(TBook_AUTHOR_ID()),
|
||||
varSamp(TBook_ID()).over().partitionBy(TBook_AUTHOR_ID()))
|
||||
.from(TBook())
|
||||
.orderBy(TBook_ID().asc())
|
||||
.fetch();
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
|
||||
package org.jooq;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@ -562,42 +561,6 @@ public interface Field<T> extends NamedTypeProviderQueryPart<T>, AliasProvider<F
|
||||
*/
|
||||
Field<T> shr(Field<? extends Number> value);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Analytic (or window) functions created from this field
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* The <code>stddev_pop(field) over ([analytic clause])</code> function.
|
||||
* <p>
|
||||
* Window functions are supported in DB2, Postgres, Oracle, SQL Server and
|
||||
* Sybase.
|
||||
*/
|
||||
WindowPartitionByStep<BigDecimal> stddevPopOver();
|
||||
|
||||
/**
|
||||
* The <code>stddev_samp(field) over ([analytic clause])</code> function.
|
||||
* <p>
|
||||
* Window functions are supported in DB2, Postgres, Oracle, SQL Server and
|
||||
* Sybase.
|
||||
*/
|
||||
WindowPartitionByStep<BigDecimal> stddevSampOver();
|
||||
|
||||
/**
|
||||
* The <code>var_pop(field) over ([analytic clause])</code> function.
|
||||
* <p>
|
||||
* Window functions are supported in DB2, Postgres, Oracle, SQL Server and
|
||||
* Sybase.
|
||||
*/
|
||||
WindowPartitionByStep<BigDecimal> varPopOver();
|
||||
|
||||
/**
|
||||
* The <code>var_samp(field) over ([analytic clause])</code> function.
|
||||
* <p>
|
||||
* Window functions are supported in DB2, Postgres, Oracle, SQL Server and
|
||||
* Sybase.
|
||||
*/
|
||||
WindowPartitionByStep<BigDecimal> varSampOver();
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// String functions created from this field
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@ -45,7 +45,6 @@ import static org.jooq.impl.Factory.trueCondition;
|
||||
import static org.jooq.impl.Factory.val;
|
||||
import static org.jooq.impl.Factory.vals;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@ -67,7 +66,6 @@ import org.jooq.SQLDialectNotSupportedException;
|
||||
import org.jooq.Select;
|
||||
import org.jooq.SortField;
|
||||
import org.jooq.SortOrder;
|
||||
import org.jooq.WindowPartitionByStep;
|
||||
|
||||
abstract class AbstractField<T> extends AbstractNamedTypeProviderQueryPart<T> implements Field<T> {
|
||||
|
||||
@ -378,30 +376,6 @@ abstract class AbstractField<T> extends AbstractNamedTypeProviderQueryPart<T> im
|
||||
return new Expression<T>(ExpressionOperator.SHR, this, value);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Window functions created from this field
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final WindowPartitionByStep<BigDecimal> stddevPopOver() {
|
||||
return new WindowFunction<BigDecimal>(Term.STDDEV_POP, SQLDataType.NUMERIC, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final WindowPartitionByStep<BigDecimal> stddevSampOver() {
|
||||
return new WindowFunction<BigDecimal>(Term.STDDEV_SAMP, SQLDataType.NUMERIC, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final WindowPartitionByStep<BigDecimal> varPopOver() {
|
||||
return new WindowFunction<BigDecimal>(Term.VAR_POP, SQLDataType.NUMERIC, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final WindowPartitionByStep<BigDecimal> varSampOver() {
|
||||
return new WindowFunction<BigDecimal>(Term.VAR_SAMP, SQLDataType.NUMERIC, this);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Functions created from this field
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@ -56,6 +56,11 @@ class AggregateFunctionImpl<T> extends Function<T> implements AggregateFunction<
|
||||
|
||||
@Override
|
||||
public final WindowFunction<T> over() {
|
||||
return new WindowFunction<T>(getName(), getDataType(), getArguments());
|
||||
if (getTerm() != null) {
|
||||
return new WindowFunction<T>(getTerm(), getDataType(), getArguments());
|
||||
}
|
||||
else {
|
||||
return new WindowFunction<T>(getName(), getDataType(), getArguments());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -102,6 +102,10 @@ class Function<T> extends AbstractField<T> {
|
||||
}
|
||||
}
|
||||
|
||||
final Term getTerm() {
|
||||
return term;
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclasses may override this method to add an additional prefix in the
|
||||
* function SQL string
|
||||
|
||||
Loading…
Reference in New Issue
Block a user