/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Other licenses: * ----------------------------------------------------------------------------- * Commercial licenses for this work are available. These replace the above * Apache-2.0 license and offer limited warranties, support, maintenance, and * commercial database integrations. * * For more information, please visit: https://www.jooq.org/legal/licensing * * * * * * * * * * * * * * * * */ package org.jooq.impl; import static java.util.Arrays.asList; import static java.util.Collections.unmodifiableCollection; import static java.util.Collections.unmodifiableList; import static java.util.Collections.unmodifiableMap; import static org.jooq.impl.DSL.keyword; import java.math.BigDecimal; import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.function.BiPredicate; import java.util.function.Predicate; import java.util.stream.Collector; // ... import org.jooq.Catalog; import org.jooq.CheckReturnValue; import org.jooq.Collation; import org.jooq.Comment; import org.jooq.CommonTableExpression; import org.jooq.Comparator; import org.jooq.Condition; import org.jooq.Constraint; import org.jooq.DDLQuery; import org.jooq.DMLQuery; import org.jooq.DataType; import org.jooq.DatePart; import org.jooq.Domain; import org.jooq.Field; import org.jooq.FieldOrRow; import org.jooq.FieldOrRowOrSelect; import org.jooq.Function0; import org.jooq.Function1; import org.jooq.Function10; import org.jooq.Function11; import org.jooq.Function12; import org.jooq.Function13; import org.jooq.Function14; import org.jooq.Function15; import org.jooq.Function16; import org.jooq.Function17; import org.jooq.Function18; import org.jooq.Function19; import org.jooq.Function2; import org.jooq.Function20; import org.jooq.Function21; import org.jooq.Function22; import org.jooq.Function3; import org.jooq.Function4; import org.jooq.Function5; import org.jooq.Function6; import org.jooq.Function7; import org.jooq.Function8; import org.jooq.Function9; import org.jooq.Geometry; import org.jooq.GroupField; import org.jooq.Index; import org.jooq.JSON; import org.jooq.JSONB; import org.jooq.JSONEntry; import org.jooq.Keyword; import org.jooq.Lambda1; // ... import org.jooq.Name; import org.jooq.Operator; import org.jooq.OrderField; import org.jooq.Param; import org.jooq.Parameter; import org.jooq.Privilege; // ... import org.jooq.Query; import org.jooq.QueryPart; import org.jooq.Record; import org.jooq.Record1; // ... import org.jooq.Result; import org.jooq.ResultQuery; import org.jooq.Role; import org.jooq.Row; import org.jooq.RowCountQuery; import org.jooq.RowId; import org.jooq.SQL; import org.jooq.SQLDialect; import org.jooq.Schema; import org.jooq.Select; import org.jooq.SelectFieldOrAsterisk; import org.jooq.Sequence; import org.jooq.SortField; import org.jooq.Spatial; import org.jooq.Statement; // ... import org.jooq.Table; import org.jooq.TableElement; import org.jooq.TableLike; // ... // ... import org.jooq.Type; // ... import org.jooq.WindowDefinition; import org.jooq.WindowSpecification; import org.jooq.XML; import org.jooq.XMLAttributes; import org.jooq.conf.Settings; import org.jooq.types.DayToSecond; // ... import org.jetbrains.annotations.ApiStatus.Experimental; import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * A draft of the new query object model API. *

* This API is EXPERIMENTAL. Use at your own risk. *

*

Purpose

*

* This class provides a single namespace for jOOQ's query object model API. * Every {@link QueryPart} from the DSL API has a matching {@link QueryPart} * representation in this query object model API, and a shared internal * implementation in the org.jooq.impl package, that covers both * the DSL and model API functionality. *

