[jOOQ/jOOQ#14058] WindowSpecification:: should return UnmodifiableList<? extends GroupField>

This commit is contained in:
Lukas Eder 2022-10-07 14:39:15 +02:00
parent ada001c9dc
commit eedab96a69
7 changed files with 26 additions and 23 deletions

View File

@ -89,21 +89,21 @@ public interface WindowPartitionByStep<T> extends WindowOrderByStep<T> {
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
WindowOrderByStep<T> partitionBy(Field<?>... fields);
WindowOrderByStep<T> partitionBy(GroupField... fields);
/**
* Add a <code>PARTITION BY</code> clause to the window functions.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
WindowOrderByStep<T> partitionBy(Collection<? extends Field<?>> fields);
WindowOrderByStep<T> partitionBy(Collection<? extends GroupField> fields);
/**
* Add a <code>PARTITION BY 1</code> clause to the window functions, where
* such a clause is required by the syntax of an RDBMS.
*
* @deprecated - 3.10 - [#6427] - This synthetic clause is no longer
* supported, use {@link #partitionBy(Field...)} instead, or
* supported, use {@link #partitionBy(GroupField...)} instead, or
* omit the clause entirely.
*/
@Deprecated(forRemoval = true, since = "3.10")

View File

@ -63,7 +63,7 @@ import org.jetbrains.annotations.ApiStatus.Experimental;
* .andCurrentRow();
* </code></pre>
* <p>
* Instances can be created using {@link DSL#partitionBy(Field...)},
* Instances can be created using {@link DSL#partitionBy(GroupField...)},
* {@link DSL#orderBy(OrderField...)}, and overloads as well as rows / range /
* groups related methods in {@link DSL}.
*
@ -87,7 +87,7 @@ public interface WindowSpecification extends QueryPart {
* Subject to change in future jOOQ versions, use at your own risk.
*/
@Experimental
@NotNull UnmodifiableList<? extends Field<?>> $partitionBy();
@NotNull UnmodifiableList<? extends GroupField> $partitionBy();
/**
* Experimental query object model accessor method, see also {@link QOM}.

View File

@ -103,21 +103,21 @@ public interface WindowSpecificationPartitionByStep extends WindowSpecificationO
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
WindowSpecificationOrderByStep partitionBy(Field<?>... fields);
WindowSpecificationOrderByStep partitionBy(GroupField... fields);
/**
* Add a <code>PARTITION BY</code> clause to the window specification.
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
WindowSpecificationOrderByStep partitionBy(Collection<? extends Field<?>> fields);
WindowSpecificationOrderByStep partitionBy(Collection<? extends GroupField> fields);
/**
* Add a <code>PARTITION BY 1</code> clause to the window specification,
* where such a clause is required by the syntax of an RDBMS.
*
* @deprecated - 3.10 - [#6427] - This synthetic clause is no longer
* supported, use {@link #partitionBy(Field...)} instead, or
* supported, use {@link #partitionBy(GroupField...)} instead, or
* omit the clause entirely.
*/
@Deprecated(forRemoval = true, since = "3.10")

View File

@ -61,6 +61,7 @@ import java.util.Set;
import org.jooq.Context;
import org.jooq.DataType;
import org.jooq.Field;
import org.jooq.GroupField;
import org.jooq.Name;
import org.jooq.OrderField;
// ...
@ -345,13 +346,13 @@ implements
}
@Override
public final WindowOrderByStep<T> partitionBy(Field<?>... fields) {
public final WindowOrderByStep<T> partitionBy(GroupField... fields) {
windowSpecification.partitionBy(fields);
return this;
}
@Override
public final WindowOrderByStep<T> partitionBy(Collection<? extends Field<?>> fields) {
public final WindowOrderByStep<T> partitionBy(Collection<? extends GroupField> fields) {
windowSpecification.partitionBy(fields);
return this;
}

View File

@ -12101,8 +12101,8 @@ public class DSL {
* It can also be useful for other, similar clauses, e.g. when passing
* optional expressions to window function clauses, such as:
* <ul>
* <li>{@link DSL#partitionBy(Field...)}</li>
* <li>{@link DSL#orderBy(Field...)}</li>
* <li>{@link DSL#partitionBy(GroupField...)}</li>
* <li>{@link DSL#orderBy(OrderField...)}</li>
* </ul>
* In clauses that project fields to a given {@link Record} type, the
* {@link #noField()} simply projects <code>NULL</code> and cannot be used
@ -12131,8 +12131,8 @@ public class DSL {
* It can also be useful for other, similar clauses, e.g. when passing
* optional expressions to window function clauses, such as:
* <ul>
* <li>{@link DSL#partitionBy(Field...)}</li>
* <li>{@link DSL#orderBy(Field...)}</li>
* <li>{@link DSL#partitionBy(GroupField...)}</li>
* <li>{@link DSL#orderBy(OrderField...)}</li>
* </ul>
* In clauses that project fields to a given {@link Record} type, the
* {@link #noField()} simply projects <code>NULL</code> and cannot be used
@ -12163,8 +12163,8 @@ public class DSL {
* It can also be useful for other, similar clauses, e.g. when passing
* optional expressions to window function clauses, such as:
* <ul>
* <li>{@link DSL#partitionBy(Field...)}</li>
* <li>{@link DSL#orderBy(Field...)}</li>
* <li>{@link DSL#partitionBy(GroupField...)}</li>
* <li>{@link DSL#orderBy(OrderField...)}</li>
* </ul>
* In clauses that project fields to a given {@link Record} type, the
* {@link #noField()} simply projects <code>NULL</code> and cannot be used
@ -12195,8 +12195,8 @@ public class DSL {
* It can also be useful for other, similar clauses, e.g. when passing
* optional expressions to window function clauses, such as:
* <ul>
* <li>{@link DSL#partitionBy(Field...)}</li>
* <li>{@link DSL#orderBy(Field...)}</li>
* <li>{@link DSL#partitionBy(GroupField...)}</li>
* <li>{@link DSL#orderBy(OrderField...)}</li>
* </ul>
* In clauses that project fields to a given {@link Record} type, the
* {@link #noField()} simply projects <code>NULL</code> and cannot be used
@ -28854,7 +28854,7 @@ public class DSL {
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static WindowSpecificationOrderByStep partitionBy(Field<?>... fields) {
public static WindowSpecificationOrderByStep partitionBy(GroupField... fields) {
return new WindowSpecificationImpl().partitionBy(fields);
}
@ -28863,7 +28863,7 @@ public class DSL {
*/
@NotNull
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB })
public static WindowSpecificationOrderByStep partitionBy(Collection<? extends Field<?>> fields) {
public static WindowSpecificationOrderByStep partitionBy(Collection<? extends GroupField> fields) {
return new WindowSpecificationImpl().partitionBy(fields);
}

View File

@ -50,6 +50,7 @@ import java.util.function.Predicate;
import org.jooq.Context;
import org.jooq.Field;
import org.jooq.Function1;
import org.jooq.GroupField;
import org.jooq.Name;
import org.jooq.OrderField;
import org.jooq.QueryPart;
@ -329,7 +330,7 @@ final class WindowDefinitionImpl extends AbstractQueryPart implements WindowDefi
}
@Override
public final UnmodifiableList<? extends Field<?>> $partitionBy() {
public final UnmodifiableList<? extends GroupField> $partitionBy() {
return QOM.unmodifiable($windowSpecification() == null ? new QueryPartList<>() : $windowSpecification().$partitionBy());
}

View File

@ -94,6 +94,7 @@ import java.util.function.Predicate;
import org.jooq.Context;
import org.jooq.Field;
import org.jooq.Function1;
import org.jooq.GroupField;
import org.jooq.OrderField;
// ...
import org.jooq.QueryPart;
@ -410,12 +411,12 @@ implements
}
@Override
public final WindowSpecificationPartitionByStep partitionBy(Field<?>... fields) {
public final WindowSpecificationPartitionByStep partitionBy(GroupField... fields) {
return partitionBy(Arrays.asList(fields));
}
@Override
public final WindowSpecificationPartitionByStep partitionBy(Collection<? extends Field<?>> fields) {
public final WindowSpecificationPartitionByStep partitionBy(Collection<? extends GroupField> fields) {
partitionBy.addAll(fields);
return this;
}