* The goal of this model API is to allow for expression tree transformations * via {@link QueryPart#$replace(Replacer)} as well as via per-querypart * methods, such as for example {@link Substring#$startingPosition(Field)}, and * traversals via {@link QueryPart#$traverse(Traverser)} that are independent of * the DSL API that would otherwise be too noisy for this task. *

*

Design

*

* In order to avoid conflicts between the model API and the DSL API, all model * API in this class follows these naming conventions: *

*

*

Limitations

*

* The API offers public access to jOOQ's internal representation, and as such, * is prone to incompatible changes between minor releases, in addition to the * incompatible changes that may arise due to this API being experimental. In * this experimental stage, the following limitations are accepted: *

*

*

Mutability

*

* While some elements of this API are historically mutable (either mutable * objects are returned from {@link QueryPart} subtypes, or argument objects * when constructing an {@link QueryPart} remains mutable, rather than copied), * users must not rely on this mutable behaviour. Once this API stabilises, all * mutability will be gone, accidental remaining mutability will be considered a * bug. *

*

Notes

*

* A future Java 17 distribution of jOOQ might make use of sealed types to * improve the usability of the model API in pattern matching expressions etc. * Other Java language features that benefit pattern matching expression trees * might be adopted in the future in this area of the jOOQ API. * * @author Lukas Eder */ @Experimental public final class QOM { // ------------------------------------------------------------------------- // XXX: Model // ------------------------------------------------------------------------- // public interface Lambda1 // extends // org.jooq.QueryPart // { // // /** // * The first argument of the lambda. // */ // @NotNull Field $arg1(); // // /** // * The lambda result. // */ // @NotNull Field $result(); // } // This class uses a lot of fully qualified types, because of some javac bug // In Java 1.8.0_302, which hasn't been analysed and reproduced yet in a more // minimal example. Without the qualification, the types cannot be found // despite being imported /** * A generic tuple of degree 2 for use in {@link QOM} types. */ public interface Tuple2 extends org.jooq.QueryPart { /** * The first value in the tuple. */ @NotNull Q1 $1(); /** * The second value in the tuple. */ @NotNull Q2 $2(); /** * Set the first value in the tuple. */ @CheckReturnValue @NotNull Tuple2 $1(Q1 newPart1); /** * Set the second value in the tuple. */ @CheckReturnValue @NotNull Tuple2 $2(Q2 newPart2); } /** * An unmodifiable {@link Map} of {@link QueryPart} keys and values. */ public interface UnmodifiableMap extends org.jooq.QueryPart, java.util.Map { /** * Get the {@link #entrySet()} of this map as a list of tuples. */ @NotNull UnmodifiableList> $tuples(); } /** * An unmodifiable {@link Collection} of {@link QueryPart} elements. */ public interface UnmodifiableCollection extends org.jooq.QueryPart, java.util.Collection {} /** * An unmodifiable {@link List} of {@link QueryPart} elements. */ public interface UnmodifiableList extends UnmodifiableCollection, java.util.List { // TODO: These methods could return unmodifiable views instead, to avoid // copying things around... /** * Collect the contents of this list using a {@link Collector}. */ default R $collect(Collector collector) { return stream().collect(collector); } /** * Concatenate a collection to this UnmodifiableList, returning a new * UnmodifiableList from the combined data. */ @NotNull @CheckReturnValue default UnmodifiableList $concat(Collection other) { QueryPartList r = new QueryPartList<>(this); r.addAll(other); return unmodifiable(r); } /** * Return a new UnmodifiableList without the element at the argument * position. */ @NotNull @CheckReturnValue default UnmodifiableList $remove(int position) { QueryPartList r = new QueryPartList<>(); for (int i = 0; i < size(); i++) if (i != position) r.add(get(i)); return unmodifiable(r); } /** * Access the first element if available. */ @Nullable default Q $first() { return isEmpty() ? null : get(0); } /** * Access the last element if available. */ @Nullable default Q $last() { return isEmpty() ? null : get(size() - 1); } /** * Return a new UnmodifiableList without the {@link #$first()} element. */ @NotNull @CheckReturnValue default UnmodifiableList $removeFirst() { QueryPartList r = new QueryPartList<>(); for (int i = 1; i < size(); i++) r.add(get(i)); return unmodifiable(r); } /** * Return a new {@link UnmodifiableList} without the {@link #$last()} * element. */ @NotNull @CheckReturnValue default UnmodifiableList $removeLast() { QueryPartList r = new QueryPartList<>(); for (int i = 0; i < size() - 1; i++) r.add(get(i)); return unmodifiable(r); } /** * Return a new {@link UnmodifiableList} with a new, replaced value at * the argument position. */ @NotNull @CheckReturnValue default UnmodifiableList $set(int position, Q newValue) { QueryPartList r = new QueryPartList<>(); for (int i = 0; i < size(); i++) if (i == position) r.add(newValue); else r.add(get(i)); return unmodifiable(r); } /** * Return a new {@link UnmodifiableList} with a new, replaced set of * values at the argument position. */ @NotNull @CheckReturnValue default UnmodifiableList $setAll(int position, Collection newValues) { QueryPartList r = new QueryPartList<>(); for (int i = 0; i < size(); i++) if (i == position) r.addAll(newValues); else r.add(get(i)); return unmodifiable(r); } } /** * A WITH clause of a {@link Select}, {@link Insert}, * {@link Update}, or {@link Delete} statement. */ public interface With extends org.jooq.QueryPart { @NotNull UnmodifiableList> $commonTableExpressions(); @CheckReturnValue @NotNull With $commonTableExpressions(UnmodifiableList> commonTableExpressions); boolean $recursive(); @CheckReturnValue @NotNull With $recursive(boolean recursive); } /** * A {@link QueryPart} that may associate an {@link #$alias()} with the * {@link #$aliased()} part. */ public interface Aliasable extends org.jooq.QueryPart { /** * The aliased part (a {@link Field} or a {@link Table}). */ @NotNull Q $aliased(); /** * The alias if any. */ @Nullable Name $alias(); } // ------------------------------------------------------------------------- // XXX: Queries // ------------------------------------------------------------------------- /** * The INSERT statement. */ public interface Insert extends org.jooq.DMLQuery { @Nullable With $with(); @NotNull Table $into(); @CheckReturnValue @NotNull Insert $into(Table into); @NotNull UnmodifiableList> $columns(); @CheckReturnValue @NotNull Insert $columns(Collection> columns); @Nullable Select $select(); @CheckReturnValue @NotNull Insert $select(Select select); boolean $defaultValues(); @CheckReturnValue @NotNull Insert $defaultValues(boolean defaultValues); @NotNull UnmodifiableList $values(); @CheckReturnValue @NotNull Insert $values(Collection values); boolean $onDuplicateKeyIgnore(); @CheckReturnValue @NotNull Insert $onDuplicateKeyIgnore(boolean onDuplicateKeyIgnore); boolean $onDuplicateKeyUpdate(); @CheckReturnValue @NotNull Insert $onDuplicateKeyUpdate(boolean onDuplicateKeyUpdate); @NotNull UnmodifiableList> $onConflict(); @CheckReturnValue @NotNull Insert $onConflict(Collection> onConflictFields); // [#13640] TODO: What to do about the CONSTRAINT? Re-design this model? @Nullable Condition $onConflictWhere(); @CheckReturnValue @NotNull Insert $onConflictWhere(Condition where); @NotNull UnmodifiableMap $updateSet(); @CheckReturnValue @NotNull Insert $updateSet(Map updateSet); @Nullable Condition $updateWhere(); @CheckReturnValue @NotNull Insert $updateWhere(Condition where); } /** * An INSERT statement with a RETURNING clause. */ public interface InsertReturning extends org.jooq.ResultQuery { @NotNull Insert $insert(); @CheckReturnValue @NotNull InsertReturning $insert(Insert insert); @NotNull UnmodifiableList $returning(); @CheckReturnValue @NotNull InsertReturning $returning(Collection returning); } /** * The UPDATE statement. */ public interface Update extends org.jooq.DMLQuery { @Nullable With $with(); @NotNull Table $table(); @CheckReturnValue @NotNull Update $table(Table table); @NotNull UnmodifiableList> $from(); @CheckReturnValue @NotNull Update $from(Collection> from); @NotNull UnmodifiableMap $set(); @CheckReturnValue @NotNull Update $set(Map set); @Nullable Condition $where(); @CheckReturnValue @NotNull Update $where(Condition condition); @NotNull UnmodifiableList> $orderBy(); @CheckReturnValue @NotNull Update $orderBy(Collection> orderBy); @Nullable Field $limit(); @CheckReturnValue @NotNull Update $limit(Field limit); } /** * An UPDATE statement with a RETURNING clause. */ public interface UpdateReturning extends org.jooq.ResultQuery { @NotNull Update $update(); @CheckReturnValue @NotNull UpdateReturning $update(Update update); @NotNull UnmodifiableList $returning(); @CheckReturnValue @NotNull UpdateReturning $returning(Collection returning); } /** * The DELETE statement. */ public interface Delete extends org.jooq.DMLQuery { @Nullable With $with(); @NotNull Table $from(); @CheckReturnValue @NotNull Delete $from(Table table); @NotNull UnmodifiableList> $using(); @CheckReturnValue @NotNull Delete $using(Collection> using); @Nullable Condition $where(); @CheckReturnValue @NotNull Delete $where(Condition condition); @NotNull UnmodifiableList> $orderBy(); @CheckReturnValue @NotNull Delete $orderBy(Collection> orderBy); @Nullable Field $limit(); @CheckReturnValue @NotNull Delete $limit(Field limit); } /** * An DELETE statement with a RETURNING clause. */ public interface DeleteReturning extends org.jooq.ResultQuery { @NotNull Delete $delete(); @CheckReturnValue @NotNull DeleteReturning $delete(Delete delete); @NotNull UnmodifiableList $returning(); @CheckReturnValue @NotNull DeleteReturning $returning(Collection returning); } public interface Merge extends org.jooq.DMLQuery { @Nullable With $with(); @NotNull Table $into(); @CheckReturnValue @NotNull Merge $into(Table into); @Nullable TableLike $using(); @CheckReturnValue @NotNull Merge $using(TableLike into); @Nullable Condition $on(); @CheckReturnValue @NotNull Merge $on(Condition condition); @NotNull UnmodifiableList $whenMatched(); @CheckReturnValue @NotNull Merge $whenMatched(Collection whenMatched); @NotNull UnmodifiableList $whenNotMatched(); @CheckReturnValue @NotNull Merge $whenNotMatched(Collection whenNotMatched); @NotNull UnmodifiableList $whenNotMatchedBySource(); @CheckReturnValue @NotNull Merge $whenNotMatchedBySource(Collection whenNotMatchedBySource); } public interface MergeMatched extends org.jooq.QueryPart { @NotNull UnmodifiableMap $updateSet(); @CheckReturnValue @NotNull MergeMatched $updateSet(Map updateSet); boolean $delete(); @CheckReturnValue @NotNull MergeMatched $delete(boolean delete); @Nullable Condition $where(); @CheckReturnValue @NotNull MergeMatched $where(Condition condition); } public interface MergeNotMatched extends org.jooq.QueryPart { @NotNull UnmodifiableList> $columns(); @CheckReturnValue @NotNull MergeNotMatched $columns(Collection> columns); @NotNull UnmodifiableList $values(); @CheckReturnValue @NotNull MergeNotMatched $values(Collection values); @Nullable Condition $where(); @CheckReturnValue @NotNull MergeNotMatched $where(Condition condition); } public interface MergeNotMatchedBySource extends org.jooq.QueryPart { @NotNull UnmodifiableMap $updateSet(); @CheckReturnValue @NotNull MergeMatched $updateSet(Map updateSet); boolean $delete(); @CheckReturnValue @NotNull MergeMatched $delete(boolean delete); @Nullable Condition $where(); @CheckReturnValue @NotNull MergeMatched $where(Condition condition); } // ------------------------------------------------------------------------- // XXX: Schema // ------------------------------------------------------------------------- /** * A table with a MySQL style index access hint. */ public interface HintedTable extends Table { @NotNull Table $table(); @CheckReturnValue @NotNull HintedTable $table(Table newTable); } /** * A collection derived table or table valued function with a * WITH ORDINALITY clause. */ public interface WithOrdinalityTable extends Table { @NotNull Table $table(); @CheckReturnValue @NotNull WithOrdinalityTable $table(Table newTable); } /** * A PRIMARY KEY constraint. */ public interface PrimaryKey extends org.jooq.Constraint { @Override @NotNull Name $name(); @CheckReturnValue @NotNull Constraint $name(Name newName); boolean $enforced(); @CheckReturnValue @NotNull Constraint $enforced(boolean newEnforced); @NotNull UnmodifiableList> $fields(); @CheckReturnValue @NotNull PrimaryKey $fields(UnmodifiableList> newFields); } /** * A UNIQUE constraint. */ public interface UniqueKey extends org.jooq.Constraint { @Override @NotNull Name $name(); @CheckReturnValue @NotNull Constraint $name(Name newName); boolean $enforced(); @CheckReturnValue @NotNull Constraint $enforced(boolean newEnforced); @NotNull UnmodifiableList> $fields(); @CheckReturnValue @NotNull UniqueKey $fields(UnmodifiableList> newFields); } /** * A FOREIGN KEY constraint. */ public interface ForeignKey extends org.jooq.Constraint { @Override @NotNull Name $name(); @CheckReturnValue @NotNull Constraint $name(Name newName); boolean $enforced(); @CheckReturnValue @NotNull Constraint $enforced(boolean newEnforced); @NotNull UnmodifiableList> $fields(); @CheckReturnValue @NotNull ForeignKey $fields(UnmodifiableList> newFields); @NotNull Table $referencesTable(); @CheckReturnValue @NotNull ForeignKey $referencesTable(Table newReferencesTable); @NotNull UnmodifiableList> $referencesFields(); @CheckReturnValue @NotNull ForeignKey $referencesFields(UnmodifiableList> newReferencesFields); @Nullable ForeignKeyRule $deleteRule(); @CheckReturnValue @NotNull ForeignKey $deleteRule(ForeignKeyRule newDeleteRule); @Nullable ForeignKeyRule $updateRule(); @CheckReturnValue @NotNull ForeignKey $updateRule(ForeignKeyRule newDeleteRule); } /** * A CHECK constraint. */ public interface Check extends org.jooq.Constraint { @Override @NotNull Name $name(); @CheckReturnValue @NotNull Constraint $name(Name newName); boolean $enforced(); @CheckReturnValue @NotNull Constraint $enforced(boolean newEnforced); @NotNull Condition $condition(); @CheckReturnValue @NotNull Check $condition(Condition newCondition); } // ------------------------------------------------------------------------- // XXX: Statements // ------------------------------------------------------------------------- public interface NullStatement extends Statement {} // ------------------------------------------------------------------------- // XXX: Tables // ------------------------------------------------------------------------- public interface TableAlias extends Table, Aliasable> { @NotNull Table $table(); @Override @NotNull default Table $aliased() { return $table(); } @Override @NotNull Name $alias(); // TODO [#12425] Reuse MDerivedColumnList } public interface Dual extends Table, UEmpty {} public interface Lateral extends Table, UOperator1, Lateral> {} public interface DerivedTable extends org.jooq.Table, UOperator1, DerivedTable> {} public interface Values extends Table, UOperator1, Values> {} public interface DataChangeDeltaTable extends Table { @NotNull ResultOption $resultOption(); @NotNull DMLQuery $query(); } public interface RowsFrom extends Table { @NotNull UnmodifiableList> $tables(); } public interface GenerateSeries extends Table>, UOperator3, Field, Field, GenerateSeries> { @NotNull default Field $from() { return $arg1(); } @NotNull default Field $to() { return $arg2(); } @Nullable default Field $step() { return $arg3(); } } // ------------------------------------------------------------------------- // XXX: Conditions // ------------------------------------------------------------------------- /** * A {@link Condition} that is always TRUE. */ public interface True extends Condition {} /** * A {@link Condition} that is always FALSE. */ public interface False extends Condition {} /** * A {@link Condition} that is always NULL. */ public interface Null extends Condition {} /** * A {@link Condition} consisting of two {@link Condition} operands and a * binary logic {@link Operator}. */ public /*sealed*/ interface CombinedCondition> extends Condition, UCommutativeOperator /*permits MAnd, MOr*/ {} /** * A {@link Condition} consisting of two {@link Field} operands and a * {@link Comparator} operator. */ public /*sealed*/ interface CompareCondition> extends Condition, UOperator2, Field, R> /*permits MEq, MNe, MLt, MLe, MGt, MGe, MIsDistinctFrom, MIsNotDistinctFrom, MContains, MContainsIgnoreCase, MStartsWith, MStartsWithIgnoreCase, MEndsWith, MEndsWithIgnoreCase*/ {} /** * The BETWEEN predicate. */ public interface Between extends Condition, UOperator3, Field, Field, Between> { boolean $symmetric(); @NotNull Between $symmetric(boolean symmetric); } /** * The IN predicate accepting a list of values. */ public /*sealed*/ interface InList extends Condition, UOperator2, UnmodifiableList>, InList> /*permits InList*/ { @NotNull default Field $field() { return $arg1(); } @NotNull default UnmodifiableList> $list() { return $arg2(); } } /** * The NOT IN predicate accepting a list of values. */ public /*sealed*/ interface NotInList extends Condition, UOperator2, UnmodifiableList>, NotInList> /*permits NotInList*/ { @NotNull default Field $field() { return $arg1(); } @NotNull default UnmodifiableList> $list() { return $arg2(); } } public /*sealed*/ interface RegexpLike extends Condition /*permits RegexpLike*/ { @NotNull Field $search(); @NotNull Field $pattern(); } public /*sealed*/ interface Extract extends Field /*permits Extract*/ { @NotNull Field $field(); @NotNull DatePart $datePart(); } public /*sealed*/ interface RowIsNull extends Condition, UOperator1 /*permits RowIsNull*/ { @NotNull default Row $field() { return $arg1(); } } public /*sealed*/ interface RowIsNotNull extends Condition, UOperator1 /*permits RowIsNotNull*/ { @NotNull default Row $field() { return $arg1(); } } public /*sealed*/ interface RowOverlaps extends Condition, UOperator2 /*permits RowOverlaps*/ {} public /*sealed*/ interface SelectIsNull extends Condition, UOperator1, SelectIsNull> /*permits SelectIsNull*/ { @NotNull default Select $field() { return $arg1(); } } public /*sealed*/ interface SelectIsNotNull extends Condition, UOperator1, SelectIsNotNull> /*permits SelectIsNotNull*/ { @NotNull default Select $field() { return $arg1(); } } public interface Quantified extends org.jooq.QueryPart {} public interface QuantifiedSelect extends Quantified, UOperator2, QuantifiedSelect> { @NotNull default Quantifier $quantifier() { return $arg1(); } @NotNull default QuantifiedSelect $quantifier(Quantifier newQuantifier) { return $arg1(newQuantifier); } @NotNull default Select $query() { return $arg2(); } @NotNull default QuantifiedSelect $query(Select newSelect) { return $arg2(newSelect); } } public interface QuantifiedArray extends Quantified, UOperator2, QuantifiedArray> { @NotNull default Quantifier $quantifier() { return $arg1(); } @NotNull default QuantifiedArray $quantifier(Quantifier newQuantifier) { return $arg1(newQuantifier); } @NotNull default Field $array() { return $arg2(); } @NotNull default QuantifiedArray $array(Field newArray) { return $arg2(newArray); } } // ------------------------------------------------------------------------- // XXX: Rows // ------------------------------------------------------------------------- public /*sealed*/ interface RowAsField extends org.jooq.Field /*permits RowAsField*/ { @NotNull Row $row(); } public /*sealed*/ interface TableAsField extends org.jooq.Field /*permits TableAsField*/ { @NotNull Table $table(); } public interface JoinTable> extends org.jooq.Table { @NotNull Table $table1(); @NotNull Table $table2(); @Nullable JoinHint $hint(); @NotNull J $table1(Table table1); @NotNull J $table2(Table table2); @NotNull J $hint(JoinHint hint); } public interface CrossJoin extends JoinTable> {} public interface CrossApply extends JoinTable> {} public interface OuterApply extends JoinTable> {} public interface NaturalJoin extends JoinTable> {} public interface NaturalLeftJoin extends JoinTable> { @NotNull UnmodifiableList> $partitionBy2(); @NotNull NaturalLeftJoin $partitionBy2(Collection> partitionBy2); } public interface NaturalRightJoin extends JoinTable> { @NotNull UnmodifiableList> $partitionBy1(); @NotNull NaturalRightJoin $partitionBy1(Collection> partitionBy1); } public interface NaturalFullJoin extends JoinTable> { @NotNull UnmodifiableList> $partitionBy1(); @NotNull NaturalFullJoin $partitionBy1(Collection> partitionBy1); @NotNull UnmodifiableList> $partitionBy2(); @NotNull NaturalFullJoin $partitionBy2(Collection> partitionBy2); } public interface QualifiedJoin> extends JoinTable { @Nullable Condition $on(); @NotNull J $on(Condition on); @NotNull UnmodifiableList> $using(); @NotNull J $using(Collection> using); } public interface Join extends QualifiedJoin> {} public interface StraightJoin extends QualifiedJoin> {} public interface LeftJoin extends QualifiedJoin> { @NotNull UnmodifiableList> $partitionBy2(); @NotNull LeftJoin $partitionBy2(Collection> partitionBy2); } public interface RightJoin extends QualifiedJoin> { @NotNull UnmodifiableList> $partitionBy1(); @NotNull RightJoin $partitionBy1(Collection> partitionBy1); } public interface FullJoin extends QualifiedJoin> { @NotNull UnmodifiableList> $partitionBy1(); @NotNull FullJoin $partitionBy1(Collection> partitionBy1); @NotNull UnmodifiableList> $partitionBy2(); @NotNull FullJoin $partitionBy2(Collection> partitionBy2); } public interface LeftSemiJoin extends QualifiedJoin> {} public interface LeftAntiJoin extends QualifiedJoin> {} // ------------------------------------------------------------------------- // XXX: SelectFields, GroupFields and SortFields // ------------------------------------------------------------------------- // Can't seal these types yet because of https://bugs.eclipse.org/bugs/show_bug.cgi?id=577872 // See also: https://github.com/jOOQ/jOOQ/issues/16444 public interface EmptyGroupingSet extends GroupField, UEmpty /*permits org.jooq.impl.EmptyGroupingSet*/ {} public interface Rollup extends GroupField, UOperator1, Rollup> /*permits Rollup*/ {} public interface Cube extends GroupField, UOperator1, Cube> /*permits Cube*/ {} public interface GroupingSets extends GroupField, UOperator1>, GroupingSets> /*permits GroupingSets*/ {} // ------------------------------------------------------------------------- // XXX: Aggregate functions and window functions // ------------------------------------------------------------------------- public /*sealed*/ interface RatioToReport extends org.jooq.AggregateFunction /*permits RatioToReport*/ { @NotNull Field $field(); } public /*sealed*/ interface Mode extends org.jooq.AggregateFunction, UOperator1, Mode> /*permits Mode*/ { @NotNull default Field $field() { return $arg1(); } } public /*sealed*/ interface MultisetAgg extends org.jooq.AggregateFunction> /*permits MultisetAgg*/ { @NotNull Row $row(); } public /*sealed*/ interface ArrayAgg extends org.jooq.AggregateFunction, UOperator1, ArrayAgg> /*permits ArrayAgg*/ { @NotNull default Field $field() { return $arg1(); } boolean $distinct(); } public /*sealed*/ interface XMLAgg extends org.jooq.AggregateFunction, UOperator1, XMLAgg> /*permits XMLAgg*/ { @NotNull default Field $field() { return $arg1(); } } public /*sealed*/ interface JSONArrayAgg extends org.jooq.AggregateFunction, UOperator1, JSONArrayAgg> /*permits JSONArrayAgg*/ { @NotNull default Field $field() { return $arg1(); } boolean $distinct(); @Nullable JSONOnNull $onNull(); @Nullable DataType $returning(); } public /*sealed*/ interface JSONObjectAgg extends org.jooq.AggregateFunction, UOperator1, JSONObjectAgg> /*permits JSONObjectAgg*/ { @NotNull default JSONEntry $entry() { return $arg1(); } @Nullable JSONOnNull $onNull(); @Nullable DataType $returning(); } public /*sealed*/ interface CountTable extends org.jooq.AggregateFunction /*permits CountTable*/ { @NotNull Table $table(); boolean $distinct(); } public interface WindowFunction extends org.jooq.Field { @Nullable WindowSpecification $windowSpecification(); @Nullable WindowDefinition $windowDefinition(); } public /*sealed*/ interface RowNumber extends WindowFunction /*permits RowNumber*/ {} public /*sealed*/ interface Rank extends WindowFunction /*permits Rank*/ {} public /*sealed*/ interface DenseRank extends WindowFunction /*permits DenseRank*/ {} public /*sealed*/ interface PercentRank extends WindowFunction /*permits PercentRank*/ {} public /*sealed*/ interface CumeDist extends WindowFunction /*permits CumeDist*/ {} public /*sealed*/ interface Ntile extends WindowFunction /*permits Ntile*/ { @NotNull Field $tiles(); } public /*sealed*/ interface Lead extends WindowFunction /*permits Lead*/ { @NotNull Field $field(); @Nullable Field $offset(); @Nullable Field $defaultValue(); @Nullable NullTreatment $nullTreatment(); } public /*sealed*/ interface Lag extends WindowFunction /*permits Lag*/ { @NotNull Field $field(); @Nullable Field $offset(); @Nullable Field $defaultValue(); @Nullable NullTreatment $nullTreatment(); } public /*sealed*/ interface FirstValue extends WindowFunction /*permits FirstValue*/ { @NotNull Field $field(); @Nullable NullTreatment $nullTreatment(); } public /*sealed*/ interface LastValue extends WindowFunction /*permits LastValue*/ { @NotNull Field $field(); @Nullable NullTreatment $nullTreatment(); } public /*sealed*/ interface NthValue extends WindowFunction /*permits NthValue*/ { @NotNull Field $field(); @Nullable FromFirstOrLast $fromFirstOrLast(); @Nullable NullTreatment $nullTreatment(); } // ------------------------------------------------------------------------- // XXX: Fields // ------------------------------------------------------------------------- public /*sealed*/ interface FieldAlias extends org.jooq.Field, Aliasable> /*permits FieldAlias*/ { @NotNull Field $field(); @Override @NotNull default Field $aliased() { return $field(); } @Override @NotNull Name $alias(); } public /*sealed*/ interface Function extends org.jooq.Field /*permits org.jooq.impl.Function, org.jooq.impl.Function1*/ { @NotNull UnmodifiableList> $args(); } public /*sealed*/ interface Cast extends org.jooq.Field /*permits Cast*/ { @NotNull Field $field(); } public /*sealed*/ interface Coerce extends org.jooq.Field /*permits Coerce*/ { @NotNull Field $field(); } public /*sealed*/ interface Default extends org.jooq.Field, UEmpty /*permits Default*/ {} public /*sealed*/ interface Collated extends org.jooq.Field /*permits Collated*/ { @NotNull Field $field(); @NotNull Collation $collation(); } public /*sealed*/ interface Array extends org.jooq.Field /*permits org.jooq.impl.Array*/ { @NotNull UnmodifiableList> $elements(); } public /*sealed*/ interface ArrayQuery extends org.jooq.Field /*permits ArrayQuery*/ { @NotNull Select> $query(); } public /*sealed*/ interface Multiset extends org.jooq.Field> /*permits Multiset*/ { @NotNull TableLike $table(); } public /*sealed*/ interface ScalarSubquery extends org.jooq.Field, UOperator1>, ScalarSubquery> /*permits ScalarSubquery*/ {} public /*sealed*/ interface RowSubquery extends org.jooq.Row, UOperator1, RowSubquery> {} public /*sealed*/ interface Neg extends UReturnsNullOnNullInput, Field, UOperator1, Neg> /*permits Neg*/ {} public /*sealed*/ interface Greatest extends Field, UOperator1>, Greatest> /*permits Greatest*/ {} public /*sealed*/ interface Least extends Field, UOperator1>, Least> /*permits Least*/ {} public /*sealed*/ interface Choose extends Field, UOperator2, UnmodifiableList>, Choose> /*permits Choose*/ {} public /*sealed*/ interface FieldFunction extends Field, UOperator2, UnmodifiableList>, FieldFunction> /*permits FieldFunction*/ {} public /*sealed*/ interface Nvl2 extends Field, UOperator3, Field, Field, Nvl2> /*permits Nvl2*/ { @NotNull default Field $value() { return $arg1(); } @NotNull default Field $ifNotNull() { return $arg2(); } @NotNull default Field $ifIfNull() { return $arg3(); } } public /*sealed*/ interface Iif extends Field, UOperator3, Field, Iif> /*permits Iif*/ { @NotNull default Condition $condition() { return $arg1(); } @NotNull default Field $ifTrue() { return $arg2(); } @NotNull default Field $ifFalse() { return $arg3(); } } public /*sealed*/ interface Coalesce extends Field, UOperator1>, Coalesce> /*permits Coalesce*/ {} public /*sealed*/ interface CaseSimple extends Field, UOperator3, UnmodifiableList, Field>>, Field, CaseSimple> { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default CaseSimple $value(Field value) { return $arg1(value); } @NotNull default UnmodifiableList, Field>> $when() { return $arg2(); } @CheckReturnValue @NotNull default CaseSimple $when(UnmodifiableList, Field>> when) { return $arg2(when); } @Nullable default Field $else() { return $arg3(); } @CheckReturnValue @NotNull default CaseSimple $else(Field else_) { return $arg3(else_); } } public /*sealed*/ interface CaseSearched extends Field, UOperator2>>, Field, CaseSearched> { @NotNull default UnmodifiableList>> $when() { return $arg1(); } @CheckReturnValue @NotNull default CaseSearched $when(UnmodifiableList>> when) { return $arg1(when); } @Nullable default Field $else() { return $arg2(); } @CheckReturnValue @NotNull default CaseSearched $else(Field else_) { return $arg2(else_); } } public /*sealed*/ interface Decode extends Field, UOperator3, UnmodifiableList, Field>>, Field, Decode> { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Decode $value(Field value) { return $arg1(value); } @NotNull default UnmodifiableList, Field>> $when() { return $arg2(); } @CheckReturnValue @NotNull default Decode $when(UnmodifiableList, Field>> when) { return $arg2(when); } @Nullable default Field $else() { return $arg3(); } @CheckReturnValue @NotNull default Decode $else(Field else_) { return $arg3(else_); } } public /*sealed*/ interface Concat extends Field, UOperator1>, Concat> /*permits Concat*/ {} public /*sealed*/ interface TimestampDiff extends Field, UOperator2, Field, TimestampDiff> /*permits TimestampDiff*/ { @NotNull default Field $minuend() { return $arg1(); } @NotNull default Field $subtrahend() { return $arg2(); } } public /*sealed*/ interface Convert extends Field /*permits ConvertDateTime*/ { @NotNull Field $field(); int $style(); } public /*sealed*/ interface CurrentDate extends Field, UEmpty /*permits CurrentDate*/ {} public /*sealed*/ interface CurrentTime extends Field, UEmpty /*permits CurrentTime*/ {} public /*sealed*/ interface CurrentTimestamp extends Field, UEmpty /*permits CurrentTimestamp*/ {} public /*sealed*/ interface XMLQuery extends Field /*permits XMLQuery*/ { @NotNull Field $xpath(); @NotNull Field $passing(); @Nullable XMLPassingMechanism $passingMechanism(); } public /*sealed*/ interface XMLElement extends Field /*permits XMLElement*/ { @NotNull Name $elementName(); @NotNull XMLAttributes $attributes(); @NotNull UnmodifiableList> $content(); } public /*sealed*/ interface XMLExists extends Condition /*permits XMLExists*/ { @NotNull Field $xpath(); @NotNull Field $passing(); @Nullable XMLPassingMechanism $passingMechanism(); } public /*sealed*/ interface XMLParse extends Field /*permits XMLParse*/ { @NotNull Field $content(); @NotNull DocumentOrContent $documentOrContent(); } /** * The ALTER DATABASE statement. */ public /*sealed*/ interface AlterDatabase extends DDLQuery //permits // AlterDatabaseImpl { @NotNull Catalog $database(); boolean $ifExists(); @NotNull Catalog $renameTo(); @CheckReturnValue @NotNull AlterDatabase $database(Catalog database); @CheckReturnValue @NotNull AlterDatabase $ifExists(boolean ifExists); @CheckReturnValue @NotNull AlterDatabase $renameTo(Catalog renameTo); } /** * The ALTER DOMAIN statement. */ public /*sealed*/ interface AlterDomain extends DDLQuery //permits // AlterDomainImpl { @NotNull Domain $domain(); boolean $ifExists(); @Nullable Constraint $addConstraint(); @Nullable Constraint $dropConstraint(); boolean $dropConstraintIfExists(); @Nullable Domain $renameTo(); @Nullable Constraint $renameConstraint(); boolean $renameConstraintIfExists(); @Nullable Field $setDefault(); boolean $dropDefault(); boolean $setNotNull(); boolean $dropNotNull(); @Nullable Cascade $cascade(); @Nullable Constraint $renameConstraintTo(); @CheckReturnValue @NotNull AlterDomain $domain(Domain domain); @CheckReturnValue @NotNull AlterDomain $ifExists(boolean ifExists); @CheckReturnValue @NotNull AlterDomain $addConstraint(Constraint addConstraint); @CheckReturnValue @NotNull AlterDomain $dropConstraint(Constraint dropConstraint); @CheckReturnValue @NotNull AlterDomain $dropConstraintIfExists(boolean dropConstraintIfExists); @CheckReturnValue @NotNull AlterDomain $renameTo(Domain renameTo); @CheckReturnValue @NotNull AlterDomain $renameConstraint(Constraint renameConstraint); @CheckReturnValue @NotNull AlterDomain $renameConstraintIfExists(boolean renameConstraintIfExists); @CheckReturnValue @NotNull AlterDomain $setDefault(Field setDefault); @CheckReturnValue @NotNull AlterDomain $dropDefault(boolean dropDefault); @CheckReturnValue @NotNull AlterDomain $setNotNull(boolean setNotNull); @CheckReturnValue @NotNull AlterDomain $dropNotNull(boolean dropNotNull); @CheckReturnValue @NotNull AlterDomain $cascade(Cascade cascade); @CheckReturnValue @NotNull AlterDomain $renameConstraintTo(Constraint renameConstraintTo); } /** * The ALTER INDEX statement. */ public /*sealed*/ interface AlterIndex extends DDLQuery //permits // AlterIndexImpl { @NotNull Index $index(); boolean $ifExists(); @Nullable Table $on(); @NotNull Index $renameTo(); @CheckReturnValue @NotNull AlterIndex $index(Index index); @CheckReturnValue @NotNull AlterIndex $ifExists(boolean ifExists); @CheckReturnValue @NotNull AlterIndex $on(Table on); @CheckReturnValue @NotNull AlterIndex $renameTo(Index renameTo); } /** * The ALTER SCHEMA statement. */ public /*sealed*/ interface AlterSchema extends DDLQuery //permits // AlterSchemaImpl { @NotNull Schema $schema(); boolean $ifExists(); @NotNull Schema $renameTo(); @CheckReturnValue @NotNull AlterSchema $schema(Schema schema); @CheckReturnValue @NotNull AlterSchema $ifExists(boolean ifExists); @CheckReturnValue @NotNull AlterSchema $renameTo(Schema renameTo); } /** * The ALTER SEQUENCE statement. */ public /*sealed*/ interface AlterSequence extends DDLQuery //permits // AlterSequenceImpl { @NotNull Sequence $sequence(); boolean $ifExists(); @Nullable Sequence $renameTo(); boolean $restart(); @Nullable Field $restartWith(); @Nullable Field $startWith(); @Nullable Field $incrementBy(); @Nullable Field $minvalue(); boolean $noMinvalue(); @Nullable Field $maxvalue(); boolean $noMaxvalue(); @Nullable CycleOption $cycle(); @Nullable Field $cache(); boolean $noCache(); @CheckReturnValue @NotNull AlterSequence $sequence(Sequence sequence); @CheckReturnValue @NotNull AlterSequence $ifExists(boolean ifExists); @CheckReturnValue @NotNull AlterSequence $renameTo(Sequence renameTo); @CheckReturnValue @NotNull AlterSequence $restart(boolean restart); @CheckReturnValue @NotNull AlterSequence $restartWith(Field restartWith); @CheckReturnValue @NotNull AlterSequence $startWith(Field startWith); @CheckReturnValue @NotNull AlterSequence $incrementBy(Field incrementBy); @CheckReturnValue @NotNull AlterSequence $minvalue(Field minvalue); @CheckReturnValue @NotNull AlterSequence $noMinvalue(boolean noMinvalue); @CheckReturnValue @NotNull AlterSequence $maxvalue(Field maxvalue); @CheckReturnValue @NotNull AlterSequence $noMaxvalue(boolean noMaxvalue); @CheckReturnValue @NotNull AlterSequence $cycle(CycleOption cycle); @CheckReturnValue @NotNull AlterSequence $cache(Field cache); @CheckReturnValue @NotNull AlterSequence $noCache(boolean noCache); } /** * The ALTER TYPE statement. */ public /*sealed*/ interface AlterType extends DDLQuery //permits // AlterTypeImpl { @NotNull Name $type(); boolean $ifExists(); @Nullable Name $renameTo(); @Nullable Schema $setSchema(); @Nullable Field $addValue(); @Nullable Field $renameValue(); @Nullable Field $renameValueTo(); @CheckReturnValue @NotNull AlterType $type(Name type); @CheckReturnValue @NotNull AlterType $ifExists(boolean ifExists); @CheckReturnValue @NotNull AlterType $renameTo(Name renameTo); @CheckReturnValue @NotNull AlterType $setSchema(Schema setSchema); @CheckReturnValue @NotNull AlterType $addValue(Field addValue); @CheckReturnValue @NotNull AlterType $renameValue(Field renameValue); @CheckReturnValue @NotNull AlterType $renameValueTo(Field renameValueTo); } /** * The ALTER VIEW statement. */ public /*sealed*/ interface AlterView extends DDLQuery //permits // AlterViewImpl { @NotNull Table $view(); @NotNull UnmodifiableList> $fields(); boolean $materialized(); boolean $ifExists(); @Nullable Comment $comment(); @Nullable Table $renameTo(); @Nullable Select $as(); @CheckReturnValue @NotNull AlterView $view(Table view); @CheckReturnValue @NotNull AlterView $fields(Collection> fields); @CheckReturnValue @NotNull AlterView $materialized(boolean materialized); @CheckReturnValue @NotNull AlterView $ifExists(boolean ifExists); @CheckReturnValue @NotNull AlterView $comment(Comment comment); @CheckReturnValue @NotNull AlterView $renameTo(Table renameTo); @CheckReturnValue @NotNull AlterView $as(Select as); } /** * The COMMENT ON TABLE statement. */ public /*sealed*/ interface CommentOn extends DDLQuery //permits // CommentOnImpl { @Nullable Table $table(); boolean $isView(); boolean $isMaterializedView(); @Nullable Field $field(); @NotNull Comment $comment(); @CheckReturnValue @NotNull CommentOn $table(Table table); @CheckReturnValue @NotNull CommentOn $isView(boolean isView); @CheckReturnValue @NotNull CommentOn $isMaterializedView(boolean isMaterializedView); @CheckReturnValue @NotNull CommentOn $field(Field field); @CheckReturnValue @NotNull CommentOn $comment(Comment comment); } /** * The CREATE DATABASE statement. */ public /*sealed*/ interface CreateDatabase extends DDLQuery //permits // CreateDatabaseImpl { @NotNull Catalog $database(); boolean $ifNotExists(); @CheckReturnValue @NotNull CreateDatabase $database(Catalog database); @CheckReturnValue @NotNull CreateDatabase $ifNotExists(boolean ifNotExists); } /** * The CREATE DOMAIN statement. */ public /*sealed*/ interface CreateDomain extends DDLQuery //permits // CreateDomainImpl { @NotNull Domain $domain(); boolean $ifNotExists(); @NotNull DataType $dataType(); @Nullable Field $default_(); @NotNull UnmodifiableList $constraints(); @CheckReturnValue @NotNull CreateDomain $domain(Domain domain); @CheckReturnValue @NotNull CreateDomain $ifNotExists(boolean ifNotExists); @CheckReturnValue @NotNull CreateDomain $dataType(DataType dataType); @CheckReturnValue @NotNull CreateDomain $default_(Field default_); @CheckReturnValue @NotNull CreateDomain $constraints(Collection constraints); } /** * The CREATE INDEX statement. */ public /*sealed*/ interface CreateIndex extends DDLQuery //permits // CreateIndexImpl { boolean $unique(); @Nullable Index $index(); boolean $ifNotExists(); @Nullable Table $table(); @NotNull UnmodifiableList> $on(); @NotNull UnmodifiableList> $include(); @Nullable Condition $where(); boolean $excludeNullKeys(); @CheckReturnValue @NotNull CreateIndex $unique(boolean unique); @CheckReturnValue @NotNull CreateIndex $index(Index index); @CheckReturnValue @NotNull CreateIndex $ifNotExists(boolean ifNotExists); @CheckReturnValue @NotNull CreateIndex $table(Table table); @CheckReturnValue @NotNull CreateIndex $on(Collection> on); @CheckReturnValue @NotNull CreateIndex $include(Collection> include); @CheckReturnValue @NotNull CreateIndex $where(Condition where); @CheckReturnValue @NotNull CreateIndex $excludeNullKeys(boolean excludeNullKeys); } /** * The CREATE TABLE statement. */ public /*sealed*/ interface CreateTable extends DDLQuery //permits // CreateTableImpl { @NotNull Table $table(); boolean $temporary(); boolean $ifNotExists(); @NotNull UnmodifiableList $tableElements(); @Nullable Select $select(); @Nullable WithOrWithoutData $withData(); @Nullable TableCommitAction $onCommit(); @Nullable Comment $comment(); @Nullable SQL $storage(); @CheckReturnValue @NotNull CreateTable $table(Table table); @CheckReturnValue @NotNull CreateTable $temporary(boolean temporary); @CheckReturnValue @NotNull CreateTable $ifNotExists(boolean ifNotExists); @CheckReturnValue @NotNull CreateTable $tableElements(Collection tableElements); @CheckReturnValue @NotNull CreateTable $select(Select select); @CheckReturnValue @NotNull CreateTable $withData(WithOrWithoutData withData); @CheckReturnValue @NotNull CreateTable $onCommit(TableCommitAction onCommit); @CheckReturnValue @NotNull CreateTable $comment(Comment comment); @CheckReturnValue @NotNull CreateTable $storage(SQL storage); } /** * The CREATE VIEW statement. */ public /*sealed*/ interface CreateView extends DDLQuery //permits // CreateViewImpl { @NotNull Table $view(); @NotNull UnmodifiableList> $fields(); boolean $orReplace(); boolean $materialized(); boolean $ifNotExists(); @Nullable ResultQuery $query(); @CheckReturnValue @NotNull CreateView $view(Table view); @CheckReturnValue @NotNull CreateView $fields(Collection> fields); @CheckReturnValue @NotNull CreateView $orReplace(boolean orReplace); @CheckReturnValue @NotNull CreateView $materialized(boolean materialized); @CheckReturnValue @NotNull CreateView $ifNotExists(boolean ifNotExists); @CheckReturnValue @NotNull CreateView $query(ResultQuery query); } /** * The CREATE TYPE statement. */ public /*sealed*/ interface CreateType extends DDLQuery //permits // CreateTypeImpl { @NotNull Type $type(); boolean $ifNotExists(); @NotNull UnmodifiableList> $values(); @NotNull UnmodifiableList> $attributes(); @CheckReturnValue @NotNull CreateType $type(Type type); @CheckReturnValue @NotNull CreateType $ifNotExists(boolean ifNotExists); @CheckReturnValue @NotNull CreateType $values(Collection> values); @CheckReturnValue @NotNull CreateType $attributes(Collection> attributes); } /** * The CREATE SCHEMA statement. */ public /*sealed*/ interface CreateSchema extends DDLQuery //permits // CreateSchemaImpl { @NotNull Schema $schema(); boolean $ifNotExists(); @CheckReturnValue @NotNull CreateSchema $schema(Schema schema); @CheckReturnValue @NotNull CreateSchema $ifNotExists(boolean ifNotExists); } /** * The CREATE SEQUENCE statement. */ public /*sealed*/ interface CreateSequence extends DDLQuery //permits // CreateSequenceImpl { @NotNull Sequence $sequence(); boolean $ifNotExists(); @Nullable DataType $dataType(); @Nullable Field $startWith(); @Nullable Field $incrementBy(); @Nullable Field $minvalue(); boolean $noMinvalue(); @Nullable Field $maxvalue(); boolean $noMaxvalue(); @Nullable CycleOption $cycle(); @Nullable Field $cache(); boolean $noCache(); @CheckReturnValue @NotNull CreateSequence $sequence(Sequence sequence); @CheckReturnValue @NotNull CreateSequence $ifNotExists(boolean ifNotExists); @CheckReturnValue @NotNull CreateSequence $dataType(DataType dataType); @CheckReturnValue @NotNull CreateSequence $startWith(Field startWith); @CheckReturnValue @NotNull CreateSequence $incrementBy(Field incrementBy); @CheckReturnValue @NotNull CreateSequence $minvalue(Field minvalue); @CheckReturnValue @NotNull CreateSequence $noMinvalue(boolean noMinvalue); @CheckReturnValue @NotNull CreateSequence $maxvalue(Field maxvalue); @CheckReturnValue @NotNull CreateSequence $noMaxvalue(boolean noMaxvalue); @CheckReturnValue @NotNull CreateSequence $cycle(CycleOption cycle); @CheckReturnValue @NotNull CreateSequence $cache(Field cache); @CheckReturnValue @NotNull CreateSequence $noCache(boolean noCache); } /** * The DROP DATABASE statement. */ public /*sealed*/ interface DropDatabase extends DDLQuery //permits // DropDatabaseImpl { @NotNull Catalog $database(); boolean $ifExists(); @CheckReturnValue @NotNull DropDatabase $database(Catalog database); @CheckReturnValue @NotNull DropDatabase $ifExists(boolean ifExists); } /** * The DROP DOMAIN statement. */ public /*sealed*/ interface DropDomain extends DDLQuery //permits // DropDomainImpl { @NotNull Domain $domain(); boolean $ifExists(); @Nullable Cascade $cascade(); @CheckReturnValue @NotNull DropDomain $domain(Domain domain); @CheckReturnValue @NotNull DropDomain $ifExists(boolean ifExists); @CheckReturnValue @NotNull DropDomain $cascade(Cascade cascade); } /** * The DROP INDEX statement. */ public /*sealed*/ interface DropIndex extends DDLQuery //permits // DropIndexImpl { @NotNull Index $index(); boolean $ifExists(); @Nullable Table $on(); @Nullable Cascade $cascade(); @CheckReturnValue @NotNull DropIndex $index(Index index); @CheckReturnValue @NotNull DropIndex $ifExists(boolean ifExists); @CheckReturnValue @NotNull DropIndex $on(Table on); @CheckReturnValue @NotNull DropIndex $cascade(Cascade cascade); } /** * The DROP SCHEMA statement. */ public /*sealed*/ interface DropSchema extends DDLQuery //permits // DropSchemaImpl { @NotNull Schema $schema(); boolean $ifExists(); @Nullable Cascade $cascade(); @CheckReturnValue @NotNull DropSchema $schema(Schema schema); @CheckReturnValue @NotNull DropSchema $ifExists(boolean ifExists); @CheckReturnValue @NotNull DropSchema $cascade(Cascade cascade); } /** * The DROP SEQUENCE statement. */ public /*sealed*/ interface DropSequence extends DDLQuery //permits // DropSequenceImpl { @NotNull Sequence $sequence(); boolean $ifExists(); @CheckReturnValue @NotNull DropSequence $sequence(Sequence sequence); @CheckReturnValue @NotNull DropSequence $ifExists(boolean ifExists); } /** * The DROP TABLE statement. */ public /*sealed*/ interface DropTable extends DDLQuery //permits // DropTableImpl { boolean $temporary(); @NotNull Table $table(); boolean $ifExists(); @Nullable Cascade $cascade(); @CheckReturnValue @NotNull DropTable $temporary(boolean temporary); @CheckReturnValue @NotNull DropTable $table(Table table); @CheckReturnValue @NotNull DropTable $ifExists(boolean ifExists); @CheckReturnValue @NotNull DropTable $cascade(Cascade cascade); } /** * The DROP TYPE statement. */ public /*sealed*/ interface DropType extends DDLQuery //permits // DropTypeImpl { @NotNull UnmodifiableList> $types(); boolean $ifExists(); @Nullable Cascade $cascade(); @CheckReturnValue @NotNull DropType $types(Collection> types); @CheckReturnValue @NotNull DropType $ifExists(boolean ifExists); @CheckReturnValue @NotNull DropType $cascade(Cascade cascade); } /** * The DROP VIEW statement. */ public /*sealed*/ interface DropView extends DDLQuery //permits // DropViewImpl { @NotNull Table $view(); boolean $materialized(); boolean $ifExists(); @CheckReturnValue @NotNull DropView $view(Table view); @CheckReturnValue @NotNull DropView $materialized(boolean materialized); @CheckReturnValue @NotNull DropView $ifExists(boolean ifExists); } /** * The GRANT statement. */ public /*sealed*/ interface Grant extends DDLQuery //permits // GrantImpl { @NotNull UnmodifiableList $privileges(); @NotNull Table $on(); @Nullable Role $to(); boolean $toPublic(); boolean $withGrantOption(); @CheckReturnValue @NotNull Grant $privileges(Collection privileges); @CheckReturnValue @NotNull Grant $on(Table on); @CheckReturnValue @NotNull Grant $to(Role to); @CheckReturnValue @NotNull Grant $toPublic(boolean toPublic); @CheckReturnValue @NotNull Grant $withGrantOption(boolean withGrantOption); } /** * The REVOKE statement. */ public /*sealed*/ interface Revoke extends DDLQuery //permits // RevokeImpl { @NotNull UnmodifiableList $privileges(); boolean $grantOptionFor(); @NotNull Table $on(); @Nullable Role $from(); boolean $fromPublic(); @CheckReturnValue @NotNull Revoke $privileges(Collection privileges); @CheckReturnValue @NotNull Revoke $grantOptionFor(boolean grantOptionFor); @CheckReturnValue @NotNull Revoke $on(Table on); @CheckReturnValue @NotNull Revoke $from(Role from); @CheckReturnValue @NotNull Revoke $fromPublic(boolean fromPublic); } /** * The SET statement. *

* Set a vendor specific session configuration to a new value. */ public /*sealed*/ interface SetCommand extends org.jooq.RowCountQuery //permits // SetCommand { @NotNull Name $name(); @NotNull Param $value(); boolean $local(); @CheckReturnValue @NotNull SetCommand $name(Name name); @CheckReturnValue @NotNull SetCommand $value(Param value); @CheckReturnValue @NotNull SetCommand $local(boolean local); } /** * The SET CATALOG statement. *

* Set the current catalog to a new value. */ public /*sealed*/ interface SetCatalog extends org.jooq.RowCountQuery //permits // SetCatalog { @NotNull Catalog $catalog(); @CheckReturnValue @NotNull SetCatalog $catalog(Catalog catalog); } /** * The SET SCHEMA statement. *

* Set the current schema to a new value. */ public /*sealed*/ interface SetSchema extends org.jooq.RowCountQuery //permits // SetSchema { @NotNull Schema $schema(); @CheckReturnValue @NotNull SetSchema $schema(Schema schema); } /** * The TRUNCATE statement. */ public /*sealed*/ interface Truncate extends DDLQuery //permits // TruncateImpl { @NotNull UnmodifiableList> $table(); @Nullable IdentityRestartOption $restartIdentity(); @Nullable Cascade $cascade(); @CheckReturnValue @NotNull Truncate $table(Collection> table); @CheckReturnValue @NotNull Truncate $restartIdentity(IdentityRestartOption restartIdentity); @CheckReturnValue @NotNull Truncate $cascade(Cascade cascade); } /** * The START TRANSACTION statement. *

* Start a transaction */ public /*sealed*/ interface StartTransaction extends UEmpty, org.jooq.RowCountQuery //permits // StartTransaction {} /** * The SAVEPOINT statement. *

* Specify a savepoint */ public /*sealed*/ interface Savepoint extends org.jooq.RowCountQuery //permits // Savepoint { @NotNull Name $name(); @CheckReturnValue @NotNull Savepoint $name(Name name); } /** * The RELEASE SAVEPOINT statement. *

* Release a savepoint */ public /*sealed*/ interface ReleaseSavepoint extends org.jooq.RowCountQuery //permits // ReleaseSavepoint { @NotNull Name $name(); @CheckReturnValue @NotNull ReleaseSavepoint $name(Name name); } /** * The COMMIT statement. *

* Commit a transaction */ public /*sealed*/ interface Commit extends UEmpty, org.jooq.RowCountQuery //permits // Commit {} /** * The ROLLBACK statement. *

* Rollback a transaction */ public /*sealed*/ interface Rollback extends RowCountQuery //permits // Rollback { @Nullable Name $toSavepoint(); @CheckReturnValue @NotNull Rollback $toSavepoint(Name toSavepoint); } /** * The AND operator. */ public /*sealed*/ interface And extends UCommutativeOperator, CombinedCondition //permits // And {} /** * The BINARY LIKE operator. *

* The LIKE operator for binary strings */ public /*sealed*/ interface BinaryLike extends UReturnsNullOnNullInput, UOperator2, Field, BinaryLike>, org.jooq.Condition //permits // BinaryLike { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default BinaryLike $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default BinaryLike $pattern(Field newPattern) { return $arg2(newPattern); } } /** * The BINARY LIKE operator. *

* The LIKE operator for binary strings */ public /*sealed*/ interface BinaryLikeQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, BinaryLikeQuantified>, org.jooq.Condition //permits // BinaryLikeQuantified { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default BinaryLikeQuantified $value(Field newValue) { return $arg1(newValue); } @NotNull default org.jooq.QuantifiedSelect> $pattern() { return $arg2(); } @CheckReturnValue @NotNull default BinaryLikeQuantified $pattern(org.jooq.QuantifiedSelect> newPattern) { return $arg2(newPattern); } } /** * The EQ operator. */ public /*sealed*/ interface TableEq extends UReturnsNullOnNullInput, UCommutativeOperator, TableEq>, org.jooq.Condition //permits // TableEq {} /** * The EQ operator. */ public /*sealed*/ interface Eq extends UReturnsNullOnNullInput, UCommutativeOperator, Eq>, CompareCondition> //permits // Eq {} /** * The EQ operator. */ public /*sealed*/ interface EqQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, EqQuantified>, org.jooq.Condition //permits // EqQuantified {} /** * The EXISTS function. */ public /*sealed*/ interface Exists extends UOperator1, Exists>, org.jooq.Condition //permits // Exists { @NotNull default Select $query() { return $arg1(); } @CheckReturnValue @NotNull default Exists $query(Select newQuery) { return $arg1(newQuery); } } /** * The GE operator. */ public /*sealed*/ interface Ge extends UReturnsNullOnNullInput, UConvertibleOperator, Ge, Le>, CompareCondition> //permits // Ge { @Override @CheckReturnValue @NotNull default Le $converse() { return new org.jooq.impl.Le<>($arg2(), $arg1()); } } /** * The GE operator. */ public /*sealed*/ interface GeQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, GeQuantified>, org.jooq.Condition //permits // GeQuantified {} /** * The GT operator. */ public /*sealed*/ interface Gt extends UReturnsNullOnNullInput, UConvertibleOperator, Gt, Lt>, CompareCondition> //permits // Gt { @Override @CheckReturnValue @NotNull default Lt $converse() { return new org.jooq.impl.Lt<>($arg2(), $arg1()); } } /** * The GT operator. */ public /*sealed*/ interface GtQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, GtQuantified>, org.jooq.Condition //permits // GtQuantified {} /** * The IN operator. *

* The subquery must return exactly one field. This is not checked * by jOOQ and will result in syntax errors in the database, if not used * correctly. */ public /*sealed*/ interface In extends UOperator2, Select>, In>, org.jooq.Condition //permits // In {} /** * The IS DISTINCT FROM operator. *

* The DISTINCT predicate allows for creating NULL safe comparisons where the two operands * are tested for non-equality */ public /*sealed*/ interface IsDistinctFrom extends UCommutativeOperator, IsDistinctFrom>, CompareCondition> //permits // IsDistinctFrom {} /** * The IS NULL operator. */ public /*sealed*/ interface IsNull extends UOperator1, IsNull>, org.jooq.Condition //permits // IsNull { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default IsNull $field(Field newField) { return $arg1(newField); } } /** * The IS NOT DISTINCT FROM operator. *

* The NOT DISTINCT predicate allows for creating NULL safe comparisons where the two * operands are tested for equality */ public /*sealed*/ interface IsNotDistinctFrom extends UCommutativeOperator, IsNotDistinctFrom>, CompareCondition> //permits // IsNotDistinctFrom {} /** * The IS NOT NULL operator. */ public /*sealed*/ interface IsNotNull extends UOperator1, IsNotNull>, org.jooq.Condition //permits // IsNotNull { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default IsNotNull $field(Field newField) { return $arg1(newField); } } /** * The LE operator. */ public /*sealed*/ interface Le extends UReturnsNullOnNullInput, UConvertibleOperator, Le, Ge>, CompareCondition> //permits // Le { @Override @CheckReturnValue @NotNull default Ge $converse() { return new org.jooq.impl.Ge<>($arg2(), $arg1()); } } /** * The LE operator. */ public /*sealed*/ interface LeQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, LeQuantified>, org.jooq.Condition //permits // LeQuantified {} /** * The LIKE operator. */ public /*sealed*/ interface Like extends UReturnsNullOnNullInput, UOperator3, Field, Character, Like>, Condition //permits // Like { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Like $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default Like $pattern(Field newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default Like $escape(Character newEscape) { return $arg3(newEscape); } } /** * The LIKE operator. */ public /*sealed*/ interface LikeQuantified extends UReturnsNullOnNullInput, UOperator3, org.jooq.QuantifiedSelect>, Character, LikeQuantified>, Condition //permits // LikeQuantified { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default LikeQuantified $value(Field newValue) { return $arg1(newValue); } @NotNull default org.jooq.QuantifiedSelect> $pattern() { return $arg2(); } @CheckReturnValue @NotNull default LikeQuantified $pattern(org.jooq.QuantifiedSelect> newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default LikeQuantified $escape(Character newEscape) { return $arg3(newEscape); } } /** * The LIKE IGNORE CASE operator. *

* Create a condition to case-insensitively pattern-check this field against * a value. *

* This translates to this ilike value in * {@link SQLDialect#POSTGRES}, or to * lower(this) like lower(value) in all other dialects. */ public /*sealed*/ interface LikeIgnoreCase extends UReturnsNullOnNullInput, UOperator3, Field, Character, LikeIgnoreCase>, Condition //permits // LikeIgnoreCase { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default LikeIgnoreCase $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default LikeIgnoreCase $pattern(Field newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default LikeIgnoreCase $escape(Character newEscape) { return $arg3(newEscape); } } /** * The LT operator. */ public /*sealed*/ interface Lt extends UReturnsNullOnNullInput, UConvertibleOperator, Lt, Gt>, CompareCondition> //permits // Lt { @Override @CheckReturnValue @NotNull default Gt $converse() { return new org.jooq.impl.Gt<>($arg2(), $arg1()); } } /** * The LT operator. */ public /*sealed*/ interface LtQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, LtQuantified>, org.jooq.Condition //permits // LtQuantified {} /** * The NE operator. */ public /*sealed*/ interface TableNe extends UReturnsNullOnNullInput, UCommutativeOperator, TableNe>, org.jooq.Condition //permits // TableNe {} /** * The NE operator. */ public /*sealed*/ interface Ne extends UReturnsNullOnNullInput, UCommutativeOperator, Ne>, CompareCondition> //permits // Ne {} /** * The NE operator. */ public /*sealed*/ interface NeQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, NeQuantified>, org.jooq.Condition //permits // NeQuantified {} /** * The NOT operator. */ public /*sealed*/ interface Not extends UReturnsNullOnNullInput, UOperator1, org.jooq.Condition //permits // Not { @NotNull default Condition $condition() { return $arg1(); } @CheckReturnValue @NotNull default Not $condition(Condition newCondition) { return $arg1(newCondition); } } /** * The NOT operator. */ public /*sealed*/ interface NotField extends UReturnsNullOnNullInput, UOperator1, NotField>, org.jooq.Field //permits // NotField { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default NotField $field(Field newField) { return $arg1(newField); } } /** * The NOT BINARY LIKE operator. *

* The NOT LIKE operator for binary strings */ public /*sealed*/ interface NotBinaryLike extends UReturnsNullOnNullInput, UOperator2, Field, NotBinaryLike>, org.jooq.Condition //permits // NotBinaryLike { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default NotBinaryLike $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default NotBinaryLike $pattern(Field newPattern) { return $arg2(newPattern); } } /** * The NOT BINARY LIKE operator. *

* The NOT LIKE operator for binary strings */ public /*sealed*/ interface NotBinaryLikeQuantified extends UReturnsNullOnNullInput, UOperator2, org.jooq.QuantifiedSelect>, NotBinaryLikeQuantified>, org.jooq.Condition //permits // NotBinaryLikeQuantified { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default NotBinaryLikeQuantified $value(Field newValue) { return $arg1(newValue); } @NotNull default org.jooq.QuantifiedSelect> $pattern() { return $arg2(); } @CheckReturnValue @NotNull default NotBinaryLikeQuantified $pattern(org.jooq.QuantifiedSelect> newPattern) { return $arg2(newPattern); } } /** * The NOT IN operator. *

* The subquery must return exactly one field. This is not checked * by jOOQ and will result in syntax errors in the database, if not used * correctly. *

* If any of the passed values is NULL, then the * condition will be NULL (or false, depending on * the dialect) as well. This is standard SQL behaviour. */ public /*sealed*/ interface NotIn extends UOperator2, Select>, NotIn>, org.jooq.Condition //permits // NotIn {} /** * The NOT LIKE operator. */ public /*sealed*/ interface NotLike extends UReturnsNullOnNullInput, UOperator3, Field, Character, NotLike>, Condition //permits // NotLike { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default NotLike $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default NotLike $pattern(Field newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default NotLike $escape(Character newEscape) { return $arg3(newEscape); } } /** * The NOT LIKE operator. */ public /*sealed*/ interface NotLikeQuantified extends UReturnsNullOnNullInput, UOperator3, org.jooq.QuantifiedSelect>, Character, NotLikeQuantified>, Condition //permits // NotLikeQuantified { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default NotLikeQuantified $value(Field newValue) { return $arg1(newValue); } @NotNull default org.jooq.QuantifiedSelect> $pattern() { return $arg2(); } @CheckReturnValue @NotNull default NotLikeQuantified $pattern(org.jooq.QuantifiedSelect> newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default NotLikeQuantified $escape(Character newEscape) { return $arg3(newEscape); } } /** * The NOT LIKE IGNORE CASE operator. *

* Create a condition to case-insensitively pattern-check this field against * a value. *

* This translates to this not ilike value in * {@link SQLDialect#POSTGRES}, or to * lower(this) not like lower(value) in all other dialects. */ public /*sealed*/ interface NotLikeIgnoreCase extends UReturnsNullOnNullInput, UOperator3, Field, Character, NotLikeIgnoreCase>, Condition //permits // NotLikeIgnoreCase { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default NotLikeIgnoreCase $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default NotLikeIgnoreCase $pattern(Field newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default NotLikeIgnoreCase $escape(Character newEscape) { return $arg3(newEscape); } } /** * The NOT SIMILAR TO operator. */ public /*sealed*/ interface NotSimilarTo extends UReturnsNullOnNullInput, UOperator3, Field, Character, NotSimilarTo>, Condition //permits // NotSimilarTo { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default NotSimilarTo $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default NotSimilarTo $pattern(Field newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default NotSimilarTo $escape(Character newEscape) { return $arg3(newEscape); } } /** * The NOT SIMILAR TO operator. */ public /*sealed*/ interface NotSimilarToQuantified extends UReturnsNullOnNullInput, UOperator3, org.jooq.QuantifiedSelect>, Character, NotSimilarToQuantified>, Condition //permits // NotSimilarToQuantified { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default NotSimilarToQuantified $value(Field newValue) { return $arg1(newValue); } @NotNull default org.jooq.QuantifiedSelect> $pattern() { return $arg2(); } @CheckReturnValue @NotNull default NotSimilarToQuantified $pattern(org.jooq.QuantifiedSelect> newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default NotSimilarToQuantified $escape(Character newEscape) { return $arg3(newEscape); } } /** * The OR operator. */ public /*sealed*/ interface Or extends UCommutativeOperator, CombinedCondition //permits // Or {} /** * The SIMILAR TO operator. */ public /*sealed*/ interface SimilarTo extends UReturnsNullOnNullInput, UOperator3, Field, Character, SimilarTo>, Condition //permits // SimilarTo { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default SimilarTo $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $pattern() { return $arg2(); } @CheckReturnValue @NotNull default SimilarTo $pattern(Field newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default SimilarTo $escape(Character newEscape) { return $arg3(newEscape); } } /** * The SIMILAR TO operator. */ public /*sealed*/ interface SimilarToQuantified extends UReturnsNullOnNullInput, UOperator3, org.jooq.QuantifiedSelect>, Character, SimilarToQuantified>, Condition //permits // SimilarToQuantified { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default SimilarToQuantified $value(Field newValue) { return $arg1(newValue); } @NotNull default org.jooq.QuantifiedSelect> $pattern() { return $arg2(); } @CheckReturnValue @NotNull default SimilarToQuantified $pattern(org.jooq.QuantifiedSelect> newPattern) { return $arg2(newPattern); } @Nullable default Character $escape() { return $arg3(); } @CheckReturnValue @NotNull default SimilarToQuantified $escape(Character newEscape) { return $arg3(newEscape); } } /** * The UNIQUE function. */ public /*sealed*/ interface Unique extends UOperator1, Unique>, org.jooq.Condition //permits // Unique { @NotNull default Select $query() { return $arg1(); } @CheckReturnValue @NotNull default Unique $query(Select newQuery) { return $arg1(newQuery); } } /** * The XOR operator. */ public /*sealed*/ interface Xor extends UReturnsNullOnNullInput, UCommutativeOperator, CombinedCondition //permits // Xor {} /** * The ROW EQ operator. */ public /*sealed*/ interface RowEq extends UReturnsNullOnNullInput, UCommutativeOperator>, org.jooq.Condition //permits // RowEq {} /** * The ROW NE operator. */ public /*sealed*/ interface RowNe extends UReturnsNullOnNullInput, UCommutativeOperator>, org.jooq.Condition //permits // RowNe {} /** * The ROW GT operator. */ public /*sealed*/ interface RowGt extends UReturnsNullOnNullInput, UConvertibleOperator, RowLt>, org.jooq.Condition //permits // RowGt { @Override @CheckReturnValue @NotNull default RowLt $converse() { return new org.jooq.impl.RowLt<>($arg2(), $arg1()); } } /** * The ROW GE operator. */ public /*sealed*/ interface RowGe extends UReturnsNullOnNullInput, UConvertibleOperator, RowLe>, org.jooq.Condition //permits // RowGe { @Override @CheckReturnValue @NotNull default RowLe $converse() { return new org.jooq.impl.RowLe<>($arg2(), $arg1()); } } /** * The ROW LT operator. */ public /*sealed*/ interface RowLt extends UReturnsNullOnNullInput, UConvertibleOperator, RowGt>, org.jooq.Condition //permits // RowLt { @Override @CheckReturnValue @NotNull default RowGt $converse() { return new org.jooq.impl.RowGt<>($arg2(), $arg1()); } } /** * The ROW LE operator. */ public /*sealed*/ interface RowLe extends UReturnsNullOnNullInput, UConvertibleOperator, RowGe>, org.jooq.Condition //permits // RowLe { @Override @CheckReturnValue @NotNull default RowGe $converse() { return new org.jooq.impl.RowGe<>($arg2(), $arg1()); } } /** * The IS DOCUMENT operator. *

* Create a condition to check if this field contains XML data. */ public /*sealed*/ interface IsDocument extends UReturnsNullOnNullInput, UOperator1, IsDocument>, org.jooq.Condition //permits // IsDocument { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default IsDocument $field(Field newField) { return $arg1(newField); } } /** * The IS NOT DOCUMENT operator. *

* Create a condition to check if this field does not contain XML data. */ public /*sealed*/ interface IsNotDocument extends UReturnsNullOnNullInput, UOperator1, IsNotDocument>, org.jooq.Condition //permits // IsNotDocument { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default IsNotDocument $field(Field newField) { return $arg1(newField); } } /** * The IS JSON operator. *

* Create a condition to check if this field contains JSON data. */ public /*sealed*/ interface IsJson extends UReturnsNullOnNullInput, UOperator1, IsJson>, org.jooq.Condition //permits // IsJson { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default IsJson $field(Field newField) { return $arg1(newField); } } /** * The IS NOT JSON operator. *

* Create a condition to check if this field does not contain JSON data. */ public /*sealed*/ interface IsNotJson extends UReturnsNullOnNullInput, UOperator1, IsNotJson>, org.jooq.Condition //permits // IsNotJson { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default IsNotJson $field(Field newField) { return $arg1(newField); } } /** * The EXCLUDED function. *

* Provide "EXCLUDED" qualification for a column for use in ON CONFLICT or ON DUPLICATE * KEY UPDATE. */ public /*sealed*/ interface Excluded extends UOperator1, Excluded>, org.jooq.Field //permits // Excluded { /** * The excluded field. */ @NotNull default Field $field() { return $arg1(); } /** * The excluded field. */ @CheckReturnValue @NotNull default Excluded $field(Field newField) { return $arg1(newField); } } /** * The ROWID operator. *

* Get a table.rowid reference from this table. *

* A rowid value describes the physical location of a row on the disk, which * can be used as a replacement for a primary key in some situations - * especially within a query, e.g. to self-join a table: *

*


     * -- Emulating this MySQL statement...
     * DELETE FROM x ORDER BY x.y LIMIT 1
     *
     * -- ... in other databases
     * DELETE FROM x
     * WHERE x.rowid IN (
     *   SELECT x.rowid FROM x ORDER BY x.a LIMIT 1
     * )
     * 
*

* It is not recommended to use rowid values in client * applications as actual row identifiers as the database system may move a * row to a different physical location at any time, thus changing the rowid * value. In general, use primary keys, instead. */ public /*sealed*/ interface QualifiedRowid extends UOperator1, QualifiedRowid>, org.jooq.Field //permits // QualifiedRowid { @NotNull default Table $table() { return $arg1(); } @CheckReturnValue @NotNull default QualifiedRowid $table(Table newTable) { return $arg1(newTable); } } /** * The ABS function. */ public /*sealed*/ interface Abs extends UReturnsNullOnNullInput, UOperator1, Abs>, org.jooq.Field //permits // Abs { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Abs $value(Field newValue) { return $arg1(newValue); } } /** * The ACOS function. */ public /*sealed*/ interface Acos extends UReturnsNullOnNullInput, UOperator1, Acos>, org.jooq.Field //permits // Acos { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Acos $value(Field newValue) { return $arg1(newValue); } } /** * The ACOSH function. */ public /*sealed*/ interface Acosh extends UReturnsNullOnNullInput, UOperator1, Acosh>, org.jooq.Field //permits // Acosh { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Acosh $value(Field newValue) { return $arg1(newValue); } } /** * The ACOTH function. */ public /*sealed*/ interface Acoth extends UReturnsNullOnNullInput, UOperator1, Acoth>, org.jooq.Field //permits // Acoth { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Acoth $value(Field newValue) { return $arg1(newValue); } } /** * The ADD operator. */ public /*sealed*/ interface Add extends UReturnsNullOnNullInput, UCommutativeOperator, Add>, org.jooq.Field //permits // Add {} /** * The ASIN function. */ public /*sealed*/ interface Asin extends UReturnsNullOnNullInput, UOperator1, Asin>, org.jooq.Field //permits // Asin { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Asin $value(Field newValue) { return $arg1(newValue); } } /** * The ASINH function. */ public /*sealed*/ interface Asinh extends UReturnsNullOnNullInput, UOperator1, Asinh>, org.jooq.Field //permits // Asinh { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Asinh $value(Field newValue) { return $arg1(newValue); } } /** * The ATAN function. */ public /*sealed*/ interface Atan extends UReturnsNullOnNullInput, UOperator1, Atan>, org.jooq.Field //permits // Atan { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Atan $value(Field newValue) { return $arg1(newValue); } } /** * The ATAN2 function. */ public /*sealed*/ interface Atan2 extends UReturnsNullOnNullInput, UOperator2, Field, Atan2>, org.jooq.Field //permits // Atan2 { @NotNull default Field $x() { return $arg1(); } @CheckReturnValue @NotNull default Atan2 $x(Field newX) { return $arg1(newX); } @NotNull default Field $y() { return $arg2(); } @CheckReturnValue @NotNull default Atan2 $y(Field newY) { return $arg2(newY); } } /** * The ATANH function. */ public /*sealed*/ interface Atanh extends UReturnsNullOnNullInput, UOperator1, Atanh>, org.jooq.Field //permits // Atanh { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Atanh $value(Field newValue) { return $arg1(newValue); } } /** * The BIT AND operator. */ public /*sealed*/ interface BitAnd extends UReturnsNullOnNullInput, UCommutativeOperator, BitAnd>, org.jooq.Field //permits // BitAnd {} /** * The BIT COUNT function. *

* Count the number of bits set in a number */ public /*sealed*/ interface BitCount extends UReturnsNullOnNullInput, UOperator1, BitCount>, org.jooq.Field //permits // BitCount { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default BitCount $value(Field newValue) { return $arg1(newValue); } } /** * The BIT GET function. */ public /*sealed*/ interface BitGet extends UReturnsNullOnNullInput, UOperator2, Field, BitGet>, org.jooq.Field //permits // BitGet { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default BitGet $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $bit() { return $arg2(); } @CheckReturnValue @NotNull default BitGet $bit(Field newBit) { return $arg2(newBit); } } /** * The BIT NAND operator. */ public /*sealed*/ interface BitNand extends UReturnsNullOnNullInput, UCommutativeOperator, BitNand>, org.jooq.Field //permits // BitNand {} /** * The BIT NOR operator. */ public /*sealed*/ interface BitNor extends UReturnsNullOnNullInput, UCommutativeOperator, BitNor>, org.jooq.Field //permits // BitNor {} /** * The BIT NOT operator. */ public /*sealed*/ interface BitNot extends UReturnsNullOnNullInput, UOperator1, BitNot>, org.jooq.Field //permits // BitNot {} /** * The BIT OR operator. */ public /*sealed*/ interface BitOr extends UReturnsNullOnNullInput, UCommutativeOperator, BitOr>, org.jooq.Field //permits // BitOr {} /** * The BIT SET function. */ public /*sealed*/ interface BitSet extends UReturnsNullOnNullInput, UOperator3, Field, Field, BitSet>, org.jooq.Field //permits // BitSet { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default BitSet $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $bit() { return $arg2(); } @CheckReturnValue @NotNull default BitSet $bit(Field newBit) { return $arg2(newBit); } @Nullable default Field $newValue() { return $arg3(); } @CheckReturnValue @NotNull default BitSet $newValue(Field newNewValue) { return $arg3(newNewValue); } } /** * The BIT X NOR operator. */ public /*sealed*/ interface BitXNor extends UReturnsNullOnNullInput, UCommutativeOperator, BitXNor>, org.jooq.Field //permits // BitXNor {} /** * The BIT XOR operator. */ public /*sealed*/ interface BitXor extends UReturnsNullOnNullInput, UCommutativeOperator, BitXor>, org.jooq.Field //permits // BitXor {} /** * The CBRT function. */ public /*sealed*/ interface Cbrt extends UReturnsNullOnNullInput, UOperator1, Cbrt>, org.jooq.Field //permits // Cbrt { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Cbrt $value(Field newValue) { return $arg1(newValue); } } /** * The CEIL function. *

* Get the smallest integer value equal or greater to a value. */ public /*sealed*/ interface Ceil extends UReturnsNullOnNullInput, UOperator1, Ceil>, org.jooq.Field //permits // Ceil { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Ceil $value(Field newValue) { return $arg1(newValue); } } /** * The COS function. */ public /*sealed*/ interface Cos extends UReturnsNullOnNullInput, UOperator1, Cos>, org.jooq.Field //permits // Cos { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Cos $value(Field newValue) { return $arg1(newValue); } } /** * The COSH function. */ public /*sealed*/ interface Cosh extends UReturnsNullOnNullInput, UOperator1, Cosh>, org.jooq.Field //permits // Cosh { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Cosh $value(Field newValue) { return $arg1(newValue); } } /** * The COT function. */ public /*sealed*/ interface Cot extends UReturnsNullOnNullInput, UOperator1, Cot>, org.jooq.Field //permits // Cot { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Cot $value(Field newValue) { return $arg1(newValue); } } /** * The COTH function. */ public /*sealed*/ interface Coth extends UReturnsNullOnNullInput, UOperator1, Coth>, org.jooq.Field //permits // Coth { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Coth $value(Field newValue) { return $arg1(newValue); } } /** * The DEGREES function. *

* Turn a value in radians to degrees. */ public /*sealed*/ interface Degrees extends UReturnsNullOnNullInput, UOperator1, Degrees>, org.jooq.Field //permits // Degrees { /** * The value in radians. */ @NotNull default Field $radians() { return $arg1(); } /** * The value in radians. */ @CheckReturnValue @NotNull default Degrees $radians(Field newRadians) { return $arg1(newRadians); } } /** * The DIV operator. */ public /*sealed*/ interface Div extends UReturnsNullOnNullInput, UOperator2, Field, Div>, org.jooq.Field //permits // Div {} /** * The E function. *

* The E literal (Euler number). */ public /*sealed*/ interface Euler extends UOperator0, org.jooq.Field //permits // Euler {} /** * The EXP function. */ public /*sealed*/ interface Exp extends UReturnsNullOnNullInput, UOperator1, Exp>, org.jooq.Field //permits // Exp { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Exp $value(Field newValue) { return $arg1(newValue); } } /** * The FLOOR function. *

* Get the biggest integer value equal or less than a value. */ public /*sealed*/ interface Floor extends UReturnsNullOnNullInput, UOperator1, Floor>, org.jooq.Field //permits // Floor { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Floor $value(Field newValue) { return $arg1(newValue); } } /** * The LN function. *

* Get the natural logarithm of a value. */ public /*sealed*/ interface Ln extends UReturnsNullOnNullInput, UOperator1, Ln>, org.jooq.Field //permits // Ln { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Ln $value(Field newValue) { return $arg1(newValue); } } /** * The LOG function. *

* Get the logarithm of a value for a base. */ public /*sealed*/ interface Log extends UReturnsNullOnNullInput, UOperator2, Field, Log>, org.jooq.Field //permits // Log { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Log $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $base() { return $arg2(); } @CheckReturnValue @NotNull default Log $base(Field newBase) { return $arg2(newBase); } } /** * The LOG10 function. *

* Get the logarithm of a value for base 10. */ public /*sealed*/ interface Log10 extends UReturnsNullOnNullInput, UOperator1, Log10>, org.jooq.Field //permits // Log10 { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Log10 $value(Field newValue) { return $arg1(newValue); } } /** * The MOD operator. */ public /*sealed*/ interface Mod extends UReturnsNullOnNullInput, UOperator2, Field, Mod>, org.jooq.Field //permits // Mod { @NotNull default Field $dividend() { return $arg1(); } @CheckReturnValue @NotNull default Mod $dividend(Field newDividend) { return $arg1(newDividend); } @NotNull default Field $divisor() { return $arg2(); } @CheckReturnValue @NotNull default Mod $divisor(Field newDivisor) { return $arg2(newDivisor); } } /** * The MUL operator. */ public /*sealed*/ interface Mul extends UReturnsNullOnNullInput, UCommutativeOperator, Mul>, org.jooq.Field //permits // Mul {} /** * The PI function. *

* The π literal. */ public /*sealed*/ interface Pi extends UOperator0, org.jooq.Field //permits // Pi {} /** * The POWER operator. */ public /*sealed*/ interface Power extends UReturnsNullOnNullInput, UOperator2, Field, Power>, org.jooq.Field //permits // Power { @NotNull default Field $base() { return $arg1(); } @CheckReturnValue @NotNull default Power $base(Field newBase) { return $arg1(newBase); } @NotNull default Field $exponent() { return $arg2(); } @CheckReturnValue @NotNull default Power $exponent(Field newExponent) { return $arg2(newExponent); } } /** * The RADIANS function. *

* Turn a value in degrees to radians. */ public /*sealed*/ interface Radians extends UReturnsNullOnNullInput, UOperator1, Radians>, org.jooq.Field //permits // Radians { /** * The value in degrees. */ @NotNull default Field $degrees() { return $arg1(); } /** * The value in degrees. */ @CheckReturnValue @NotNull default Radians $degrees(Field newDegrees) { return $arg1(newDegrees); } } /** * The RAND function. *

* Get a random numeric value. */ public /*sealed*/ interface Rand extends UOperator0, org.jooq.Field //permits // Rand {} /** * The ROOT function. */ public /*sealed*/ interface Root extends UReturnsNullOnNullInput, UOperator2, Field, Root>, org.jooq.Field //permits // Root { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Root $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $degree() { return $arg2(); } @CheckReturnValue @NotNull default Root $degree(Field newDegree) { return $arg2(newDegree); } } /** * The ROUND function. *

* Round a numeric value to the nearest decimal precision. */ public /*sealed*/ interface Round extends UReturnsNullOnNullInput, UOperator2, Field, Round>, org.jooq.Field //permits // Round { /** * The number to be rounded. */ @NotNull default Field $value() { return $arg1(); } /** * The number to be rounded. */ @CheckReturnValue @NotNull default Round $value(Field newValue) { return $arg1(newValue); } /** * The decimals to round to. */ @Nullable default Field $decimals() { return $arg2(); } /** * The decimals to round to. */ @CheckReturnValue @NotNull default Round $decimals(Field newDecimals) { return $arg2(newDecimals); } } /** * The SHL operator. *

* Left shift all bits in a number */ public /*sealed*/ interface Shl extends UReturnsNullOnNullInput, UOperator2, Field, Shl>, org.jooq.Field //permits // Shl { /** * The number whose bits to shift left. */ @NotNull default Field $value() { return $arg1(); } /** * The number whose bits to shift left. */ @CheckReturnValue @NotNull default Shl $value(Field newValue) { return $arg1(newValue); } /** * The number of bits to shift. */ @NotNull default Field $count() { return $arg2(); } /** * The number of bits to shift. */ @CheckReturnValue @NotNull default Shl $count(Field newCount) { return $arg2(newCount); } } /** * The SHR operator. *

* Right shift all bits in a number */ public /*sealed*/ interface Shr extends UReturnsNullOnNullInput, UOperator2, Field, Shr>, org.jooq.Field //permits // Shr { /** * The number whose bits to shift right */ @NotNull default Field $value() { return $arg1(); } /** * The number whose bits to shift right */ @CheckReturnValue @NotNull default Shr $value(Field newValue) { return $arg1(newValue); } /** * The number of bits to shift. */ @NotNull default Field $count() { return $arg2(); } /** * The number of bits to shift. */ @CheckReturnValue @NotNull default Shr $count(Field newCount) { return $arg2(newCount); } } /** * The SIGN function. *

* Get the sign of a number and return it as any of +1, 0, -1. */ public /*sealed*/ interface Sign extends UReturnsNullOnNullInput, UOperator1, Sign>, org.jooq.Field //permits // Sign { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Sign $value(Field newValue) { return $arg1(newValue); } } /** * The SIN function. */ public /*sealed*/ interface Sin extends UReturnsNullOnNullInput, UOperator1, Sin>, org.jooq.Field //permits // Sin { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Sin $value(Field newValue) { return $arg1(newValue); } } /** * The SINH function. */ public /*sealed*/ interface Sinh extends UReturnsNullOnNullInput, UOperator1, Sinh>, org.jooq.Field //permits // Sinh { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Sinh $value(Field newValue) { return $arg1(newValue); } } /** * The SQRT function. */ public /*sealed*/ interface Sqrt extends UReturnsNullOnNullInput, UOperator1, Sqrt>, org.jooq.Field //permits // Sqrt { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Sqrt $value(Field newValue) { return $arg1(newValue); } } /** * The SQUARE function. */ public /*sealed*/ interface Square extends UReturnsNullOnNullInput, UOperator1, Square>, org.jooq.Field //permits // Square { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Square $value(Field newValue) { return $arg1(newValue); } } /** * The SUB operator. */ public /*sealed*/ interface Sub extends UReturnsNullOnNullInput, UOperator2, Field, Sub>, org.jooq.Field //permits // Sub {} /** * The TAN function. */ public /*sealed*/ interface Tan extends UReturnsNullOnNullInput, UOperator1, Tan>, org.jooq.Field //permits // Tan { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Tan $value(Field newValue) { return $arg1(newValue); } } /** * The TANH function. */ public /*sealed*/ interface Tanh extends UReturnsNullOnNullInput, UOperator1, Tanh>, org.jooq.Field //permits // Tanh { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Tanh $value(Field newValue) { return $arg1(newValue); } } /** * The TAU function. *

* The τ literal, or π, in a better world. */ public /*sealed*/ interface Tau extends UOperator0, org.jooq.Field //permits // Tau {} /** * The TRUNC function. *

* Truncate a number to a given number of decimals. */ public /*sealed*/ interface Trunc extends UReturnsNullOnNullInput, UOperator2, Field, Trunc>, org.jooq.Field //permits // Trunc { /** * The number to be truncated */ @NotNull default Field $value() { return $arg1(); } /** * The number to be truncated */ @CheckReturnValue @NotNull default Trunc $value(Field newValue) { return $arg1(newValue); } /** * The decimals to truncate to. */ @NotNull default Field $decimals() { return $arg2(); } /** * The decimals to truncate to. */ @CheckReturnValue @NotNull default Trunc $decimals(Field newDecimals) { return $arg2(newDecimals); } } /** * The WIDTH BUCKET function. *

* Divide a range into buckets of equal size. */ public /*sealed*/ interface WidthBucket extends UReturnsNullOnNullInput, UOperator4, Field, Field, Field, WidthBucket>, org.jooq.Field //permits // WidthBucket { /** * The value to divide into the range. */ @NotNull default Field $field() { return $arg1(); } /** * The value to divide into the range. */ @CheckReturnValue @NotNull default WidthBucket $field(Field newField) { return $arg1(newField); } /** * The lower bound of the range. */ @NotNull default Field $low() { return $arg2(); } /** * The lower bound of the range. */ @CheckReturnValue @NotNull default WidthBucket $low(Field newLow) { return $arg2(newLow); } /** * The upper bound of the range. */ @NotNull default Field $high() { return $arg3(); } /** * The upper bound of the range. */ @CheckReturnValue @NotNull default WidthBucket $high(Field newHigh) { return $arg3(newHigh); } /** * The number of buckets to produce. */ @NotNull default Field $buckets() { return $arg4(); } /** * The number of buckets to produce. */ @CheckReturnValue @NotNull default WidthBucket $buckets(Field newBuckets) { return $arg4(newBuckets); } } /** * The ASCII function. *

* The ASCII value of a character. */ public /*sealed*/ interface Ascii extends UReturnsNullOnNullInput, UOperator1, Ascii>, org.jooq.Field //permits // Ascii { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default Ascii $string(Field newString) { return $arg1(newString); } } /** * The BIT LENGTH function. *

* The length of a string in bits. */ public /*sealed*/ interface BitLength extends UReturnsNullOnNullInput, UOperator1, BitLength>, org.jooq.Field //permits // BitLength { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default BitLength $string(Field newString) { return $arg1(newString); } } /** * The CHAR LENGTH function. *

* The length of a string in characters. */ public /*sealed*/ interface CharLength extends UReturnsNullOnNullInput, UOperator1, CharLength>, org.jooq.Field //permits // CharLength { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default CharLength $string(Field newString) { return $arg1(newString); } } /** * The CHR function. */ public /*sealed*/ interface Chr extends UReturnsNullOnNullInput, UOperator1, Chr>, org.jooq.Field //permits // Chr { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Chr $value(Field newValue) { return $arg1(newValue); } } /** * The CONTAINS operator. *

* Convenience method for {@link Field#like(String, char)} including proper * adding of wildcards and escaping. *

* SQL: this like ('%' || escape(value, '\') || '%') escape '\' *

* Note: This also works with numbers, for instance * val(1133).contains(13) *

* If you're using {@link SQLDialect#POSTGRES}, then you can use this method * also to express the "ARRAY contains" operator. For example:


     * // Use this expression
     * val(new Integer[] { 1, 2, 3 }).contains(new Integer[] { 1, 2 })
     *
     * // ... to render this SQL
     * ARRAY[1, 2, 3] @> ARRAY[1, 2]
     * 
*

* Note, this does not correspond to the Oracle Text CONTAINS() * function. Refer to {@link OracleDSL#contains(Field, String)} instead. */ public /*sealed*/ interface Contains extends UReturnsNullOnNullInput, UOperator2, Field, Contains>, CompareCondition> //permits // Contains { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Contains $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $content() { return $arg2(); } @CheckReturnValue @NotNull default Contains $content(Field newContent) { return $arg2(newContent); } } /** * The CONTAINS IGNORE CASE operator. *

* Convenience method for {@link Field#likeIgnoreCase(String, char)} including * proper adding of wildcards and escaping. *

* This translates to * this ilike ('%' || escape(value, '\') || '%') escape '\' in * {@link SQLDialect#POSTGRES}, or to * lower(this) like lower(('%' || escape(value, '\') || '%') escape '\') * in all other dialects. */ public /*sealed*/ interface ContainsIgnoreCase extends UReturnsNullOnNullInput, UOperator2, Field, ContainsIgnoreCase>, CompareCondition> //permits // ContainsIgnoreCase { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default ContainsIgnoreCase $value(Field newValue) { return $arg1(newValue); } @NotNull default Field $content() { return $arg2(); } @CheckReturnValue @NotNull default ContainsIgnoreCase $content(Field newContent) { return $arg2(newContent); } } /** * The DIGITS function. */ public /*sealed*/ interface Digits extends UReturnsNullOnNullInput, UOperator1, Digits>, org.jooq.Field //permits // Digits { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default Digits $value(Field newValue) { return $arg1(newValue); } } /** * The ENDS WITH operator. *

* Convenience method for {@link Field#like(String, char)} including proper * adding of wildcards and escaping. *

* SQL: this like ('%' || escape(value, '\')) escape '\' *

* Note: This also works with numbers, for instance * val(1133).endsWith(33) */ public /*sealed*/ interface EndsWith extends UReturnsNullOnNullInput, UOperator2, Field, EndsWith>, CompareCondition> //permits // EndsWith { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default EndsWith $string(Field newString) { return $arg1(newString); } @NotNull default Field $suffix() { return $arg2(); } @CheckReturnValue @NotNull default EndsWith $suffix(Field newSuffix) { return $arg2(newSuffix); } } /** * The ENDS WITH IGNORE CASE operator. *

* Convenience method for {@link Field#like(String, char)} including proper * adding of wildcards and escaping. *

* SQL: lower(this) like ('%' || lower(escape(value, '\'))) escape '\' *

* Note: This also works with numbers, for instance * val(1133).endsWithIgnoreCase(33) */ public /*sealed*/ interface EndsWithIgnoreCase extends UReturnsNullOnNullInput, UOperator2, Field, EndsWithIgnoreCase>, CompareCondition> //permits // EndsWithIgnoreCase { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default EndsWithIgnoreCase $string(Field newString) { return $arg1(newString); } @NotNull default Field $suffix() { return $arg2(); } @CheckReturnValue @NotNull default EndsWithIgnoreCase $suffix(Field newSuffix) { return $arg2(newSuffix); } } /** * The LEFT function. *

* Get the left outermost characters from a string. */ public /*sealed*/ interface Left extends UReturnsNullOnNullInput, UOperator2, Field, Left>, org.jooq.Field //permits // Left { /** * The string whose characters are extracted. */ @NotNull default Field $string() { return $arg1(); } /** * The string whose characters are extracted. */ @CheckReturnValue @NotNull default Left $string(Field newString) { return $arg1(newString); } /** * The number of characters to extract from the string. */ @NotNull default Field $length() { return $arg2(); } /** * The number of characters to extract from the string. */ @CheckReturnValue @NotNull default Left $length(Field newLength) { return $arg2(newLength); } } /** * The LOWER function. *

* Turn a string into lower case. */ public /*sealed*/ interface Lower extends UReturnsNullOnNullInput, UOperator1, Lower>, org.jooq.Field //permits // Lower { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default Lower $string(Field newString) { return $arg1(newString); } } /** * The LPAD function. *

* Left-pad a string with a character (whitespace as default) for a number of times. */ public /*sealed*/ interface Lpad extends UReturnsNullOnNullInput, UOperator3, Field, Field, Lpad>, org.jooq.Field //permits // Lpad { /** * The string to be padded. */ @NotNull default Field $string() { return $arg1(); } /** * The string to be padded. */ @CheckReturnValue @NotNull default Lpad $string(Field newString) { return $arg1(newString); } /** * The maximum length to pad the string to. */ @NotNull default Field $length() { return $arg2(); } /** * The maximum length to pad the string to. */ @CheckReturnValue @NotNull default Lpad $length(Field newLength) { return $arg2(newLength); } /** * The padding character, if different from whitespace */ @Nullable default Field $character() { return $arg3(); } /** * The padding character, if different from whitespace */ @CheckReturnValue @NotNull default Lpad $character(Field newCharacter) { return $arg3(newCharacter); } } /** * The LTRIM function. *

* Trim characters (whitespace as default) from the left side of a string. */ public /*sealed*/ interface Ltrim extends UReturnsNullOnNullInput, UOperator2, Field, Ltrim>, org.jooq.Field //permits // Ltrim { /** * The string to be trimmed. */ @NotNull default Field $string() { return $arg1(); } /** * The string to be trimmed. */ @CheckReturnValue @NotNull default Ltrim $string(Field newString) { return $arg1(newString); } /** * The characters to be removed. */ @Nullable default Field $characters() { return $arg2(); } /** * The characters to be removed. */ @CheckReturnValue @NotNull default Ltrim $characters(Field newCharacters) { return $arg2(newCharacters); } } /** * The MD5 function. *

* Calculate an MD5 hash from a string. */ public /*sealed*/ interface Md5 extends UReturnsNullOnNullInput, UOperator1, Md5>, org.jooq.Field //permits // Md5 { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default Md5 $string(Field newString) { return $arg1(newString); } } /** * The OCTET LENGTH function. *

* The length of a string in octets. */ public /*sealed*/ interface OctetLength extends UReturnsNullOnNullInput, UOperator1, OctetLength>, org.jooq.Field //permits // OctetLength { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default OctetLength $string(Field newString) { return $arg1(newString); } } /** * The OVERLAY function. *

* Place a string on top of another string, replacing the original contents. */ public /*sealed*/ interface Overlay extends UReturnsNullOnNullInput, UOperator4, Field, Field, Field, Overlay>, org.jooq.Field //permits // Overlay { /** * The original string on top of which the overlay is placed. */ @NotNull default Field $in() { return $arg1(); } /** * The original string on top of which the overlay is placed. */ @CheckReturnValue @NotNull default Overlay $in(Field newIn) { return $arg1(newIn); } /** * The string that is being placed on top of the other string. */ @NotNull default Field $placing() { return $arg2(); } /** * The string that is being placed on top of the other string. */ @CheckReturnValue @NotNull default Overlay $placing(Field newPlacing) { return $arg2(newPlacing); } /** * The start index (1-based) starting from where the overlay is placed. */ @NotNull default Field $startIndex() { return $arg3(); } /** * The start index (1-based) starting from where the overlay is placed. */ @CheckReturnValue @NotNull default Overlay $startIndex(Field newStartIndex) { return $arg3(newStartIndex); } /** * The length in the original string that will be replaced, if different from the overlay length. */ @Nullable default Field $length() { return $arg4(); } /** * The length in the original string that will be replaced, if different from the overlay length. */ @CheckReturnValue @NotNull default Overlay $length(Field newLength) { return $arg4(newLength); } } /** * The POSITION function. *

* Search the position (1-based) of a substring in another string. */ public /*sealed*/ interface Position extends UReturnsNullOnNullInput, UOperator3, Field, Field, Position>, org.jooq.Field //permits // Position { /** * The string in which to search the substring. */ @NotNull default Field $in() { return $arg1(); } /** * The string in which to search the substring. */ @CheckReturnValue @NotNull default Position $in(Field newIn) { return $arg1(newIn); } /** * The substring to search for. */ @NotNull default Field $search() { return $arg2(); } /** * The substring to search for. */ @CheckReturnValue @NotNull default Position $search(Field newSearch) { return $arg2(newSearch); } /** * The start index (1-based) from which to start looking for the substring. */ @Nullable default Field $startIndex() { return $arg3(); } /** * The start index (1-based) from which to start looking for the substring. */ @CheckReturnValue @NotNull default Position $startIndex(Field newStartIndex) { return $arg3(newStartIndex); } } /** * The REPEAT function. *

* Repeat a string a number of times. */ public /*sealed*/ interface Repeat extends UReturnsNullOnNullInput, UOperator2, Field, Repeat>, org.jooq.Field //permits // Repeat { /** * The string to be repeated. */ @NotNull default Field $string() { return $arg1(); } /** * The string to be repeated. */ @CheckReturnValue @NotNull default Repeat $string(Field newString) { return $arg1(newString); } /** * The number of times to repeat the string. */ @NotNull default Field $count() { return $arg2(); } /** * The number of times to repeat the string. */ @CheckReturnValue @NotNull default Repeat $count(Field newCount) { return $arg2(newCount); } } /** * The REPLACE function. *

* Replace all occurrences of a substring in another string. */ public /*sealed*/ interface Replace extends UReturnsNullOnNullInput, UOperator3, Field, Field, Replace>, org.jooq.Field //permits // Replace { /** * The string in which to replace contents. */ @NotNull default Field $string() { return $arg1(); } /** * The string in which to replace contents. */ @CheckReturnValue @NotNull default Replace $string(Field newString) { return $arg1(newString); } /** * The substring to search for. */ @NotNull default Field $search() { return $arg2(); } /** * The substring to search for. */ @CheckReturnValue @NotNull default Replace $search(Field newSearch) { return $arg2(newSearch); } /** * The replacement for each substring, if not empty. */ @Nullable default Field $replace() { return $arg3(); } /** * The replacement for each substring, if not empty. */ @CheckReturnValue @NotNull default Replace $replace(Field newReplace) { return $arg3(newReplace); } } /** * The REVERSE function. *

* Reverse a string. */ public /*sealed*/ interface Reverse extends UReturnsNullOnNullInput, UOperator1, Reverse>, org.jooq.Field //permits // Reverse { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default Reverse $string(Field newString) { return $arg1(newString); } } /** * The RIGHT function. *

* Get the right outermost characters from a string. */ public /*sealed*/ interface Right extends UReturnsNullOnNullInput, UOperator2, Field, Right>, org.jooq.Field //permits // Right { /** * The string whose characters are extracted. */ @NotNull default Field $string() { return $arg1(); } /** * The string whose characters are extracted. */ @CheckReturnValue @NotNull default Right $string(Field newString) { return $arg1(newString); } /** * The number of characters to extract from the string. */ @NotNull default Field $length() { return $arg2(); } /** * The number of characters to extract from the string. */ @CheckReturnValue @NotNull default Right $length(Field newLength) { return $arg2(newLength); } } /** * The RPAD function. *

* Right-pad a string with a character (whitespace as default) for a number of times. */ public /*sealed*/ interface Rpad extends UReturnsNullOnNullInput, UOperator3, Field, Field, Rpad>, org.jooq.Field //permits // Rpad { /** * The string to be padded. */ @NotNull default Field $string() { return $arg1(); } /** * The string to be padded. */ @CheckReturnValue @NotNull default Rpad $string(Field newString) { return $arg1(newString); } /** * The maximum length to pad the string to. */ @NotNull default Field $length() { return $arg2(); } /** * The maximum length to pad the string to. */ @CheckReturnValue @NotNull default Rpad $length(Field newLength) { return $arg2(newLength); } /** * The padding character, if different from whitespace */ @Nullable default Field $character() { return $arg3(); } /** * The padding character, if different from whitespace */ @CheckReturnValue @NotNull default Rpad $character(Field newCharacter) { return $arg3(newCharacter); } } /** * The RTRIM function. *

* Trim characters (whitespace as default) from the right side of a string. */ public /*sealed*/ interface Rtrim extends UReturnsNullOnNullInput, UOperator2, Field, Rtrim>, org.jooq.Field //permits // Rtrim { /** * The string to be trimmed. */ @NotNull default Field $string() { return $arg1(); } /** * The string to be trimmed. */ @CheckReturnValue @NotNull default Rtrim $string(Field newString) { return $arg1(newString); } /** * The characters to be removed. */ @Nullable default Field $characters() { return $arg2(); } /** * The characters to be removed. */ @CheckReturnValue @NotNull default Rtrim $characters(Field newCharacters) { return $arg2(newCharacters); } } /** * The SPACE function. *

* Get a string of spaces of a given length. */ public /*sealed*/ interface Space extends UReturnsNullOnNullInput, UOperator1, Space>, org.jooq.Field //permits // Space { /** * The number of spaces to produce. */ @NotNull default Field $count() { return $arg1(); } /** * The number of spaces to produce. */ @CheckReturnValue @NotNull default Space $count(Field newCount) { return $arg1(newCount); } } /** * The SPLIT PART function. *

* Split a string into tokens, and retrieve the nth token. */ public /*sealed*/ interface SplitPart extends UReturnsNullOnNullInput, UOperator3, Field, Field, SplitPart>, org.jooq.Field //permits // SplitPart { /** * The string to be split into parts. */ @NotNull default Field $string() { return $arg1(); } /** * The string to be split into parts. */ @CheckReturnValue @NotNull default SplitPart $string(Field newString) { return $arg1(newString); } /** * The delimiter used for splitting. */ @NotNull default Field $delimiter() { return $arg2(); } /** * The delimiter used for splitting. */ @CheckReturnValue @NotNull default SplitPart $delimiter(Field newDelimiter) { return $arg2(newDelimiter); } /** * The token number (1-based). */ @NotNull default Field $n() { return $arg3(); } /** * The token number (1-based). */ @CheckReturnValue @NotNull default SplitPart $n(Field newN) { return $arg3(newN); } } /** * The STARTS WITH operator. *

* Convenience method for {@link Field#like(String, char)} including proper * adding of wildcards and escaping. *

* SQL: this like (escape(value, '\') || '%') escape '\' *

* Note: This also works with numbers, for instance * val(1133).startsWith(11) */ public /*sealed*/ interface StartsWith extends UReturnsNullOnNullInput, UOperator2, Field, StartsWith>, CompareCondition> //permits // StartsWith { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default StartsWith $string(Field newString) { return $arg1(newString); } @NotNull default Field $prefix() { return $arg2(); } @CheckReturnValue @NotNull default StartsWith $prefix(Field newPrefix) { return $arg2(newPrefix); } } /** * The STARTS WITH IGNORE CASE operator. *

* Convenience method for {@link Field#like(String, char)} including proper * adding of wildcards and escaping. *

* SQL: lower(this) like (lower(escape(value, '\')) || '%') escape '\' *

* Note: This also works with numbers, for instance * val(1133).startsWithIgnoreCase(11) */ public /*sealed*/ interface StartsWithIgnoreCase extends UReturnsNullOnNullInput, UOperator2, Field, StartsWithIgnoreCase>, CompareCondition> //permits // StartsWithIgnoreCase { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default StartsWithIgnoreCase $string(Field newString) { return $arg1(newString); } @NotNull default Field $prefix() { return $arg2(); } @CheckReturnValue @NotNull default StartsWithIgnoreCase $prefix(Field newPrefix) { return $arg2(newPrefix); } } /** * The SUBSTRING function. *

* Get a substring of a string, from a given position. */ public /*sealed*/ interface Substring extends UReturnsNullOnNullInput, UOperator3, Field, Field, Substring>, org.jooq.Field //permits // Substring { /** * The string from which to get the substring. */ @NotNull default Field $string() { return $arg1(); } /** * The string from which to get the substring. */ @CheckReturnValue @NotNull default Substring $string(Field newString) { return $arg1(newString); } /** * The position (1-based) from which to get the substring. */ @NotNull default Field $startingPosition() { return $arg2(); } /** * The position (1-based) from which to get the substring. */ @CheckReturnValue @NotNull default Substring $startingPosition(Field newStartingPosition) { return $arg2(newStartingPosition); } /** * The maximum length of the substring. */ @Nullable default Field $length() { return $arg3(); } /** * The maximum length of the substring. */ @CheckReturnValue @NotNull default Substring $length(Field newLength) { return $arg3(newLength); } } /** * The SUBSTRING INDEX function. *

* Get a substring of a string, from the beginning until the nth occurrence of a substring. */ public /*sealed*/ interface SubstringIndex extends UReturnsNullOnNullInput, UOperator3, Field, Field, SubstringIndex>, org.jooq.Field //permits // SubstringIndex { /** * The string from which to get the substring. */ @NotNull default Field $string() { return $arg1(); } /** * The string from which to get the substring. */ @CheckReturnValue @NotNull default SubstringIndex $string(Field newString) { return $arg1(newString); } /** * The delimiter. */ @NotNull default Field $delimiter() { return $arg2(); } /** * The delimiter. */ @CheckReturnValue @NotNull default SubstringIndex $delimiter(Field newDelimiter) { return $arg2(newDelimiter); } /** * The number of occurrences of the delimiter. */ @NotNull default Field $n() { return $arg3(); } /** * The number of occurrences of the delimiter. */ @CheckReturnValue @NotNull default SubstringIndex $n(Field newN) { return $arg3(newN); } } /** * The TO CHAR function. *

* Format an arbitrary value as a string. */ public /*sealed*/ interface ToChar extends UReturnsNullOnNullInput, UOperator2, Field, ToChar>, org.jooq.Field //permits // ToChar { /** * The value to be formatted. */ @NotNull default Field $value() { return $arg1(); } /** * The value to be formatted. */ @CheckReturnValue @NotNull default ToChar $value(Field newValue) { return $arg1(newValue); } /** * The vendor-specific formatting string. */ @Nullable default Field $formatMask() { return $arg2(); } /** * The vendor-specific formatting string. */ @CheckReturnValue @NotNull default ToChar $formatMask(Field newFormatMask) { return $arg2(newFormatMask); } } /** * The TO DATE function. *

* Parse a string-formatted date value to a date. */ public /*sealed*/ interface ToDate extends UReturnsNullOnNullInput, UOperator2, Field, ToDate>, org.jooq.Field //permits // ToDate { /** * The formatted DATE value. */ @NotNull default Field $value() { return $arg1(); } /** * The formatted DATE value. */ @CheckReturnValue @NotNull default ToDate $value(Field newValue) { return $arg1(newValue); } /** * The vendor-specific formatting string. */ @NotNull default Field $formatMask() { return $arg2(); } /** * The vendor-specific formatting string. */ @CheckReturnValue @NotNull default ToDate $formatMask(Field newFormatMask) { return $arg2(newFormatMask); } } /** * The TO HEX function. *

* Format a number to its hex value. */ public /*sealed*/ interface ToHex extends UReturnsNullOnNullInput, UOperator1, ToHex>, org.jooq.Field //permits // ToHex { @NotNull default Field $value() { return $arg1(); } @CheckReturnValue @NotNull default ToHex $value(Field newValue) { return $arg1(newValue); } } /** * The TO TIMESTAMP function. *

* Parse a string-formatted timestamp value to a timestamp. */ public /*sealed*/ interface ToTimestamp extends UReturnsNullOnNullInput, UOperator2, Field, ToTimestamp>, org.jooq.Field //permits // ToTimestamp { /** * The formatted TIMESTAMP value. */ @NotNull default Field $value() { return $arg1(); } /** * The formatted TIMESTAMP value. */ @CheckReturnValue @NotNull default ToTimestamp $value(Field newValue) { return $arg1(newValue); } /** * The vendor-specific formatting string. */ @NotNull default Field $formatMask() { return $arg2(); } /** * The vendor-specific formatting string. */ @CheckReturnValue @NotNull default ToTimestamp $formatMask(Field newFormatMask) { return $arg2(newFormatMask); } } /** * The TRANSLATE function. *

* Translate a set of characters to another set of characters in a string. */ public /*sealed*/ interface Translate extends UReturnsNullOnNullInput, UOperator3, Field, Field, Translate>, org.jooq.Field //permits // Translate { /** * The string to translate. */ @NotNull default Field $string() { return $arg1(); } /** * The string to translate. */ @CheckReturnValue @NotNull default Translate $string(Field newString) { return $arg1(newString); } /** * The set of source characters. */ @NotNull default Field $from() { return $arg2(); } /** * The set of source characters. */ @CheckReturnValue @NotNull default Translate $from(Field newFrom) { return $arg2(newFrom); } /** * The set of target characters, matched with source characters by position. */ @NotNull default Field $to() { return $arg3(); } /** * The set of target characters, matched with source characters by position. */ @CheckReturnValue @NotNull default Translate $to(Field newTo) { return $arg3(newTo); } } /** * The TRIM function. *

* Trim characters (whitespace as default) from both sides of a string. */ public /*sealed*/ interface Trim extends UReturnsNullOnNullInput, UOperator2, Field, Trim>, org.jooq.Field //permits // Trim { /** * The string to be trimmed. */ @NotNull default Field $string() { return $arg1(); } /** * The string to be trimmed. */ @CheckReturnValue @NotNull default Trim $string(Field newString) { return $arg1(newString); } /** * The characters to be removed. */ @Nullable default Field $characters() { return $arg2(); } /** * The characters to be removed. */ @CheckReturnValue @NotNull default Trim $characters(Field newCharacters) { return $arg2(newCharacters); } } /** * The UPPER function. *

* Turn a string into upper case. */ public /*sealed*/ interface Upper extends UReturnsNullOnNullInput, UOperator1, Upper>, org.jooq.Field //permits // Upper { @NotNull default Field $string() { return $arg1(); } @CheckReturnValue @NotNull default Upper $string(Field newString) { return $arg1(newString); } } /** * The UUID function. *

* Generate a random UUID. */ public /*sealed*/ interface Uuid extends UOperator0, org.jooq.Field //permits // Uuid {} /** * The BIN TO UUID function. *

* Convert a {@link SQLDataType#BINARY} representation of a UUID to a {@link SQLDataType#UUID} * representation. */ public /*sealed*/ interface BinToUuid extends UReturnsNullOnNullInput, UOperator1, BinToUuid>, org.jooq.Field //permits // BinToUuid { @NotNull default Field $bytes() { return $arg1(); } @CheckReturnValue @NotNull default BinToUuid $bytes(Field newBytes) { return $arg1(newBytes); } } /** * The UUID TO BIN function. *

* Convert a {@link SQLDataType#BINARY} representation of a UUID to a {@link SQLDataType#UUID} * representation. */ public /*sealed*/ interface UuidToBin extends UReturnsNullOnNullInput, UOperator1, UuidToBin>, org.jooq.Field //permits // UuidToBin { @NotNull default Field $uuid() { return $arg1(); } @CheckReturnValue @NotNull default UuidToBin $uuid(Field newUuid) { return $arg1(newUuid); } } /** * The BINARY BIT LENGTH function. *

* The length of a binary string in bits. */ public /*sealed*/ interface BinaryBitLength extends UReturnsNullOnNullInput, UOperator1, BinaryBitLength>, org.jooq.Field //permits // BinaryBitLength { @NotNull default Field $bytes() { return $arg1(); } @CheckReturnValue @NotNull default BinaryBitLength $bytes(Field newBytes) { return $arg1(newBytes); } } /** * The BINARY CONCAT function. *

* The concatenation of binary strings. */ public /*sealed*/ interface BinaryConcat extends UReturnsNullOnNullInput, UOperator2, Field, BinaryConcat>, org.jooq.Field //permits // BinaryConcat { /** * The first binary string. */ @NotNull default Field $bytes1() { return $arg1(); } /** * The first binary string. */ @CheckReturnValue @NotNull default BinaryConcat $bytes1(Field newBytes1) { return $arg1(newBytes1); } /** * The second binary string. */ @NotNull default Field $bytes2() { return $arg2(); } /** * The second binary string. */ @CheckReturnValue @NotNull default BinaryConcat $bytes2(Field newBytes2) { return $arg2(newBytes2); } } /** * The BINARY LENGTH function. *

* The length of a binary string in bytes. */ public /*sealed*/ interface BinaryLength extends UReturnsNullOnNullInput, UOperator1, BinaryLength>, org.jooq.Field //permits // BinaryLength { @NotNull default Field $bytes() { return $arg1(); } @CheckReturnValue @NotNull default BinaryLength $bytes(Field newBytes) { return $arg1(newBytes); } } /** * The BINARY LTRIM function. *

* Trim bytes from the left side of a binary string. */ public /*sealed*/ interface BinaryLtrim extends UReturnsNullOnNullInput, UOperator2, Field, BinaryLtrim>, org.jooq.Field //permits // BinaryLtrim { /** * The binary string to be trimmed. */ @NotNull default Field $bytes() { return $arg1(); } /** * The binary string to be trimmed. */ @CheckReturnValue @NotNull default BinaryLtrim $bytes(Field newBytes) { return $arg1(newBytes); } /** * The binary characters to be removed. */ @NotNull default Field $characters() { return $arg2(); } /** * The binary characters to be removed. */ @CheckReturnValue @NotNull default BinaryLtrim $characters(Field newCharacters) { return $arg2(newCharacters); } } /** * The BINARY MD5 function. *

* Calculate an MD5 hash from a binary string. */ public /*sealed*/ interface BinaryMd5 extends UReturnsNullOnNullInput, UOperator1, BinaryMd5>, org.jooq.Field //permits // BinaryMd5 { @NotNull default Field $bytes() { return $arg1(); } @CheckReturnValue @NotNull default BinaryMd5 $bytes(Field newBytes) { return $arg1(newBytes); } } /** * The BINARY OCTET LENGTH function. *

* The length of a binary string in octets. */ public /*sealed*/ interface BinaryOctetLength extends UReturnsNullOnNullInput, UOperator1, BinaryOctetLength>, org.jooq.Field //permits // BinaryOctetLength { @NotNull default Field $bytes() { return $arg1(); } @CheckReturnValue @NotNull default BinaryOctetLength $bytes(Field newBytes) { return $arg1(newBytes); } } /** * The BINARY OVERLAY function. *

* Place a binary string on top of another binary string, replacing the original contents. */ public /*sealed*/ interface BinaryOverlay extends UReturnsNullOnNullInput, UOperator4, Field, Field, Field, BinaryOverlay>, org.jooq.Field //permits // BinaryOverlay { /** * The original binary string on top of which the overlay is placed. */ @NotNull default Field $in() { return $arg1(); } /** * The original binary string on top of which the overlay is placed. */ @CheckReturnValue @NotNull default BinaryOverlay $in(Field newIn) { return $arg1(newIn); } /** * The binary string that is being placed on top of the other binary string. */ @NotNull default Field $placing() { return $arg2(); } /** * The binary string that is being placed on top of the other binary string. */ @CheckReturnValue @NotNull default BinaryOverlay $placing(Field newPlacing) { return $arg2(newPlacing); } /** * The start index (1-based) starting from where the overlay is placed. */ @NotNull default Field $startIndex() { return $arg3(); } /** * The start index (1-based) starting from where the overlay is placed. */ @CheckReturnValue @NotNull default BinaryOverlay $startIndex(Field newStartIndex) { return $arg3(newStartIndex); } /** * The length in the original string that will be replaced, if different from the overlay length. */ @Nullable default Field $length() { return $arg4(); } /** * The length in the original string that will be replaced, if different from the overlay length. */ @CheckReturnValue @NotNull default BinaryOverlay $length(Field newLength) { return $arg4(newLength); } } /** * The BINARY POSITION function. *

* Search the position (1-based) of a substring in another string. */ public /*sealed*/ interface BinaryPosition extends UReturnsNullOnNullInput, UOperator3, Field, Field, BinaryPosition>, org.jooq.Field //permits // BinaryPosition { /** * The string in which to search the substring. */ @NotNull default Field $in() { return $arg1(); } /** * The string in which to search the substring. */ @CheckReturnValue @NotNull default BinaryPosition $in(Field newIn) { return $arg1(newIn); } /** * The substring to search for. */ @NotNull default Field $search() { return $arg2(); } /** * The substring to search for. */ @CheckReturnValue @NotNull default BinaryPosition $search(Field newSearch) { return $arg2(newSearch); } /** * The start index (1-based) from which to start looking for the substring. */ @Nullable default Field $startIndex() { return $arg3(); } /** * The start index (1-based) from which to start looking for the substring. */ @CheckReturnValue @NotNull default BinaryPosition $startIndex(Field newStartIndex) { return $arg3(newStartIndex); } } /** * The BINARY RTRIM function. *

* Trim bytes from the right side of a binary string. */ public /*sealed*/ interface BinaryRtrim extends UReturnsNullOnNullInput, UOperator2, Field, BinaryRtrim>, org.jooq.Field //permits // BinaryRtrim { /** * The binary string to be trimmed. */ @NotNull default Field $bytes() { return $arg1(); } /** * The binary string to be trimmed. */ @CheckReturnValue @NotNull default BinaryRtrim $bytes(Field newBytes) { return $arg1(newBytes); } /** * The characters to be removed. */ @NotNull default Field $characters() { return $arg2(); } /** * The characters to be removed. */ @CheckReturnValue @NotNull default BinaryRtrim $characters(Field newCharacters) { return $arg2(newCharacters); } } /** * The BINARY SUBSTRING function. *

* Get a substring of a binary string, from a given position. */ public /*sealed*/ interface BinarySubstring extends UReturnsNullOnNullInput, UOperator3, Field, Field, BinarySubstring>, org.jooq.Field //permits // BinarySubstring { /** * The binary string from which to get the substring. */ @NotNull default Field $string() { return $arg1(); } /** * The binary string from which to get the substring. */ @CheckReturnValue @NotNull default BinarySubstring $string(Field newString) { return $arg1(newString); } /** * The position (1-based) from which to get the substring. */ @NotNull default Field $startingPosition() { return $arg2(); } /** * The position (1-based) from which to get the substring. */ @CheckReturnValue @NotNull default BinarySubstring $startingPosition(Field newStartingPosition) { return $arg2(newStartingPosition); } /** * The maximum length of the substring. */ @Nullable default Field $length() { return $arg3(); } /** * The maximum length of the substring. */ @CheckReturnValue @NotNull default BinarySubstring $length(Field newLength) { return $arg3(newLength); } } /** * The BINARY TRIM function. *

* Trim characters from both sides of a string. */ public /*sealed*/ interface BinaryTrim extends UReturnsNullOnNullInput, UOperator2, Field, BinaryTrim>, org.jooq.Field //permits // BinaryTrim { /** * The binary string to be trimmed. */ @NotNull default Field $bytes() { return $arg1(); } /** * The binary string to be trimmed. */ @CheckReturnValue @NotNull default BinaryTrim $bytes(Field newBytes) { return $arg1(newBytes); } /** * The characters to be removed. */ @NotNull default Field $characters() { return $arg2(); } /** * The characters to be removed. */ @CheckReturnValue @NotNull default BinaryTrim $characters(Field newCharacters) { return $arg2(newCharacters); } } /** * The DATE ADD function. *

* Add an interval to a date. */ public /*sealed*/ interface DateAdd extends UReturnsNullOnNullInput, UOperator3, Field, DatePart, DateAdd>, org.jooq.Field //permits // DateAdd { /** * The date to add an interval to */ @NotNull default Field $date() { return $arg1(); } /** * The date to add an interval to */ @CheckReturnValue @NotNull default DateAdd $date(Field newDate) { return $arg1(newDate); } /** * The interval to add to the date */ @NotNull default Field $interval() { return $arg2(); } /** * The interval to add to the date */ @CheckReturnValue @NotNull default DateAdd $interval(Field newInterval) { return $arg2(newInterval); } /** * The date part describing the interval */ @Nullable default DatePart $datePart() { return $arg3(); } /** * The date part describing the interval */ @CheckReturnValue @NotNull default DateAdd $datePart(DatePart newDatePart) { return $arg3(newDatePart); } } /** * The CARDINALITY function. *

* Calculate the cardinality of an array field. */ public /*sealed*/ interface Cardinality extends UReturnsNullOnNullInput, UOperator1, Cardinality>, org.jooq.Field //permits // Cardinality { @NotNull default Field $array() { return $arg1(); } @CheckReturnValue @NotNull default Cardinality $array(Field newArray) { return $arg1(newArray); } } /** * The ARRAY GET function. *

* Get an array element at a given index (1 based). */ public /*sealed*/ interface ArrayGet extends UReturnsNullOnNullInput, UOperator2, Field, ArrayGet>, org.jooq.Field //permits // ArrayGet { @NotNull default Field $array() { return $arg1(); } @CheckReturnValue @NotNull default ArrayGet $array(Field newArray) { return $arg1(newArray); } @NotNull default Field $index() { return $arg2(); } @CheckReturnValue @NotNull default ArrayGet $index(Field newIndex) { return $arg2(newIndex); } } /** * The ARRAY CONCAT function. *

* Concatenate two arrays. */ public /*sealed*/ interface ArrayConcat extends UReturnsNullOnNullInput, UOperator2, Field, ArrayConcat>, org.jooq.Field //permits // ArrayConcat { /** * The first array. */ @NotNull default Field $array1() { return $arg1(); } /** * The first array. */ @CheckReturnValue @NotNull default ArrayConcat $array1(Field newArray1) { return $arg1(newArray1); } /** * The second array. */ @NotNull default Field $array2() { return $arg2(); } /** * The second array. */ @CheckReturnValue @NotNull default ArrayConcat $array2(Field newArray2) { return $arg2(newArray2); } } /** * The ARRAY APPEND function. *

* Append an element to an array. */ public /*sealed*/ interface ArrayAppend extends UOperator2, Field, ArrayAppend>, org.jooq.Field //permits // ArrayAppend { /** * The array to which to append an element. */ @NotNull default Field $array() { return $arg1(); } /** * The array to which to append an element. */ @CheckReturnValue @NotNull default ArrayAppend $array(Field newArray) { return $arg1(newArray); } /** * The element to append to the array. */ @NotNull default Field $append() { return $arg2(); } /** * The element to append to the array. */ @CheckReturnValue @NotNull default ArrayAppend $append(Field newAppend) { return $arg2(newAppend); } } /** * The ARRAY PREPEND function. *

* Prepend an element to an array. */ public /*sealed*/ interface ArrayPrepend extends UOperator2, Field, ArrayPrepend>, org.jooq.Field //permits // ArrayPrepend { /** * The element to prepend to the array. */ @NotNull default Field $prepend() { return $arg1(); } /** * The element to prepend to the array. */ @CheckReturnValue @NotNull default ArrayPrepend $prepend(Field newPrepend) { return $arg1(newPrepend); } /** * The array to which to prepend an element. */ @NotNull default Field $array() { return $arg2(); } /** * The array to which to prepend an element. */ @CheckReturnValue @NotNull default ArrayPrepend $array(Field newArray) { return $arg2(newArray); } } /** * The ARRAY OVERLAP function. *

* Check if 2 arrays overlap. */ public /*sealed*/ interface ArrayOverlap extends UReturnsNullOnNullInput, UOperator2, Field, ArrayOverlap>, org.jooq.Condition //permits // ArrayOverlap { /** * The first array. */ @NotNull default Field $array1() { return $arg1(); } /** * The first array. */ @CheckReturnValue @NotNull default ArrayOverlap $array1(Field newArray1) { return $arg1(newArray1); } /** * The second array. */ @NotNull default Field $array2() { return $arg2(); } /** * The second array. */ @CheckReturnValue @NotNull default ArrayOverlap $array2(Field newArray2) { return $arg2(newArray2); } } /** * The ARRAY REMOVE function. *

* Remove an element from an array. */ public /*sealed*/ interface ArrayRemove extends UOperator2, Field, ArrayRemove>, org.jooq.Field //permits // ArrayRemove { /** * The array whose elements are to be removed. */ @NotNull default Field $array() { return $arg1(); } /** * The array whose elements are to be removed. */ @CheckReturnValue @NotNull default ArrayRemove $array(Field newArray) { return $arg1(newArray); } /** * The array element that should be removed. */ @NotNull default Field $remove() { return $arg2(); } /** * The array element that should be removed. */ @CheckReturnValue @NotNull default ArrayRemove $remove(Field newRemove) { return $arg2(newRemove); } } /** * The ARRAY REPLACE function. *

* Replace an element in an array. */ public /*sealed*/ interface ArrayReplace extends UOperator3, Field, Field, ArrayReplace>, org.jooq.Field //permits // ArrayReplace { /** * The array whose elements are to be replaced. */ @NotNull default Field $array() { return $arg1(); } /** * The array whose elements are to be replaced. */ @CheckReturnValue @NotNull default ArrayReplace $array(Field newArray) { return $arg1(newArray); } /** * The expression to search for in the array. */ @NotNull default Field $search() { return $arg2(); } /** * The expression to search for in the array. */ @CheckReturnValue @NotNull default ArrayReplace $search(Field newSearch) { return $arg2(newSearch); } /** * The value to replace a value by. */ @NotNull default Field $replace() { return $arg3(); } /** * The value to replace a value by. */ @CheckReturnValue @NotNull default ArrayReplace $replace(Field newReplace) { return $arg3(newReplace); } } /** * The ARRAY TO STRING function. *

* Join array elements into a string. */ public /*sealed*/ interface ArrayToString extends UOperator3, Field, Field, ArrayToString>, org.jooq.Field //permits // ArrayToString { /** * The array whose elements are joined */ @NotNull default Field $array() { return $arg1(); } /** * The array whose elements are joined */ @CheckReturnValue @NotNull default ArrayToString $array(Field newArray) { return $arg1(newArray); } /** * The delimiter to place between elements */ @NotNull default Field $delimiter() { return $arg2(); } /** * The delimiter to place between elements */ @CheckReturnValue @NotNull default ArrayToString $delimiter(Field newDelimiter) { return $arg2(newDelimiter); } /** * The NULL encoding */ @Nullable default Field $nullString() { return $arg3(); } /** * The NULL encoding */ @CheckReturnValue @NotNull default ArrayToString $nullString(Field newNullString) { return $arg3(newNullString); } } /** * The ARRAY FILTER function. *

* Filter elements out of an array. */ public /*sealed*/ interface ArrayFilter extends UOperator2, Lambda1, Condition>, ArrayFilter>, org.jooq.Field //permits // ArrayFilter { /** * The array whose elements are filtered. */ @NotNull default Field $array() { return $arg1(); } /** * The array whose elements are filtered. */ @CheckReturnValue @NotNull default ArrayFilter $array(Field newArray) { return $arg1(newArray); } /** * A predicate defining which elements to keep in the array. */ @NotNull default Lambda1, Condition> $predicate() { return $arg2(); } /** * A predicate defining which elements to keep in the array. */ @CheckReturnValue @NotNull default ArrayFilter $predicate(Lambda1, Condition> newPredicate) { return $arg2(newPredicate); } } /** * The ARRAY MAP function. *

* Map elements of an array. */ public /*sealed*/ interface ArrayMap extends UOperator2, Lambda1, Field>, ArrayMap>, org.jooq.Field //permits // ArrayMap { /** * The array whose elements are mapped. */ @NotNull default Field $array() { return $arg1(); } /** * The array whose elements are mapped. */ @CheckReturnValue @NotNull default ArrayMap $array(Field newArray) { return $arg1(newArray); } /** * The function that defines the mapping between source elements and result elements. */ @NotNull default Lambda1, Field> $mapper() { return $arg2(); } /** * The function that defines the mapping between source elements and result elements. */ @CheckReturnValue @NotNull default ArrayMap $mapper(Lambda1, Field> newMapper) { return $arg2(newMapper); } } /** * The ARRAY ALL MATCH function. *

* Check if all elements of an array match a given predicate. */ public /*sealed*/ interface ArrayAllMatch extends UOperator2, Lambda1, Condition>, ArrayAllMatch>, org.jooq.Condition //permits // ArrayAllMatch { /** * The array to be checked. */ @NotNull default Field $array() { return $arg1(); } /** * The array to be checked. */ @CheckReturnValue @NotNull default ArrayAllMatch $array(Field newArray) { return $arg1(newArray); } /** * The predicate that must be true for all array elements. */ @NotNull default Lambda1, Condition> $predicate() { return $arg2(); } /** * The predicate that must be true for all array elements. */ @CheckReturnValue @NotNull default ArrayAllMatch $predicate(Lambda1, Condition> newPredicate) { return $arg2(newPredicate); } } /** * The ARRAY ANY MATCH function. *

* Check if any elements of an array match a given predicate. */ public /*sealed*/ interface ArrayAnyMatch extends UOperator2, Lambda1, Condition>, ArrayAnyMatch>, org.jooq.Condition //permits // ArrayAnyMatch { /** * The array to be checked. */ @NotNull default Field $array() { return $arg1(); } /** * The array to be checked. */ @CheckReturnValue @NotNull default ArrayAnyMatch $array(Field newArray) { return $arg1(newArray); } /** * The predicate that must be true for at least 1 array element */ @NotNull default Lambda1, Condition> $predicate() { return $arg2(); } /** * The predicate that must be true for at least 1 array element */ @CheckReturnValue @NotNull default ArrayAnyMatch $predicate(Lambda1, Condition> newPredicate) { return $arg2(newPredicate); } } /** * The ARRAY NONE MATCH function. *

* Check if none of the elements of an array match a given predicate. */ public /*sealed*/ interface ArrayNoneMatch extends UOperator2, Lambda1, Condition>, ArrayNoneMatch>, org.jooq.Condition //permits // ArrayNoneMatch { /** * The array to be checked. */ @NotNull default Field $array() { return $arg1(); } /** * The array to be checked. */ @CheckReturnValue @NotNull default ArrayNoneMatch $array(Field newArray) { return $arg1(newArray); } /** * The predicate that must be false for all elements. */ @NotNull default Lambda1, Condition> $predicate() { return $arg2(); } /** * The predicate that must be false for all elements. */ @CheckReturnValue @NotNull default ArrayNoneMatch $predicate(Lambda1, Condition> newPredicate) { return $arg2(newPredicate); } } /** * The STRING TO ARRAY function. *

* Split a string into array elements. */ public /*sealed*/ interface StringToArray extends UOperator3, Field, Field, StringToArray>, org.jooq.Field //permits // StringToArray { /** * The string to split */ @NotNull default Field $string() { return $arg1(); } /** * The string to split */ @CheckReturnValue @NotNull default StringToArray $string(Field newString) { return $arg1(newString); } /** * The delimiter to parse between elements */ @NotNull default Field $delimiter() { return $arg2(); } /** * The delimiter to parse between elements */ @CheckReturnValue @NotNull default StringToArray $delimiter(Field newDelimiter) { return $arg2(newDelimiter); } /** * The NULL encoding */ @Nullable default Field $nullString() { return $arg3(); } /** * The NULL encoding */ @CheckReturnValue @NotNull default StringToArray $nullString(Field newNullString) { return $arg3(newNullString); } } /** * The NVL function. *

* Return the first non-null argument. */ public /*sealed*/ interface Nvl extends UOperator2, Field, Nvl>, org.jooq.Field //permits // Nvl { /** * The nullable value. */ @NotNull default Field $value() { return $arg1(); } /** * The nullable value. */ @CheckReturnValue @NotNull default Nvl $value(Field newValue) { return $arg1(newValue); } /** * The default value if the other value is null. */ @NotNull default Field $defaultValue() { return $arg2(); } /** * The default value if the other value is null. */ @CheckReturnValue @NotNull default Nvl $defaultValue(Field newDefaultValue) { return $arg2(newDefaultValue); } } /** * The NULLIF function. */ public /*sealed*/ interface Nullif extends UOperator2, Field, Nullif>, org.jooq.Field //permits // Nullif { /** * The result value if the other value is not equal. */ @NotNull default Field $value() { return $arg1(); } /** * The result value if the other value is not equal. */ @CheckReturnValue @NotNull default Nullif $value(Field newValue) { return $arg1(newValue); } /** * The value to compare the result value with. */ @NotNull default Field $other() { return $arg2(); } /** * The value to compare the result value with. */ @CheckReturnValue @NotNull default Nullif $other(Field newOther) { return $arg2(newOther); } } /** * The TRY CAST function. */ public /*sealed*/ interface TryCast extends UOperator2, DataType, TryCast>, org.jooq.Field //permits // TryCast { /** * The value to be cast to a data type */ @NotNull default Field $value() { return $arg1(); } /** * The value to be cast to a data type */ @CheckReturnValue @NotNull default TryCast $value(Field newValue) { return $arg1(newValue); } /** * The data type to try to cast the value to */ @Override @NotNull default DataType $dataType() { return $arg2(); } /** * The data type to try to cast the value to */ @CheckReturnValue @NotNull default TryCast $dataType(DataType newDataType) { return $arg2(newDataType); } } /** * The CURRENT CATALOG function. *

* The CURRENT_CATALOG of the current session */ public /*sealed*/ interface CurrentCatalog extends UOperator0, org.jooq.Field //permits // CurrentCatalog {} /** * The CURRENT SCHEMA function. *

* The CURRENT_SCHEMA of the current session */ public /*sealed*/ interface CurrentSchema extends UOperator0, org.jooq.Field //permits // CurrentSchema {} /** * The CURRENT USER function. *

* The CURRENT_USER of the current session with the database */ public /*sealed*/ interface CurrentUser extends UOperator0, org.jooq.Field //permits // CurrentUser {} /** * The XMLCOMMENT function. */ public /*sealed*/ interface XMLComment extends UOperator1, XMLComment>, org.jooq.Field //permits // XMLComment { @NotNull default Field $comment() { return $arg1(); } @CheckReturnValue @NotNull default XMLComment $comment(Field newComment) { return $arg1(newComment); } } /** * The XMLCONCAT function. */ public /*sealed*/ interface XMLConcat extends UOperator1>, XMLConcat>, org.jooq.Field //permits // XMLConcat {} /** * The XMLFOREST function. */ public /*sealed*/ interface XMLForest extends UOperator1>, XMLForest>, org.jooq.Field //permits // XMLForest { @NotNull default QOM.UnmodifiableList> $fields() { return $arg1(); } @CheckReturnValue @NotNull default XMLForest $fields(QOM.UnmodifiableList> newFields) { return $arg1(newFields); } } /** * The XMLPI function. */ public /*sealed*/ interface XMLPi extends UOperator2, XMLPi>, org.jooq.Field //permits // XMLPi { @NotNull default Name $target() { return $arg1(); } @CheckReturnValue @NotNull default XMLPi $target(Name newTarget) { return $arg1(newTarget); } @Nullable default Field $content() { return $arg2(); } @CheckReturnValue @NotNull default XMLPi $content(Field newContent) { return $arg2(newContent); } } /** * The XMLSERIALIZE function. */ public /*sealed*/ interface XMLSerialize extends UOperator3, DataType, XMLSerialize>, org.jooq.Field //permits // XMLSerialize { @NotNull default Boolean $content() { return $arg1(); } @CheckReturnValue @NotNull default XMLSerialize $content(Boolean newContent) { return $arg1(newContent); } @NotNull default Field $value() { return $arg2(); } @CheckReturnValue @NotNull default XMLSerialize $value(Field newValue) { return $arg2(newValue); } @NotNull default DataType $type() { return $arg3(); } @CheckReturnValue @NotNull default XMLSerialize $type(DataType newType) { return $arg3(newType); } } /** * The JSON ARRAY function. */ public /*sealed*/ interface JSONArray extends UOperator4, QOM.UnmodifiableList>, JSONOnNull, DataType, JSONArray>, Field //permits // JSONArray { @NotNull default DataType $type() { return $arg1(); } @CheckReturnValue @NotNull default JSONArray $type(DataType newType) { return $arg1(newType); } @NotNull default QOM.UnmodifiableList> $fields() { return $arg2(); } @CheckReturnValue @NotNull default JSONArray $fields(QOM.UnmodifiableList> newFields) { return $arg2(newFields); } @Nullable default JSONOnNull $onNull() { return $arg3(); } @CheckReturnValue @NotNull default JSONArray $onNull(JSONOnNull newOnNull) { return $arg3(newOnNull); } @Nullable default DataType $returning() { return $arg4(); } @CheckReturnValue @NotNull default JSONArray $returning(DataType newReturning) { return $arg4(newReturning); } } /** * The JSON OBJECT function. */ public /*sealed*/ interface JSONObject extends UOperator4, QOM.UnmodifiableList>, JSONOnNull, DataType, JSONObject>, Field //permits // JSONObject { @NotNull default DataType $type() { return $arg1(); } @CheckReturnValue @NotNull default JSONObject $type(DataType newType) { return $arg1(newType); } @NotNull default QOM.UnmodifiableList> $entries() { return $arg2(); } @CheckReturnValue @NotNull default JSONObject $entries(QOM.UnmodifiableList> newEntries) { return $arg2(newEntries); } @Nullable default JSONOnNull $onNull() { return $arg3(); } @CheckReturnValue @NotNull default JSONObject $onNull(JSONOnNull newOnNull) { return $arg3(newOnNull); } @Nullable default DataType $returning() { return $arg4(); } @CheckReturnValue @NotNull default JSONObject $returning(DataType newReturning) { return $arg4(newReturning); } } /** * The JSON GET ELEMENT function. *

* Access an array element from a JSON array expression. */ public /*sealed*/ interface JSONGetElement extends UReturnsNullOnNullInput, UOperator2, Field, JSONGetElement>, org.jooq.Field //permits // JSONGetElement { /** * The JSON document */ @NotNull default Field $field() { return $arg1(); } /** * The JSON document */ @CheckReturnValue @NotNull default JSONGetElement $field(Field newField) { return $arg1(newField); } /** * The 0-based JSON array index */ @NotNull default Field $index() { return $arg2(); } /** * The 0-based JSON array index */ @CheckReturnValue @NotNull default JSONGetElement $index(Field newIndex) { return $arg2(newIndex); } } /** * The JSONB GET ELEMENT function. *

* Access an array element from a JSONB array expression. */ public /*sealed*/ interface JSONBGetElement extends UReturnsNullOnNullInput, UOperator2, Field, JSONBGetElement>, org.jooq.Field //permits // JSONBGetElement { /** * The JSONB document */ @NotNull default Field $field() { return $arg1(); } /** * The JSONB document */ @CheckReturnValue @NotNull default JSONBGetElement $field(Field newField) { return $arg1(newField); } /** * The 0-based JSONB array index */ @NotNull default Field $index() { return $arg2(); } /** * The 0-based JSONB array index */ @CheckReturnValue @NotNull default JSONBGetElement $index(Field newIndex) { return $arg2(newIndex); } } /** * The JSON GET ELEMENT AS TEXT function. *

* Access an array element from a JSON array expression and return it as a string. */ public /*sealed*/ interface JSONGetElementAsText extends UReturnsNullOnNullInput, UOperator2, Field, JSONGetElementAsText>, org.jooq.Field //permits // JSONGetElementAsText { /** * The JSON document */ @NotNull default Field $field() { return $arg1(); } /** * The JSON document */ @CheckReturnValue @NotNull default JSONGetElementAsText $field(Field newField) { return $arg1(newField); } /** * The 0-based JSON array index */ @NotNull default Field $index() { return $arg2(); } /** * The 0-based JSON array index */ @CheckReturnValue @NotNull default JSONGetElementAsText $index(Field newIndex) { return $arg2(newIndex); } } /** * The JSONB GET ELEMENT AS TEXT function. *

* Access an array element from a JSONB array expression and return it as a string. */ public /*sealed*/ interface JSONBGetElementAsText extends UReturnsNullOnNullInput, UOperator2, Field, JSONBGetElementAsText>, org.jooq.Field //permits // JSONBGetElementAsText { /** * The JSONB document */ @NotNull default Field $field() { return $arg1(); } /** * The JSONB document */ @CheckReturnValue @NotNull default JSONBGetElementAsText $field(Field newField) { return $arg1(newField); } /** * The 0-based JSONB array index */ @NotNull default Field $index() { return $arg2(); } /** * The 0-based JSONB array index */ @CheckReturnValue @NotNull default JSONBGetElementAsText $index(Field newIndex) { return $arg2(newIndex); } } /** * The JSON GET ATTRIBUTE function. *

* Access an object attribute value from a JSON object expression. */ public /*sealed*/ interface JSONGetAttribute extends UReturnsNullOnNullInput, UOperator2, Field, JSONGetAttribute>, org.jooq.Field //permits // JSONGetAttribute { /** * The JSON document */ @NotNull default Field $field() { return $arg1(); } /** * The JSON document */ @CheckReturnValue @NotNull default JSONGetAttribute $field(Field newField) { return $arg1(newField); } /** * The JSON object attribute name */ @NotNull default Field $attribute() { return $arg2(); } /** * The JSON object attribute name */ @CheckReturnValue @NotNull default JSONGetAttribute $attribute(Field newAttribute) { return $arg2(newAttribute); } } /** * The JSONB GET ATTRIBUTE function. *

* Access an object attribute value from a JSONB object expression. */ public /*sealed*/ interface JSONBGetAttribute extends UReturnsNullOnNullInput, UOperator2, Field, JSONBGetAttribute>, org.jooq.Field //permits // JSONBGetAttribute { /** * The JSONB document */ @NotNull default Field $field() { return $arg1(); } /** * The JSONB document */ @CheckReturnValue @NotNull default JSONBGetAttribute $field(Field newField) { return $arg1(newField); } /** * The JSONB object attribute name */ @NotNull default Field $attribute() { return $arg2(); } /** * The JSONB object attribute name */ @CheckReturnValue @NotNull default JSONBGetAttribute $attribute(Field newAttribute) { return $arg2(newAttribute); } } /** * The JSON GET ATTRIBUTE AS TEXT function. *

* Access an object attribute value from a JSON object expression and return it as string. */ public /*sealed*/ interface JSONGetAttributeAsText extends UReturnsNullOnNullInput, UOperator2, Field, JSONGetAttributeAsText>, org.jooq.Field //permits // JSONGetAttributeAsText { /** * The JSON document */ @NotNull default Field $field() { return $arg1(); } /** * The JSON document */ @CheckReturnValue @NotNull default JSONGetAttributeAsText $field(Field newField) { return $arg1(newField); } /** * The JSON object attribute name */ @NotNull default Field $attribute() { return $arg2(); } /** * The JSON object attribute name */ @CheckReturnValue @NotNull default JSONGetAttributeAsText $attribute(Field newAttribute) { return $arg2(newAttribute); } } /** * The JSONB GET ATTRIBUTE AS TEXT function. *

* Access an object attribute value from a JSONB object expression and return it as * string. */ public /*sealed*/ interface JSONBGetAttributeAsText extends UReturnsNullOnNullInput, UOperator2, Field, JSONBGetAttributeAsText>, org.jooq.Field //permits // JSONBGetAttributeAsText { /** * The JSONB document */ @NotNull default Field $field() { return $arg1(); } /** * The JSONB document */ @CheckReturnValue @NotNull default JSONBGetAttributeAsText $field(Field newField) { return $arg1(newField); } /** * The JSONB object attribute name */ @NotNull default Field $attribute() { return $arg2(); } /** * The JSONB object attribute name */ @CheckReturnValue @NotNull default JSONBGetAttributeAsText $attribute(Field newAttribute) { return $arg2(newAttribute); } } /** * The JSON ARRAY LENGTH function. *

* Calculate the length of a JSON array. */ public /*sealed*/ interface JSONArrayLength extends UReturnsNullOnNullInput, UOperator1, JSONArrayLength>, org.jooq.Field //permits // JSONArrayLength { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONArrayLength $field(Field newField) { return $arg1(newField); } } /** * The JSONB ARRAY LENGTH function. *

* Calculate the length of a JSONB array. */ public /*sealed*/ interface JSONBArrayLength extends UReturnsNullOnNullInput, UOperator1, JSONBArrayLength>, org.jooq.Field //permits // JSONBArrayLength { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONBArrayLength $field(Field newField) { return $arg1(newField); } } /** * The JSON KEY EXISTS function. *

* Check if a key exists in a JSON object */ public /*sealed*/ interface JSONKeyExists extends UOperator2, Field, JSONKeyExists>, org.jooq.Condition //permits // JSONKeyExists { /** * The JSON object */ @NotNull default Field $json() { return $arg1(); } /** * The JSON object */ @CheckReturnValue @NotNull default JSONKeyExists $json(Field newJson) { return $arg1(newJson); } /** * The key in the JSON object */ @NotNull default Field $key() { return $arg2(); } /** * The key in the JSON object */ @CheckReturnValue @NotNull default JSONKeyExists $key(Field newKey) { return $arg2(newKey); } } /** * The JSONB KEY EXISTS function. *

* Check if a key exists in a JSONB object */ public /*sealed*/ interface JSONBKeyExists extends UOperator2, Field, JSONBKeyExists>, org.jooq.Condition //permits // JSONBKeyExists { /** * The JSONB object */ @NotNull default Field $json() { return $arg1(); } /** * The JSONB object */ @CheckReturnValue @NotNull default JSONBKeyExists $json(Field newJson) { return $arg1(newJson); } /** * The key in the JSONB object */ @NotNull default Field $key() { return $arg2(); } /** * The key in the JSONB object */ @CheckReturnValue @NotNull default JSONBKeyExists $key(Field newKey) { return $arg2(newKey); } } /** * The JSON KEYS function. *

* Retrieve all keys from a JSON object as an array of strings. */ public /*sealed*/ interface JSONKeys extends UReturnsNullOnNullInput, UOperator1, JSONKeys>, org.jooq.Field //permits // JSONKeys { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONKeys $field(Field newField) { return $arg1(newField); } } /** * The JSONB KEYS function. *

* Retrieve all keys from a JSONB object as an array of strings. */ public /*sealed*/ interface JSONBKeys extends UReturnsNullOnNullInput, UOperator1, JSONBKeys>, org.jooq.Field //permits // JSONBKeys { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONBKeys $field(Field newField) { return $arg1(newField); } } /** * The JSON SET function. *

* Add or replace a JSON value to a JSON field at a given path. */ public /*sealed*/ interface JSONSet extends UOperator3, Field, Field, JSONSet>, org.jooq.Field //permits // JSONSet { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONSet $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONSet $path(Field newPath) { return $arg2(newPath); } @NotNull default Field $value() { return $arg3(); } @CheckReturnValue @NotNull default JSONSet $value(Field newValue) { return $arg3(newValue); } } /** * The JSONB SET function. *

* Add or replace a JSONB value to a JSONB field at a given path. */ public /*sealed*/ interface JSONBSet extends UOperator3, Field, Field, JSONBSet>, org.jooq.Field //permits // JSONBSet { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONBSet $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONBSet $path(Field newPath) { return $arg2(newPath); } @NotNull default Field $value() { return $arg3(); } @CheckReturnValue @NotNull default JSONBSet $value(Field newValue) { return $arg3(newValue); } } /** * The JSON INSERT function. *

* Add (but not replace) a JSON value to a JSON field at a given path. */ public /*sealed*/ interface JSONInsert extends UOperator3, Field, Field, JSONInsert>, org.jooq.Field //permits // JSONInsert { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONInsert $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONInsert $path(Field newPath) { return $arg2(newPath); } @NotNull default Field $value() { return $arg3(); } @CheckReturnValue @NotNull default JSONInsert $value(Field newValue) { return $arg3(newValue); } } /** * The JSONB INSERT function. *

* Add (but not replace) a JSON value to a JSON field at a given path. */ public /*sealed*/ interface JSONBInsert extends UOperator3, Field, Field, JSONBInsert>, org.jooq.Field //permits // JSONBInsert { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONBInsert $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONBInsert $path(Field newPath) { return $arg2(newPath); } @NotNull default Field $value() { return $arg3(); } @CheckReturnValue @NotNull default JSONBInsert $value(Field newValue) { return $arg3(newValue); } } /** * The JSON REPLACE function. *

* Replace (but not add) a JSON value to a JSON field at a given path. */ public /*sealed*/ interface JSONReplace extends UOperator3, Field, Field, JSONReplace>, org.jooq.Field //permits // JSONReplace { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONReplace $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONReplace $path(Field newPath) { return $arg2(newPath); } @NotNull default Field $value() { return $arg3(); } @CheckReturnValue @NotNull default JSONReplace $value(Field newValue) { return $arg3(newValue); } } /** * The JSONB REPLACE function. *

* Replace (but not add) a JSONB value to a JSONB field at a given path. */ public /*sealed*/ interface JSONBReplace extends UOperator3, Field, Field, JSONBReplace>, org.jooq.Field //permits // JSONBReplace { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONBReplace $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONBReplace $path(Field newPath) { return $arg2(newPath); } @NotNull default Field $value() { return $arg3(); } @CheckReturnValue @NotNull default JSONBReplace $value(Field newValue) { return $arg3(newValue); } } /** * The JSON REMOVE function. *

* Remove a JSON value from a JSON field at a given path. */ public /*sealed*/ interface JSONRemove extends UReturnsNullOnNullInput, UOperator2, Field, JSONRemove>, org.jooq.Field //permits // JSONRemove { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONRemove $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONRemove $path(Field newPath) { return $arg2(newPath); } } /** * The JSONB REMOVE function. *

* Remove a JSONB value from a JSONB field at a given path. */ public /*sealed*/ interface JSONBRemove extends UReturnsNullOnNullInput, UOperator2, Field, JSONBRemove>, org.jooq.Field //permits // JSONBRemove { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default JSONBRemove $field(Field newField) { return $arg1(newField); } @NotNull default Field $path() { return $arg2(); } @CheckReturnValue @NotNull default JSONBRemove $path(Field newPath) { return $arg2(newPath); } } /** * The FIELD function. *

* Wrap a condition in a boolean field. */ public /*sealed*/ interface ConditionAsField extends UReturnsNullOnNullInput, UOperator1, org.jooq.Field //permits // ConditionAsField { @NotNull default Condition $condition() { return $arg1(); } @CheckReturnValue @NotNull default ConditionAsField $condition(Condition newCondition) { return $arg1(newCondition); } } /** * The CONDITION function. *

* Create a condition from a boolean field. *

* Databases that support boolean data types can use boolean expressions * as predicates or as columns interchangeably. This extends to any type * of field, including functions. A Postgres example: *

*


     * select 1 where texteq('a', 'a');
     * 
*/ public /*sealed*/ interface FieldCondition extends UReturnsNullOnNullInput, UOperator1, FieldCondition>, org.jooq.Condition //permits // FieldCondition { @NotNull default Field $field() { return $arg1(); } @CheckReturnValue @NotNull default FieldCondition $field(Field newField) { return $arg1(newField); } } /** * The ANY VALUE function. *

* Get any arbitrary value from the group. */ public /*sealed*/ interface AnyValue extends org.jooq.AggregateFunction //permits // AnyValue { @NotNull Field $field(); @CheckReturnValue @NotNull AnyValue $field(Field field); } /** * The AVG function. */ public /*sealed*/ interface Avg extends org.jooq.AggregateFunction //permits // Avg { @NotNull Field $field(); boolean $distinct(); @CheckReturnValue @NotNull Avg $field(Field field); @CheckReturnValue @NotNull Avg $distinct(boolean distinct); } /** * The BIT AND AGG function. *

* Calculate the bitwise AND aggregate value. */ public /*sealed*/ interface BitAndAgg extends org.jooq.AggregateFunction //permits // BitAndAgg { @NotNull Field $value(); @CheckReturnValue @NotNull BitAndAgg $value(Field value); } /** * The BIT OR AGG function. *

* Calculate the bitwise OR aggregate value. */ public /*sealed*/ interface BitOrAgg extends org.jooq.AggregateFunction //permits // BitOrAgg { @NotNull Field $value(); @CheckReturnValue @NotNull BitOrAgg $value(Field value); } /** * The BIT XOR AGG function. *

* Calculate the bitwise XOR aggregate value. */ public /*sealed*/ interface BitXorAgg extends org.jooq.AggregateFunction //permits // BitXorAgg { @NotNull Field $value(); @CheckReturnValue @NotNull BitXorAgg $value(Field value); } /** * The BIT NAND AGG function. *

* Calculate the bitwise NAND aggregate value. */ public /*sealed*/ interface BitNandAgg extends org.jooq.AggregateFunction //permits // BitNandAgg { @NotNull Field $value(); @CheckReturnValue @NotNull BitNandAgg $value(Field value); } /** * The BIT NOR AGG function. *

* Calculate the bitwise NOR aggregate value. */ public /*sealed*/ interface BitNorAgg extends org.jooq.AggregateFunction //permits // BitNorAgg { @NotNull Field $value(); @CheckReturnValue @NotNull BitNorAgg $value(Field value); } /** * The BIT X NOR AGG function. *

* Calculate the bitwise XNOR aggregate value. */ public /*sealed*/ interface BitXNorAgg extends org.jooq.AggregateFunction //permits // BitXNorAgg { @NotNull Field $value(); @CheckReturnValue @NotNull BitXNorAgg $value(Field value); } /** * The BOOL AND function. */ public /*sealed*/ interface BoolAnd extends org.jooq.AggregateFunction //permits // BoolAnd { @NotNull Condition $condition(); @CheckReturnValue @NotNull BoolAnd $condition(Condition condition); } /** * The BOOL OR function. */ public /*sealed*/ interface BoolOr extends org.jooq.AggregateFunction //permits // BoolOr { @NotNull Condition $condition(); @CheckReturnValue @NotNull BoolOr $condition(Condition condition); } /** * The CORR function. *

* Calculate the correlation coefficient. This standard SQL function may be supported * natively, or emulated using {@link DSL#covarPop(Field, Field)} and {@link DSL#stddevPop(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface Corr extends org.jooq.AggregateFunction //permits // Corr { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull Corr $y(Field y); @CheckReturnValue @NotNull Corr $x(Field x); } /** * The COUNT function. */ public /*sealed*/ interface Count extends org.jooq.AggregateFunction //permits // Count { @Nullable Field $field(); boolean $distinct(); @CheckReturnValue @NotNull Count $field(Field field); @CheckReturnValue @NotNull Count $distinct(boolean distinct); } /** * The COVAR SAMP function. *

* Calculate the sample covariance. This standard SQL function may be supported natively, * or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. If an emulation * is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface CovarSamp extends org.jooq.AggregateFunction //permits // CovarSamp { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull CovarSamp $y(Field y); @CheckReturnValue @NotNull CovarSamp $x(Field x); } /** * The COVAR POP function. *

* Calculate the population covariance. This standard SQL function may be supported * natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface CovarPop extends org.jooq.AggregateFunction //permits // CovarPop { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull CovarPop $y(Field y); @CheckReturnValue @NotNull CovarPop $x(Field x); } /** * The MAX function. */ public /*sealed*/ interface Max extends org.jooq.AggregateFunction //permits // Max { @NotNull Field $field(); boolean $distinct(); @CheckReturnValue @NotNull Max $field(Field field); @CheckReturnValue @NotNull Max $distinct(boolean distinct); } /** * The MAX BY function. *

* Evaluate value at the row having the maximum value for by. */ public /*sealed*/ interface MaxBy extends QueryPart, org.jooq.OptionallyOrderedAggregateFunction //permits // MaxBy { /** * The returned value. */ @NotNull Field $value(); /** * The expression to use to evaluate the maximum. */ @NotNull Field $by(); /** * The returned value. */ @CheckReturnValue @NotNull MaxBy $value(Field value); /** * The expression to use to evaluate the maximum. */ @CheckReturnValue @NotNull MaxBy $by(Field by); } /** * The MEDIAN function. */ public /*sealed*/ interface Median extends org.jooq.AggregateFunction //permits // Median { @NotNull Field $field(); @CheckReturnValue @NotNull Median $field(Field field); } /** * The MIN function. */ public /*sealed*/ interface Min extends org.jooq.AggregateFunction //permits // Min { @NotNull Field $field(); boolean $distinct(); @CheckReturnValue @NotNull Min $field(Field field); @CheckReturnValue @NotNull Min $distinct(boolean distinct); } /** * The MIN BY function. *

* Evaluate value at the row having the minimum value for by. */ public /*sealed*/ interface MinBy extends QueryPart, org.jooq.OptionallyOrderedAggregateFunction //permits // MinBy { /** * The returned value. */ @NotNull Field $value(); /** * The expression to use to evaluate the minimum */ @NotNull Field $by(); /** * The returned value. */ @CheckReturnValue @NotNull MinBy $value(Field value); /** * The expression to use to evaluate the minimum */ @CheckReturnValue @NotNull MinBy $by(Field by); } /** * The PRODUCT function. *

* Get the sum over a numeric field: product(distinct field). *

* Few dialects currently support multiplicative aggregation natively. jOOQ * emulates this using exp(sum(log(arg))) for strictly positive * numbers, and does some additional handling for zero and negative numbers. *

* Note that this implementation may introduce rounding errors, even for * integer multiplication. *

* More information here: https://blog.jooq.org/how-to-write-a-multiplication-aggregate-function-in-sql. */ public /*sealed*/ interface Product extends org.jooq.AggregateFunction //permits // Product { @NotNull Field $field(); boolean $distinct(); @CheckReturnValue @NotNull Product $field(Field field); @CheckReturnValue @NotNull Product $distinct(boolean distinct); } /** * The RANK function. *

* The RANK hypothetical set aggregate function. */ public /*sealed*/ interface RankAgg extends QueryPart, org.jooq.OrderedAggregateFunction //permits // RankAgg { @NotNull UnmodifiableList> $fields(); @CheckReturnValue @NotNull RankAgg $fields(Collection> fields); } /** * The DENSE RANK function. *

* The DENSE_RANK hypothetical set aggregate function. */ public /*sealed*/ interface DenseRankAgg extends QueryPart, org.jooq.OrderedAggregateFunction //permits // DenseRankAgg { @NotNull UnmodifiableList> $fields(); @CheckReturnValue @NotNull DenseRankAgg $fields(Collection> fields); } /** * The PERCENT RANK function. *

* The PERCENT_RANK hypothetical set aggregate function. */ public /*sealed*/ interface PercentRankAgg extends QueryPart, org.jooq.OrderedAggregateFunction //permits // PercentRankAgg { @NotNull UnmodifiableList> $fields(); @CheckReturnValue @NotNull PercentRankAgg $fields(Collection> fields); } /** * The CUME DIST function. *

* The CUME_DIST hypothetical set aggregate function. */ public /*sealed*/ interface CumeDistAgg extends QueryPart, org.jooq.OrderedAggregateFunction //permits // CumeDistAgg { @NotNull UnmodifiableList> $fields(); @CheckReturnValue @NotNull CumeDistAgg $fields(Collection> fields); } /** * The PERCENTILE CONT function. *

* Calculate the PERCENTILE_CONT inverse distribution aggregate function. */ public /*sealed*/ interface PercentileCont extends QueryPart, org.jooq.OrderedAggregateFunction //permits // PercentileCont { @NotNull Field $percentile(); @CheckReturnValue @NotNull PercentileCont $percentile(Field percentile); } /** * The PERCENTILE DISC function. *

* Calculate the PERCENTILE_DISC inverse distribution aggregate function. */ public /*sealed*/ interface PercentileDisc extends QueryPart, org.jooq.OrderedAggregateFunction //permits // PercentileDisc { @NotNull Field $percentile(); @CheckReturnValue @NotNull PercentileDisc $percentile(Field percentile); } /** * The REGR AVGX function. *

* Calculate the average of the independent values (x). This standard SQL function may * be supported natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrAvgX extends org.jooq.AggregateFunction //permits // RegrAvgX { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrAvgX $y(Field y); @CheckReturnValue @NotNull RegrAvgX $x(Field x); } /** * The REGR AVGY function. *

* Calculate the average of the dependent values (y). This standard SQL function may * be supported natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrAvgY extends org.jooq.AggregateFunction //permits // RegrAvgY { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrAvgY $y(Field y); @CheckReturnValue @NotNull RegrAvgY $x(Field x); } /** * The REGR COUNT function. *

* Calculate the number of non-NULL pairs. This standard SQL function may * be supported natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrCount extends org.jooq.AggregateFunction //permits // RegrCount { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrCount $y(Field y); @CheckReturnValue @NotNull RegrCount $x(Field x); } /** * The REGR INTERCEPT function. *

* Calculate the y intercept of the regression line. This standard SQL function may * be supported natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrIntercept extends org.jooq.AggregateFunction //permits // RegrIntercept { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrIntercept $y(Field y); @CheckReturnValue @NotNull RegrIntercept $x(Field x); } /** * The REGR R2 function. *

* Calculate the coefficient of determination. This standard SQL function may be supported * natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrR2 extends org.jooq.AggregateFunction //permits // RegrR2 { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrR2 $y(Field y); @CheckReturnValue @NotNull RegrR2 $x(Field x); } /** * The REGR SLOPE function. *

* Calculate the slope of the regression line. This standard SQL function may be supported * natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrSlope extends org.jooq.AggregateFunction //permits // RegrSlope { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrSlope $y(Field y); @CheckReturnValue @NotNull RegrSlope $x(Field x); } /** * The REGR SXX function. *

* Calculate the REGR_SXX auxiliary function. This standard SQL function * may be supported natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrSxx extends org.jooq.AggregateFunction //permits // RegrSxx { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrSxx $y(Field y); @CheckReturnValue @NotNull RegrSxx $x(Field x); } /** * The REGR SXY function. *

* Calculate the REGR_SXY auxiliary function. This standard SQL function * may be supported natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrSxy extends org.jooq.AggregateFunction //permits // RegrSxy { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrSxy $y(Field y); @CheckReturnValue @NotNull RegrSxy $x(Field x); } /** * The REGR SYY function. *

* Calculate the REGR_SYY auxiliary function. This standard SQL function * may be supported natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface RegrSyy extends org.jooq.AggregateFunction //permits // RegrSyy { @NotNull Field $y(); @NotNull Field $x(); @CheckReturnValue @NotNull RegrSyy $y(Field y); @CheckReturnValue @NotNull RegrSyy $x(Field x); } /** * The STDDEV POP function. *

* Calculate the population standard deviation. This standard SQL function may be supported * natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface StddevPop extends org.jooq.AggregateFunction //permits // StddevPop { @NotNull Field $field(); @CheckReturnValue @NotNull StddevPop $field(Field field); } /** * The STDDEV SAMP function. *

* Calculate the sample standard deviation. This standard SQL function may be supported * natively, or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. * If an emulation is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface StddevSamp extends org.jooq.AggregateFunction //permits // StddevSamp { @NotNull Field $field(); @CheckReturnValue @NotNull StddevSamp $field(Field field); } /** * The SUM function. */ public /*sealed*/ interface Sum extends org.jooq.AggregateFunction //permits // Sum { @NotNull Field $field(); boolean $distinct(); @CheckReturnValue @NotNull Sum $field(Field field); @CheckReturnValue @NotNull Sum $distinct(boolean distinct); } /** * The VAR POP function. *

* Calculate the population variance. This standard SQL function may be supported natively, * or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. If an emulation * is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface VarPop extends org.jooq.AggregateFunction //permits // VarPop { @NotNull Field $field(); @CheckReturnValue @NotNull VarPop $field(Field field); } /** * The VAR SAMP function. *

* Calculate the sample variance. This standard SQL function may be supported natively, * or emulated using {@link DSL#sum(Field)} and {@link DSL#count(Field)}. If an emulation * is applied, beware of the risk of "Catastrophic * cancellation" in case the calculations are performed using floating point arithmetic. */ public /*sealed*/ interface VarSamp extends org.jooq.AggregateFunction //permits // VarSamp { @NotNull Field $field(); @CheckReturnValue @NotNull VarSamp $field(Field field); } /** * The Cascade type. *

* Cascade a DDL operation to all dependent objects, or restrict it to this object only. */ public enum Cascade { CASCADE(keyword("cascade")), RESTRICT(keyword("restrict")), ; final Keyword keyword; private Cascade(Keyword keyword) { this.keyword = keyword; } } /** * The CycleOption type. *

* Specify whether a sequence cycles to its minvalue once it reaches its maxvalue. */ public enum CycleOption { CYCLE(keyword("cycle")), NO_CYCLE(keyword("no cycle")), ; final Keyword keyword; private CycleOption(Keyword keyword) { this.keyword = keyword; } } /** * The IdentityRestartOption type. *

* Specify whether an identity column should be restarted upon truncation. */ public enum IdentityRestartOption { CONTINUE_IDENTITY(keyword("continue identity")), RESTART_IDENTITY(keyword("restart identity")), ; final Keyword keyword; private IdentityRestartOption(Keyword keyword) { this.keyword = keyword; } } /** * The GenerationLocation type. *

* Specify where a computed column should be computed, i.e. in the client or on the * server. */ public enum GenerationLocation { CLIENT(keyword("client")), SERVER(keyword("server")), ; final Keyword keyword; private GenerationLocation(Keyword keyword) { this.keyword = keyword; } } /** * The GenerationOption type. *

* Specify whether a computed column should be stored, or computed virtually / on the * fly. */ public enum GenerationOption { STORED(keyword("stored")), VIRTUAL(keyword("virtual")), DEFAULT(keyword("default")), ; final Keyword keyword; private GenerationOption(Keyword keyword) { this.keyword = keyword; } } /** * The WithOrWithoutData type. *

* Specify whether a table created from a subquery should include the subquery's data. */ public enum WithOrWithoutData { WITH_DATA(keyword("with data")), WITH_NO_DATA(keyword("with no data")), ; final Keyword keyword; private WithOrWithoutData(Keyword keyword) { this.keyword = keyword; } } /** * The TableCommitAction type. *

* Specify the action to be taken on temporary tables when committing. */ public enum TableCommitAction { DELETE_ROWS(keyword("delete rows")), PRESERVE_ROWS(keyword("preserve rows")), DROP(keyword("drop")), ; final Keyword keyword; private TableCommitAction(Keyword keyword) { this.keyword = keyword; } } /** * The ForeignKeyRule type. *

* Specify the update rule or delete rule of a foreign key, when the referenced primary * key is updated or deleted. */ public enum ForeignKeyRule { CASCADE(keyword("cascade")), SET_NULL(keyword("set null")), SET_DEFAULT(keyword("set default")), RESTRICT(keyword("restrict")), NO_ACTION(keyword("no action")), ; final Keyword keyword; private ForeignKeyRule(Keyword keyword) { this.keyword = keyword; } } /** * The NullOrdering type. *

* The explicit ordering of NULL values in ORDER BY clauses. If unspecified, the behaviour * is implementation defined. */ public enum NullOrdering { NULLS_FIRST(keyword("nulls first")), NULLS_LAST(keyword("nulls last")), ; final Keyword keyword; private NullOrdering(Keyword keyword) { this.keyword = keyword; } } /** * The NullTreatment type. *

* Specify whether to include NULL values or ignore NULL values in certain window functions. */ public enum NullTreatment { RESPECT_NULLS(keyword("respect nulls")), IGNORE_NULLS(keyword("ignore nulls")), ; final Keyword keyword; private NullTreatment(Keyword keyword) { this.keyword = keyword; } } /** * The FromFirstOrLast type. *

* Specify whether the NTH_VALUE window function should count N values from the first * or last value in the window. */ public enum FromFirstOrLast { FROM_FIRST(keyword("from first")), FROM_LAST(keyword("from last")), ; final Keyword keyword; private FromFirstOrLast(Keyword keyword) { this.keyword = keyword; } } /** * The FrameUnits type. *

* The window frame unit specification. */ public enum FrameUnits { ROWS(keyword("rows")), RANGE(keyword("range")), GROUPS(keyword("groups")), ; final Keyword keyword; private FrameUnits(Keyword keyword) { this.keyword = keyword; } } /** * The FrameExclude type. *

* Specify which values within the window frame should be excluded. */ public enum FrameExclude { CURRENT_ROW(keyword("current row")), TIES(keyword("ties")), GROUP(keyword("group")), NO_OTHERS(keyword("no others")), ; final Keyword keyword; private FrameExclude(Keyword keyword) { this.keyword = keyword; } } /** * The JSONOnNull type. *

* Specify whether a JSON array or object should include NULL values in the output. */ public enum JSONOnNull { NULL_ON_NULL(keyword("null on null")), ABSENT_ON_NULL(keyword("absent on null")), ; final Keyword keyword; private JSONOnNull(Keyword keyword) { this.keyword = keyword; } } /** * The XMLPassingMechanism type. *

* Specify how XML contents should be passed to certain XML functions. */ public enum XMLPassingMechanism { BY_REF(keyword("by ref")), BY_VALUE(keyword("by value")), DEFAULT(keyword("default")), ; final Keyword keyword; private XMLPassingMechanism(Keyword keyword) { this.keyword = keyword; } } /** * The DocumentOrContent type. *

* Specify whether XML content is a DOM document or a document fragment (content). */ public enum DocumentOrContent { DOCUMENT(keyword("document")), CONTENT(keyword("content")), ; final Keyword keyword; private DocumentOrContent(Keyword keyword) { this.keyword = keyword; } } /** * The Materialized type. *

* Hint whether a CTE should be materialised or inlined. If unspecified, the optimiser * may produce implementation defined behaviour. */ public enum Materialized { MATERIALIZED(keyword("materialized")), NOT_MATERIALIZED(keyword("not materialized")), ; final Keyword keyword; private Materialized(Keyword keyword) { this.keyword = keyword; } } /** * The ResultOption type. *

* The data change delta table result semantics. */ public enum ResultOption { OLD(keyword("old")), NEW(keyword("new")), FINAL(keyword("final")), ; final Keyword keyword; private ResultOption(Keyword keyword) { this.keyword = keyword; } } /** * The Quantifier type. *

* A quantifier for quantified selects. */ public enum Quantifier { ANY(keyword("any")), ALL(keyword("all")), ; final Keyword keyword; private Quantifier(Keyword keyword) { this.keyword = keyword; } } /** * The JoinHint type. *

* A hint for join algorithms. */ public enum JoinHint { HASH(keyword("hash")), LOOP(keyword("loop")), MERGE(keyword("merge")), ; final Keyword keyword; private JoinHint(Keyword keyword) { this.keyword = keyword; } } // ------------------------------------------------------------------------- // XXX: Utility API // ------------------------------------------------------------------------- interface UOperator extends org.jooq.QueryPart { @NotNull List $args(); } interface UOperator0> extends UOperator { @NotNull Function0 $constructor(); @NotNull @Override default List $args() { return Collections.emptyList(); } } interface UOperator1> extends UOperator { Q1 $arg1(); @CheckReturnValue @NotNull default R $arg1(Q1 newArg1) { return $constructor().apply(newArg1); } @NotNull Function1 $constructor(); @NotNull @Override default List $args() { return unmodifiableList(asList($arg1())); } } interface UOperator2> extends UOperator { Q1 $arg1(); Q2 $arg2(); @CheckReturnValue @NotNull default R $arg1(Q1 newArg1) { return $constructor().apply(newArg1, $arg2()); } @CheckReturnValue @NotNull default R $arg2(Q2 newArg2) { return $constructor().apply($arg1(), newArg2); } @NotNull Function2 $constructor(); @NotNull @Override default List $args() { return unmodifiableList(asList($arg1(), $arg2())); } } interface UOperator3> extends UOperator { Q1 $arg1(); Q2 $arg2(); Q3 $arg3(); @CheckReturnValue @NotNull default R $arg1(Q1 newArg1) { return $constructor().apply(newArg1, $arg2(), $arg3()); } @CheckReturnValue @NotNull default R $arg2(Q2 newArg2) { return $constructor().apply($arg1(), newArg2, $arg3()); } @CheckReturnValue @NotNull default R $arg3(Q3 newArg3) { return $constructor().apply($arg1(), $arg2(), newArg3); } @NotNull Function3 $constructor(); @NotNull @Override default List $args() { return unmodifiableList(asList($arg1(), $arg2(), $arg3())); } } interface UOperator4> extends UOperator { Q1 $arg1(); Q2 $arg2(); Q3 $arg3(); Q4 $arg4(); @CheckReturnValue @NotNull default R $arg1(Q1 newArg1) { return $constructor().apply(newArg1, $arg2(), $arg3(), $arg4()); } @CheckReturnValue @NotNull default R $arg2(Q2 newArg2) { return $constructor().apply($arg1(), newArg2, $arg3(), $arg4()); } @CheckReturnValue @NotNull default R $arg3(Q3 newArg3) { return $constructor().apply($arg1(), $arg2(), newArg3, $arg4()); } @CheckReturnValue @NotNull default R $arg4(Q4 newArg4) { return $constructor().apply($arg1(), $arg2(), $arg3(), newArg4); } @NotNull Function4 $constructor(); @NotNull @Override default List $args() { return unmodifiableList(asList($arg1(), $arg2(), $arg3(), $arg4())); } } /** * A binary {@link UOperator2} whose operands can be swapped using * {@link #$converse()} producing the converse relation. */ interface UConvertibleOperator, C extends UConvertibleOperator> extends UOperator2 { /** * Create a new expression with swapped operands, using the converse * operator. */ @CheckReturnValue @NotNull C $converse(); } /** * A binary {@link UOperator2} whose operands can be swapped using * {@link #$swap()} without changing the operator's semantics. */ interface UCommutativeOperator> extends UConvertibleOperator { /** * Create a new expression with swapped operands. */ @CheckReturnValue @NotNull default R $swap() { return $constructor().apply($arg2(), $arg1()); } @Override @CheckReturnValue @NotNull default R $converse() { return $swap(); } } /** * A marker interface for {@link QueryPart} implementations that represent * functions or operators who evaluate to NULL as soon as at * least one argument is NULL. */ interface UReturnsNullOnNullInput extends org.jooq.QueryPart {} /** * A marker interface for {@link QueryPart} implementations that are used * only to render SQL, i.e. they're transient to the expression tree and * don't persist in client code. */ interface UTransient extends UEmpty {} /** * A marker interface for {@link QueryPart} implementations that are mainly * used to render SQL, but unlike {@link UTransient} parts, can also appear * in user expression trees. */ interface UOpaque extends UEmpty {} /** * A marker interface for {@link QueryPart} implementations whose * {@link QueryPart} semantics has not yet been implemented. * * @deprecated - [#12425] - 3.16.0 - Missing implementations should be added * as soon as possible! */ @Deprecated(forRemoval = true) interface UNotYetImplemented extends UEmpty {} /** * A marker interface for {@link QueryPart} methods that have not yet been * implemented. * * @deprecated - [#12425] - 3.16.0 - Missing implementations should be added * as soon as possible! */ @Deprecated(forRemoval = true) public static class NotYetImplementedException extends RuntimeException {} interface UProxy extends org.jooq.QueryPart { Q $delegate(); } interface UEmpty extends org.jooq.QueryPart { } // ------------------------------------------------------------------------- // XXX: Undisclosed, internal query parts // ------------------------------------------------------------------------- interface UEmptyCondition extends Condition, UEmpty {} interface UEmptyField extends Field, UEmpty {} interface UEmptyTable extends Table, UEmpty {} interface UEmptyStatement extends Statement, UEmpty {} interface UEmptyQuery extends Query, UEmpty {} /** * Turn an array into an unmodifiable {@link UnmodifiableList}. */ @Internal public static final UnmodifiableList unmodifiable(Q[] array) { return unmodifiable(QueryPartListView.wrap(array)); } /** * Turn a {@link List} into an unmodifiable {@link UnmodifiableList}. */ @Internal public static final UnmodifiableList unmodifiable(List list) { return QueryPartListView.wrap(unmodifiableList(list)); } /** * Turn a {@link Collection} into an unmodifiable {@link UnmodifiableList}. */ @Internal public static final UnmodifiableList unmodifiable(Collection collection) { if (collection instanceof List) return unmodifiable((List) collection); else return new QueryPartList<>(unmodifiableCollection(collection)); } /** * Turn a {@link Map} into an unmodifiable {@link UnmodifiableMap}. */ @Internal public static final UnmodifiableMap unmodifiable(Map map) { return new QueryPartMapView<>(unmodifiableMap(map)); } @Internal public static final Tuple2 tuple(Q1 q1, Q2 q2) { return new TupleImpl2<>(q1, q2); } static final boolean commutativeCheck(UCommutativeOperator op, Predicate f) { return f.test(op.$arg1()) || f.test(op.$arg2()); } static final boolean commutativeCheck(UCommutativeOperator op, BiPredicate f) { return f.test(op.$arg1(), op.$arg2()) || f.test(op.$arg2(), op.$arg1()); } }