All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jooq.DSLContext Maven / Gradle / Ivy

There is a newer version: 3.19.15
Show newest version
/*
 * 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
 * ASL 2.0 and offer limited warranties, support, maintenance, and commercial
 * database integrations.
 *
 * For more information, please visit: https://www.jooq.org/legal/licensing
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */
package org.jooq;

// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.CUBRID;
// ...
import static org.jooq.SQLDialect.DERBY;
import static org.jooq.SQLDialect.DUCKDB;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.HSQLDB;
import static org.jooq.SQLDialect.IGNITE;
// ...
// ...
import static org.jooq.SQLDialect.MARIADB;
// ...
// ...
import static org.jooq.SQLDialect.MYSQL;
// ...
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;
// ...
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.SQLITE;
// ...
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.TRINO;
// ...
import static org.jooq.SQLDialect.YUGABYTEDB;

import java.math.BigInteger;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.Executor;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Stream;

import javax.sql.DataSource;

import org.jooq.conf.ParamType;
import org.jooq.conf.Settings;
import org.jooq.conf.StatementType;
import org.jooq.exception.ConfigurationException;
import org.jooq.exception.DataAccessException;
import org.jooq.exception.DataDefinitionException;
import org.jooq.exception.InvalidResultException;
import org.jooq.exception.MappingException;
import org.jooq.exception.NoDataFoundException;
import org.jooq.exception.TooManyRowsException;
import org.jooq.impl.CacheType;
import org.jooq.impl.DSL;
import org.jooq.impl.ParserException;
import org.jooq.impl.ThreadLocalTransactionProvider;
import org.jooq.tools.jdbc.BatchedConnection;
import org.jooq.tools.jdbc.MockCallable;
import org.jooq.tools.jdbc.MockDataProvider;
import org.jooq.tools.jdbc.MockRunnable;
import org.jooq.util.xml.jaxb.InformationSchema;

import org.jetbrains.annotations.ApiStatus.Experimental;
import org.jetbrains.annotations.ApiStatus.Internal;
import org.jetbrains.annotations.Blocking;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import io.r2dbc.spi.ConnectionFactory;

/**
 * A contextual DSL providing "attached" implementations to the
 * org.jooq interfaces.
 * 

* Apart from the {@link DSL}, this contextual DSL is the main entry point for * client code, to access jOOQ classes and functionality that are related to * {@link Query} execution. Unlike objects created through the DSL * type, objects created from a DSLContext will be "attached" to * the DSLContext's {@link #configuration()}, such that they can be * executed immediately in a fluent style. An example is given here: *

*


 * DSLContext create = DSL.using(connection, dialect);
 *
 * // Immediately fetch results after constructing a query
 * create.selectFrom(MY_TABLE).where(MY_TABLE.ID.eq(1)).fetch();
 *
 * // The above is equivalent to this "non-fluent" style
 * create.fetch(DSL.selectFrom(MY_TABLE).where(MY_TABLE.ID.eq(1)));
 * 
*

* The DSL provides convenient constructors to create a * {@link Configuration}, which will be shared among all Query * objects thus created. Optionally, you can pass a reusable * Configuration to the {@link DSL#using(Configuration)} * constructor. Please consider thread-safety concerns documented in * {@link Configuration}, should you want to reuse the same * Configuration instance in various threads and / or transactions. *

* {@link DSLContext} is a {@link Scope} type, mostly for convenience access to * its underlying {@link Configuration} properties, including the * {@link #data()} map, which it shares with the {@link Configuration}. It does * not have an independent lifecycle. * * @see DSL * @see Configuration * @author Lukas Eder */ public interface DSLContext extends Scope { // ------------------------------------------------------------------------- // XXX Configuration API // ------------------------------------------------------------------------- /** * Map a schema to another one. *

* This will map a schema onto another one, depending on configured schema * mapping in this DSLContext. If no applicable schema mapping * can be found, the schema itself is returned. * * @param schema A schema * @return The mapped schema */ @Nullable Schema map(Schema schema); /** * Map a table to another one. *

* This will map a table onto another one, depending on configured table * mapping in this DSLContext. If no applicable table mapping can * be found, the table itself is returned. * * @param table A table * @return The mapped table */ @Nullable Table map(Table table); // ------------------------------------------------------------------------- // XXX Convenience methods accessing the underlying Connection // ------------------------------------------------------------------------- /** * Access the parser API. */ @NotNull Parser parser(); /** * A JDBC connection that runs each statement through the {@link #parser()} * first, prior to re-generating and running the SQL. *

* Static statements are translated eagerly upon execution, e.g. of * {@link java.sql.Statement#executeQuery(String)}. Prepared statements are * prepared lazily once all bind variables are available, because the * specific bind value and type may influence the generated SQL. As such, a * {@link PreparedStatement} created from a parsing connection does not yet * allocate any server side resources until it is executed for the first * time. *

* The {@link Configuration#cacheProvider()} is called for * {@link CacheType#CACHE_PARSING_CONNECTION} to provide a translation cache * to avoid the overhead of re-parsing and re-generating the same SQL string * all the time. By default, this is an LRU cache. *

* The resulting {@link Connection} wraps an underlying JDBC connection that * has been obtained from {@link ConnectionProvider#acquire()} and must be * released by calling {@link Connection#close()}, which calls * {@link ConnectionProvider#release(Connection)}. */ @NotNull Connection parsingConnection(); /** * A JDBC data source that runs each statement through the {@link #parser()} * first, prior to re-generating and running the SQL. *

* This simply wraps the {@link #parsingConnection()} in a * {@link DataSource}. */ @NotNull DataSource parsingDataSource(); /** * An R2DBC {@link ConnectionFactory} that runs each statement through the * {@link #parser()} first, prior to re-generating and running the SQL. */ @NotNull ConnectionFactory parsingConnectionFactory(); /** * A JDBC connection that proxies the underlying connection to run the jOOQ * Diagnostics Pack on executed queries. *

* This is experimental functionality. */ @NotNull Connection diagnosticsConnection(); /** * A JDBC connection that proxies the underlying connection to run the jOOQ * Diagnostics Pack on executed queries. *

* This simply wraps the {@link #diagnosticsConnection()} in a {@link DataSource}. */ @NotNull DataSource diagnosticsDataSource(); /** * The experimental migrations API. *

* This is EXPERIMENTAL functionality and subject to change in future jOOQ * versions. */ @Experimental @NotNull Migrations migrations(); /** * Access the database meta data. *

* This method returns meta information provided by * {@link Configuration#metaProvider()}, which defaults to a wrapper type * that gives access to your JDBC connection's {@link DatabaseMetaData} as * obtained from your {@link ConnectionProvider}. * * @see #meta(DatabaseMetaData) */ @NotNull Meta meta(); /** * Access the database meta data from an explicit JDBC * {@link DatabaseMetaData}. */ @NotNull Meta meta(DatabaseMetaData meta); /** * Access the database meta data from explicit catalog information. *

* This will not connect to your database to get live meta information, * unlike {@link #meta()} and {@link #meta(DatabaseMetaData)}. */ @NotNull Meta meta(Catalog... catalogs); /** * Access the database meta data from explicit schema information. *

* This will not connect to your database to get live meta information, * unlike {@link #meta()} and {@link #meta(DatabaseMetaData)}. */ @NotNull Meta meta(Schema... schemas); /** * Access the database meta data from explicit table information. *

* This will not connect to your database to get live meta information, * unlike {@link #meta()} and {@link #meta(DatabaseMetaData)}. */ @NotNull Meta meta(Table... tables); /** * Access the database meta data from an explicit JAXB-annotated meta model. *

* This will not connect to your database to get live meta information, * unlike {@link #meta()} and {@link #meta(DatabaseMetaData)}. */ @NotNull Meta meta(InformationSchema schema); /** * Create meta data from a set of sources. *

* This is convenience for wrapping all argument {@link String}s in * {@link Source}. The same set of content types are supported as in * {@link #meta(Source...)}. * * @throws DataDefinitionException if the sources do not produce consistent * meta data. * @throws ParserException if there is a parser error parsing the sources. */ @NotNull Meta meta(String... sources) throws DataDefinitionException, ParserException; /** * Create meta data from a set of sources. *

* This method creates a {@link Meta} representation from a set of source * content, which can be any of: *

    *
  • A set of DDL scripts, which will be parsed using * {@link #parser()}.
  • *
  • A set of XML files, which will be unmarshalled into * {@link InformationSchema} objects.
  • *
*

* This will not connect to your database to get live meta information, * unlike {@link #meta()} and {@link #meta(DatabaseMetaData)}. * * @throws DataDefinitionException if the sources do not produce consistent * meta data. * @throws ParserException if there is a parser error parsing the sources. */ @NotNull Meta meta(Source... sources) throws DataDefinitionException, ParserException; /** * Create meta data from a set of DDL queries. *

* This works the same way as {@link #meta(Source...)}, without the need of * parsing the DDL scripts. * * @throws DataDefinitionException if the sources do not produce consistent * meta data. */ @NotNull Meta meta(Query... queries) throws DataDefinitionException; /** * Convenience method for {@link Meta#informationSchema()}. * * @see #meta(Catalog...) * @see Meta#informationSchema() */ @NotNull InformationSchema informationSchema(Catalog catalog); /** * Convenience method for {@link Meta#informationSchema()}. * * @see #meta(Catalog...) * @see Meta#informationSchema() */ @NotNull InformationSchema informationSchema(Catalog... catalogs); /** * Convenience method for {@link Meta#informationSchema()}. * * @see #meta(Schema...) * @see Meta#informationSchema() */ @NotNull InformationSchema informationSchema(Schema schema); /** * Convenience method for {@link Meta#informationSchema()}. * * @see #meta(Schema...) * @see Meta#informationSchema() */ @NotNull InformationSchema informationSchema(Schema... schemas); /** * Convenience method for {@link Meta#informationSchema()}. * * @see #meta(Table...) * @see Meta#informationSchema() */ @NotNull InformationSchema informationSchema(Table table); /** * Convenience method for {@link Meta#informationSchema()}. * * @see #meta(Table...) * @see Meta#informationSchema() */ @NotNull InformationSchema informationSchema(Table... table); // ------------------------------------------------------------------------- // XXX APIs related to query optimisation // ------------------------------------------------------------------------- /** * Run an EXPLAIN statement in the database to estimate the * cardinality of the query. */ @NotNull @Support({ H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) Explain explain(Query query); // ------------------------------------------------------------------------- // XXX APIs for creating scope for transactions, mocking, batching, etc. // ------------------------------------------------------------------------- /** * Run a {@link TransactionalCallable} in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}, and return the * transactional's outcome. *

* The argument transactional code should not capture any scope but derive * its {@link Configuration} from the * {@link TransactionalCallable#run(Configuration)} argument in order to * create new statements. * * @param transactional The transactional code * @return The transactional outcome * @throws RuntimeException any runtime exception thrown by the * transactional logic, indicating that a rollback * has occurred. * @throws DataAccessException any database problem that may have arised * when executing the transactional logic, or a * wrapper for any checked exception thrown by the * transactional logic, indicating that a rollback * has occurred. */ @Blocking T transactionResult(TransactionalCallable transactional); /** * Run a {@link ContextTransactionalRunnable} in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}, and return the * transactional's outcome. *

* The argument transactional code may capture scope to derive its * {@link Configuration} from the "context" in order to create new * statements. This context can be provided, for instance, by * {@link ThreadLocalTransactionProvider} automatically. * * @param transactional The transactional code * @return The transactional outcome * @throws ConfigurationException if the underlying * {@link Configuration#transactionProvider()} is not able to * provide context (i.e. currently, it is not a * {@link ThreadLocalTransactionProvider}). * @throws RuntimeException any runtime exception thrown by the * transactional logic, indicating that a rollback * has occurred. * @throws DataAccessException any database problem that may have arised * when executing the transactional logic, or a * wrapper for any checked exception thrown by the * transactional logic, indicating that a rollback * has occurred. */ @Blocking T transactionResult(ContextTransactionalCallable transactional) throws ConfigurationException; /** * Run a {@link TransactionalRunnable} in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}. *

* The argument transactional code should not capture any scope but derive * its {@link Configuration} from the * {@link TransactionalCallable#run(Configuration)} argument in order to * create new statements. * * @param transactional The transactional code * @throws RuntimeException any runtime exception thrown by the * transactional logic, indicating that a rollback * has occurred. * @throws DataAccessException any database problem that may have arised * when executing the transactional logic, or a * wrapper for any checked exception thrown by the * transactional logic, indicating that a rollback * has occurred. */ @Blocking void transaction(TransactionalRunnable transactional); /** * Run a {@link ContextTransactionalRunnable} in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}. *

* The argument transactional code may capture scope to derive its * {@link Configuration} from the "context" in order to create new * statements. This context can be provided, for instance, by * {@link ThreadLocalTransactionProvider} automatically. * * @param transactional The transactional code * @throws ConfigurationException if the underlying * {@link Configuration#transactionProvider()} is not able to * provide context (i.e. currently, it is not a * {@link ThreadLocalTransactionProvider}). * @throws RuntimeException any runtime exception thrown by the * transactional logic, indicating that a rollback * has occurred. * @throws DataAccessException any database problem that may have arised * when executing the transactional logic, or a * wrapper for any checked exception thrown by the * transactional logic, indicating that a rollback * has occurred. */ @Blocking void transaction(ContextTransactionalRunnable transactional) throws ConfigurationException; /** * Run a {@link TransactionalCallable} asynchronously. *

* The TransactionCallable is run in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}, and returns the * transactional's outcome in a new {@link CompletionStage} * that is asynchronously completed by a task run by an {@link Executor} * provided by the underlying {@link #configuration()}'s * {@link Configuration#executorProvider()}. * * @param transactional The transactional code * @return The transactional outcome * @throws ConfigurationException If this is run with a * {@link ThreadLocalTransactionProvider}. */ @NotNull CompletionStage transactionResultAsync(TransactionalCallable transactional) throws ConfigurationException; /** * Run a {@link TransactionalRunnable} asynchronously. *

* The TransactionRunnable is run in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}, and returns the * transactional's outcome in a new {@link CompletionStage} * that is asynchronously completed by a task run by an {@link Executor} * provided by the underlying {@link #configuration()}'s * {@link Configuration#executorProvider()}. * * @param transactional The transactional code * @throws ConfigurationException If this is run with a * {@link ThreadLocalTransactionProvider}. */ @NotNull CompletionStage transactionAsync(TransactionalRunnable transactional) throws ConfigurationException; /** * Run a {@link TransactionalCallable} asynchronously. *

* The TransactionCallable is run in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}, and returns the * transactional's outcome in a new {@link CompletionStage} * that is asynchronously completed by a task run by a given * {@link Executor}. * * @param transactional The transactional code * @return The transactional outcome * @throws ConfigurationException If this is run with a * {@link ThreadLocalTransactionProvider}. */ @NotNull CompletionStage transactionResultAsync(Executor executor, TransactionalCallable transactional) throws ConfigurationException; /** * Run a {@link TransactionalRunnable} asynchronously. *

* The TransactionRunnable is run in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#transactionProvider()}, and returns the * transactional's outcome in a new {@link CompletionStage} * that is asynchronously completed by a task run by a given * {@link Executor}. * * @param transactional The transactional code * @throws ConfigurationException If this is run with a * {@link ThreadLocalTransactionProvider}. */ @NotNull CompletionStage transactionAsync(Executor executor, TransactionalRunnable transactional) throws ConfigurationException; /** * Run a {@link TransactionalPublishable} reactively. * * @param transactional The transactional code * @return The transactional outcome * @throws ConfigurationException If this is run with a * {@link ThreadLocalTransactionProvider}. */ @NotNull Publisher transactionPublisher(TransactionalPublishable transactional); /** * Run a {@link ConnectionCallable} in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#connectionProvider()}. * * @param callable The code running statements against the * connection. * @return The outcome of the callable */ @Blocking T connectionResult(ConnectionCallable callable); /** * Run a {@link ConnectionRunnable} in the context of this * DSLContext's underlying {@link #configuration()}'s * {@link Configuration#connectionProvider()}. * * @param runnable The code running statements against the * connection. */ @Blocking void connection(ConnectionRunnable runnable); /** * Run a {@link MockRunnable} in the context of this DSLContext * 's underlying {@link #configuration()}'s, and of a * {@link MockDataProvider} and return the mockable's outcome. */ T mockResult(MockDataProvider provider, MockCallable mockable); /** * Run a {@link MockRunnable} in the context of this DSLContext * 's underlying {@link #configuration()}'s, and of a * {@link MockDataProvider}. */ void mock(MockDataProvider provider, MockRunnable mockable); // ------------------------------------------------------------------------- // XXX RenderContext and BindContext accessors // ------------------------------------------------------------------------- /** * Get a new {@link RenderContext} for the context of this DSLContext. *

* This will return an initialised render context as such: *

    *
  • * {@link RenderContext#castMode()} == {@link org.jooq.RenderContext.CastMode#DEFAULT DEFAULT} *
  • *
  • {@link RenderContext#declareFields()} == false
  • *
  • {@link RenderContext#declareTables()} == false
  • *
  • {@link RenderContext#format()} == false
  • *
  • {@link RenderContext#paramType()} == {@link ParamType#INDEXED}
  • *
  • {@link RenderContext#qualify()} == true
  • *
  • {@link RenderContext#subquery()} == false
  • *
* * @deprecated - [#6280] - 3.10 - Do not reuse this method. It will be * completely internal with jOOQ 4.0 */ @Deprecated(forRemoval = true, since = "3.10") @Internal @NotNull RenderContext renderContext(); /** * Render a QueryPart in the context of this DSLContext. *

* This is the same as calling renderContext().render(part) * * @param part The {@link QueryPart} to be rendered * @return The rendered SQL */ @NotNull String render(QueryPart part); /** * Render a QueryPart in the context of this DSLContext, rendering bind * variables as named parameters. *

* This is the same as calling * renderContext().paramType(NAMED).render(part) * * @param part The {@link QueryPart} to be rendered * @return The rendered SQL */ @NotNull String renderNamedParams(QueryPart part); /** * Render a QueryPart in the context of this DSLContext, rendering bind * variables as named parameters, or inlined parameters if they have no name. *

* This is the same as calling * renderContext().paramType(NAMED_OR_INLINED).render(part) * * @param part The {@link QueryPart} to be rendered * @return The rendered SQL */ @NotNull String renderNamedOrInlinedParams(QueryPart part); /** * Render a QueryPart in the context of this DSLContext, inlining all bind * variables. *

* This is the same as calling * renderContext().inline(true).render(part) * * @param part The {@link QueryPart} to be rendered * @return The rendered SQL */ @NotNull String renderInlined(QueryPart part); /** * Retrieve the bind values that will be bound by a given * QueryPart. *

* The returned List is immutable. To modify bind values, use * {@link #extractParams(QueryPart)} instead. *

* Unlike {@link #extractParams(QueryPart)}, which returns also inlined * parameters, this returns only actual bind values that will render an * actual bind value as a question mark "?" */ @NotNull List extractBindValues(QueryPart part); /** * Get a Map of named parameters. *

* The Map itself is immutable, but the {@link Param} elements * allow for modifying bind values on an existing {@link Query} (or any * other {@link QueryPart}). *

* Bind values created with {@link DSL#val(Object)} will have their bind * index as name. * * @see Param * @see DSL#param(String, Object) */ @NotNull Map> extractParams(QueryPart part); /** * Get a named parameter from a {@link QueryPart}, provided its name. *

* Bind values created with {@link DSL#val(Object)} will have their bind * index as name. * * @see Param * @see DSL#param(String, Object) */ @Nullable Param extractParam(QueryPart part, String name); /** * Get a new {@link BindContext} for the context of this * DSLContext. *

* This will return an initialised bind context as such: *

    *
  • {@link RenderContext#declareFields()} == false
  • *
  • {@link RenderContext#declareTables()} == false
  • *
*

* BindContext for JOOQ INTERNAL USE only. Avoid referencing it directly * * @deprecated - [#6280] - 3.10 - Do not reuse this method. It will be * completely internal with jOOQ 4.0 */ @Deprecated(forRemoval = true, since = "3.10") @Internal @NotNull BindContext bindContext(PreparedStatement stmt); // ------------------------------------------------------------------------- // XXX Attachable and Serializable API // ------------------------------------------------------------------------- /** * Attach this DSLContext's underlying {@link #configuration()} * to some attachables. */ void attach(Attachable... attachables); /** * Attach this DSLContext's underlying {@link #configuration()} * to some attachables. */ void attach(Collection attachables); // ------------------------------------------------------------------------- // XXX Access to the loader API // ------------------------------------------------------------------------- /** * Create a new Loader object to load data from a CSV or XML * source. */ @NotNull @CheckReturnValue @Support LoaderOptionsStep loadInto(Table table); // ------------------------------------------------------------------------- // XXX: Queries // ------------------------------------------------------------------------- /** * Wrap a collection of queries. * * @see DSL#queries(Query...) */ @NotNull @CheckReturnValue @Support Queries queries(Query... queries); /** * Wrap a collection of queries. * * @see DSL#queries(Collection) */ @NotNull @CheckReturnValue @Support Queries queries(Collection queries); /** * Wrap a collection of statements in an anonymous procedural block. * * @see DSL#begin(Statement...) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) Block begin(Statement... statements); /** * Wrap a collection of statements in an anoymous procedural block. * * @see DSL#begin(Collection) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) Block begin(Collection statements); // ------------------------------------------------------------------------- // XXX Plain SQL API // ------------------------------------------------------------------------- /** * Create a new query holding plain SQL. There must not be any binding * variables contained in the SQL. *

* Example: *

*


     * String sql = "SET SCHEMA 'abc'";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return A query wrapping the plain SQL * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL RowCountQuery query(SQL sql); /** * Create a new query holding plain SQL. There must not be any binding * variables contained in the SQL. *

* Example: *

*


     * String sql = "SET SCHEMA 'abc'";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return A query wrapping the plain SQL * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL RowCountQuery query(String sql); /** * Create a new query holding plain SQL. There must be as many bind * variables contained in the SQL, as passed in the bindings parameter. *

* Example: *

*


     * String sql = "SET SCHEMA 'abc'";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return A query wrapping the plain SQL * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @CheckReturnValue @Support @PlainSQL RowCountQuery query(String sql, Object... bindings); /** * Create a new query holding plain SQL. *

* Unlike {@link #query(String, Object...)}, the SQL passed to this method * should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * query("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will render this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return A query wrapping the plain SQL * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @CheckReturnValue @Support @PlainSQL RowCountQuery query(String sql, QueryPart... parts); /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results from the executed query. This will never be * null. * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL @Blocking Result fetch(SQL sql) throws DataAccessException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results from the executed query. This will never be * null. * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @Support @PlainSQL @Blocking Result fetch(String sql) throws DataAccessException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The results from the executed query. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking Result fetch(String sql, Object... bindings) throws DataAccessException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #fetch(String, Object...)}, the SQL passed to this method * should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetch("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The results from the executed query. This will never be * null. * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking Result fetch(String sql, QueryPart... parts) throws DataAccessException; /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* The returned {@link Cursor} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @param sql The SQL * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @Support @PlainSQL @Blocking Cursor fetchLazy(SQL sql) throws DataAccessException; /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* The returned {@link Cursor} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @param sql The SQL * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @Support @PlainSQL @Blocking Cursor fetchLazy(String sql) throws DataAccessException; /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* The returned {@link Cursor} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @param sql The SQL * @param bindings The bindings * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking Cursor fetchLazy(String sql, Object... bindings) throws DataAccessException; /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* The returned {@link Cursor} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Unlike {@link #fetchLazy(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchLazy("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking Cursor fetchLazy(String sql, QueryPart... parts) throws DataAccessException; /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The completion stage. The completed result will never be * null. * @see SQL */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(SQL sql); /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The completion stage. The completed result will never be * null. * @see SQL */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(String sql); /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The completion stage. The completed result will never be * null. * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(String sql, Object... bindings); /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. *

* Unlike {@link #fetchLazy(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchLazy("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The completion stage. The completed result will never be * null. * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(String sql, QueryPart... parts); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The completion stage. The completed result will never be * null. * @see SQL */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(Executor executor, SQL sql); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The completion stage. The completed result will never be * null. * @see SQL */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(Executor executor, String sql); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The completion stage. The completed result will never be * null. * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(Executor executor, String sql, Object... bindings); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. *

* Unlike {@link #fetchLazy(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchLazy("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The completion stage. The completed result will never be * null. * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL CompletionStage> fetchAsync(Executor executor, String sql, QueryPart... parts); /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* The returned {@link Stream} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @param sql The SQL * @return The results from the executed query. This is never * null, even if the database returns no * {@link ResultSet} * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @Support @PlainSQL @Blocking Stream fetchStream(SQL sql) throws DataAccessException; /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* The returned {@link Stream} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @param sql The SQL * @return The results from the executed query. This is never * null, even if the database returns no * {@link ResultSet} * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @Support @PlainSQL @Blocking Stream fetchStream(String sql) throws DataAccessException; /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* The returned {@link Stream} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @param sql The SQL * @param bindings The bindings * @return The results from the executed query. This is never * null, even if the database returns no * {@link ResultSet} * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking Stream fetchStream(String sql, Object... bindings) throws DataAccessException; /** * Execute a new query holding plain SQL and "lazily" return the generated * result. *

* The returned {@link Stream} holds a reference to the executed * {@link PreparedStatement} and the associated {@link ResultSet}. Data can * be fetched (or iterated over) lazily, fetching records from the * {@link ResultSet} one by one. *

* Unlike {@link #fetchStream(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchLazy("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The results from the executed query. This is never * null, even if the database returns no * {@link ResultSet} * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking Stream fetchStream(String sql, QueryPart... parts) throws DataAccessException; /** * Execute a new query holding plain SQL, possibly returning several result * sets. *

* Example (Sybase ASE): *

*


     * String sql = "sp_help 'my_table'";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @Support @PlainSQL @Blocking Results fetchMany(SQL sql) throws DataAccessException; /** * Execute a new query holding plain SQL, possibly returning several result * sets. *

* Example (Sybase ASE): *

*


     * String sql = "sp_help 'my_table'";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL */ @NotNull @Support @PlainSQL @Blocking Results fetchMany(String sql) throws DataAccessException; /** * Execute a new query holding plain SQL, possibly returning several result * sets. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Sybase ASE): *

*


     * String sql = "sp_help 'my_table'";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The results. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking Results fetchMany(String sql, Object... bindings) throws DataAccessException; /** * Execute a new query holding plain SQL, possibly returning several result * sets. *

* Unlike {@link #fetchMany(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchMany("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The results. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking Results fetchMany(String sql, QueryPart... parts) throws DataAccessException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL */ @Nullable @Support @PlainSQL @Blocking Record fetchOne(SQL sql) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL */ @Nullable @Support @PlainSQL @Blocking Record fetchOne(String sql) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL * @see DSL#sql(String, Object...) */ @Nullable @Support @PlainSQL @Blocking Record fetchOne(String sql, Object... bindings) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #fetchOne(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchOne("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL * @see DSL#sql(String, QueryPart...) */ @Nullable @Support @PlainSQL @Blocking Record fetchOne(String sql, QueryPart... parts) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record * @see SQL */ @NotNull @Support @PlainSQL @Blocking Record fetchSingle(SQL sql) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record * @see SQL */ @NotNull @Support @PlainSQL @Blocking Record fetchSingle(String sql) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking Record fetchSingle(String sql, Object... bindings) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #fetchOne(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchOne("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking Record fetchSingle(String sql, QueryPart... parts) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptional(SQL sql) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptional(String sql) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptional(String sql, Object... bindings) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #fetchOne(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchOne("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptional(String sql, QueryPart... parts) throws DataAccessException, TooManyRowsException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL */ @Nullable @Support @PlainSQL @Blocking Object fetchValue(SQL sql) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL */ @Nullable @Support @PlainSQL @Blocking Object fetchValue(String sql) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL * @see DSL#sql(String, Object...) */ @Nullable @Support @PlainSQL @Blocking Object fetchValue(String sql, Object... bindings) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #fetchValue(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchOne("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL * @see DSL#sql(String, QueryPart...) */ @Nullable @Support @PlainSQL @Blocking Object fetchValue(String sql, QueryPart... parts) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The result value from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptionalValue(SQL sql) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The result value from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptionalValue(String sql) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptionalValue(String sql, Object... bindings) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #fetchValue(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchOne("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking Optional fetchOptionalValue(String sql, QueryPart... parts) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL */ @NotNull @Support @PlainSQL @Blocking List fetchValues(SQL sql) throws DataAccessException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL */ @NotNull @Support @PlainSQL @Blocking List fetchValues(String sql) throws DataAccessException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @Support @PlainSQL @Blocking List fetchValues(String sql, Object... bindings) throws DataAccessException, InvalidResultException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #fetchValue(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * fetchOne("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @Support @PlainSQL @Blocking List fetchValues(String sql, QueryPart... parts) throws DataAccessException, InvalidResultException; /** * Execute a query holding plain SQL. *

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @see SQL */ @Support @PlainSQL @Blocking int execute(SQL sql) throws DataAccessException; /** * Execute a query holding plain SQL. *

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @see SQL */ @Support @PlainSQL @Blocking int execute(String sql) throws DataAccessException; /** * Execute a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, Object...) */ @Support @PlainSQL @Blocking int execute(String sql, Object... bindings) throws DataAccessException; /** * Execute a new query holding plain SQL. *

* Unlike {@link #execute(String, Object...)}, the SQL passed to this method * should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * execute("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will execute this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return The results from the executed query * @throws DataAccessException if something went wrong executing the query * @see SQL * @see DSL#sql(String, QueryPart...) */ @Support @PlainSQL @Blocking int execute(String sql, QueryPart... parts) throws DataAccessException; /** * Create a new query holding plain SQL. *

* There must not be any bind variables contained in the SQL *

* Use this method, when you want to take advantage of the many ways to * fetch results in jOOQ, using {@link ResultQuery}. Some examples: *

*

* * * * * * * * * * * * *
{@link ResultQuery#fetchLazy()}Open a cursor and fetch records one by one
{@link ResultQuery#fetchInto(Class)}Fetch records into a custom POJO (optionally annotated with JPA * annotations)
{@link ResultQuery#fetchInto(RecordHandler)}Fetch records into a custom callback (similar to Spring's RowMapper)
*

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return An executable query * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL ResultQuery resultQuery(SQL sql); /** * Create a new query holding plain SQL. *

* There must not be any bind variables contained in the SQL *

* Use this method, when you want to take advantage of the many ways to * fetch results in jOOQ, using {@link ResultQuery}. Some examples: *

*

* * * * * * * * * * * * *
{@link ResultQuery#fetchLazy()}Open a cursor and fetch records one by one
{@link ResultQuery#fetchInto(Class)}Fetch records into a custom POJO (optionally annotated with JPA * annotations)
{@link ResultQuery#fetchInto(RecordHandler)}Fetch records into a custom callback (similar to Spring's RowMapper)
*

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @return An executable query * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL ResultQuery resultQuery(String sql); /** * Create a new query holding plain SQL. *

* There must be as many bind variables contained in the SQL, as passed in * the bindings parameter *

* Use this method, when you want to take advantage of the many ways to * fetch results in jOOQ, using {@link ResultQuery}. Some examples: *

*

* * * * * * * * * * * * *
{@link ResultQuery#fetchLazy()}Open a cursor and fetch records one by one
{@link ResultQuery#fetchInto(Class)}Fetch records into a custom POJO (optionally annotated with JPA * annotations)
{@link ResultQuery#fetchInto(RecordHandler)}Fetch records into a custom callback (similar to Spring's RowMapper)
*

* Example (Postgres): *

*


     * String sql = "FETCH ALL IN \"<unnamed cursor 1>\"";
Example * (SQLite): *

*


     * String sql = "pragma table_info('my_table')";
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @param sql The SQL * @param bindings The bindings * @return A query wrapping the plain SQL * @see SQL * @see DSL#sql(String, Object...) */ @NotNull @CheckReturnValue @Support @PlainSQL ResultQuery resultQuery(String sql, Object... bindings); /** * Create a new query holding plain SQL. *

* Unlike {@link #resultQuery(String, Object...)}, the SQL passed to this * method should not contain any bind variables. Instead, you can pass * {@link QueryPart} objects to the method which will be rendered at indexed * locations of your SQL string as such:


     * // The following query
     * resultQuery("select {0}, {1} from {2}", val(1), inline("test"), name("DUAL"));
     *
     * // Will render this SQL by default, using SQLDialect.ORACLE:
     * select ?, 'test' from "DUAL"
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! One way to escape * literals is to use {@link DSL#name(String...)} and similar methods * * @param sql The SQL clause, containing {numbered placeholders} where query * parts can be injected * @param parts The {@link QueryPart} objects that are rendered at the * {numbered placeholder} locations * @return A query wrapping the plain SQL * @see SQL * @see DSL#sql(String, QueryPart...) */ @NotNull @CheckReturnValue @Support @PlainSQL ResultQuery resultQuery(String sql, QueryPart... parts); // ------------------------------------------------------------------------- // XXX JDBC convenience methods // ------------------------------------------------------------------------- /** * Fetch all data from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Result}. *

* After fetching all data, the JDBC ResultSet will be closed. *

* Use {@link #fetchLazy(ResultSet)}, to fetch one Record at a * time, instead of load the entire ResultSet into a jOOQ * Result at once. * * @param rs The JDBC ResultSet to fetch data from * @return The resulting jOOQ Result. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(ResultSet rs) throws DataAccessException; /** * Fetch all data from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Result}. *

* After fetching all data, the JDBC ResultSet will be closed. *

* Use {@link #fetchLazy(ResultSet)}, to fetch one Record at a * time, instead of load the entire ResultSet into a jOOQ * Result at once. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The resulting jOOQ Result. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(ResultSet rs, Field... fields) throws DataAccessException; /** * Fetch all data from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Result}. *

* After fetching all data, the JDBC ResultSet will be closed. *

* Use {@link #fetchLazy(ResultSet)}, to fetch one Record at a * time, instead of load the entire ResultSet into a jOOQ * Result at once. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The resulting jOOQ Result. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(ResultSet rs, DataType... types) throws DataAccessException; /** * Fetch all data from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Result}. *

* After fetching all data, the JDBC ResultSet will be closed. *

* Use {@link #fetchLazy(ResultSet)}, to fetch one Record at a * time, instead of load the entire ResultSet into a jOOQ * Result at once. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The resulting jOOQ Result. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(ResultSet rs, Class... types) throws DataAccessException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. * * @param rs The JDBC ResultSet to fetch data from * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking Record fetchOne(ResultSet rs) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking Record fetchOne(ResultSet rs, Field... fields) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking Record fetchOne(ResultSet rs, DataType... types) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking Record fetchOne(ResultSet rs, Class... types) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. * * @param rs The JDBC ResultSet to fetch data from * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Record fetchSingle(ResultSet rs) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Record fetchSingle(ResultSet rs, Field... fields) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Record fetchSingle(ResultSet rs, DataType... types) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Record fetchSingle(ResultSet rs, Class... types) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. * * @param rs The JDBC ResultSet to fetch data from * @return The resulting jOOQ record * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(ResultSet rs) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The resulting jOOQ record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(ResultSet rs, Field... fields) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The resulting jOOQ record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(ResultSet rs, DataType... types) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and transform it to a jOOQ * {@link Record}. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The resulting jOOQ record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(ResultSet rs, Class... types) throws DataAccessException, TooManyRowsException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. * * @param rs The JDBC ResultSet to fetch data from * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @Nullable @Support @Blocking Object fetchValue(ResultSet rs) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional field argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param field The field to use in the desired output * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @Nullable @Support @Blocking T fetchValue(ResultSet rs, Field field) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional type argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param type The data type to use in the desired output * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @Nullable @Support @Blocking T fetchValue(ResultSet rs, DataType type) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional type argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param type The data types to use in the desired output * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @Nullable @Support @Blocking T fetchValue(ResultSet rs, Class type) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. * * @param rs The JDBC ResultSet to fetch data from * @return The resulting value * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking Optional fetchOptionalValue(ResultSet rs) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional field argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param field The field to use in the desired output * @return The resulting value * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking Optional fetchOptionalValue(ResultSet rs, Field field) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional type argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param type The data type to use in the desired output * @return The resulting value * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking Optional fetchOptionalValue(ResultSet rs, DataType type) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a record from a JDBC {@link ResultSet} and return the only * contained value. *

* This will internally fetch all records and throw an exception if there * was more than one resulting record. *

* The additional type argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param type The data types to use in the desired output * @return The resulting value * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking Optional fetchOptionalValue(ResultSet rs, Class type) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch a result from a JDBC {@link ResultSet} and return the only * contained column's values. * * @param rs The JDBC ResultSet to fetch data from * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking List fetchValues(ResultSet rs) throws DataAccessException, InvalidResultException; /** * Fetch a result from a JDBC {@link ResultSet} and return the only * contained column's values. *

* The additional field argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param field The field to use in the desired output * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking List fetchValues(ResultSet rs, Field field) throws DataAccessException, InvalidResultException; /** * Fetch a result from a JDBC {@link ResultSet} and return the only * contained column's values. *

* The additional type argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param type The data type to use in the desired output * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking List fetchValues(ResultSet rs, DataType type) throws DataAccessException, InvalidResultException; /** * Fetch a result from a JDBC {@link ResultSet} and return the only * contained column's values. *

* The additional type argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param type The data types to use in the desired output * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking List fetchValues(ResultSet rs, Class type) throws DataAccessException, InvalidResultException; /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Cursor}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. * * @param rs The JDBC ResultSet to fetch data from * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(ResultSet rs) throws DataAccessException; /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Cursor}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(ResultSet rs, Field... fields) throws DataAccessException; /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Cursor}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(ResultSet rs, DataType... types) throws DataAccessException; /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Cursor}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(ResultSet rs, Class... types) throws DataAccessException; /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. * * @param rs The JDBC ResultSet to fetch data from * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(ResultSet rs); /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(ResultSet rs, Field... fields); /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(ResultSet rs, DataType... types); /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(ResultSet rs, Class... types); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. * * @param rs The JDBC ResultSet to fetch data from * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, ResultSet rs); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, ResultSet rs, Field... fields); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, ResultSet rs, DataType... types); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, ResultSet rs, Class... types); /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Stream}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. * * @param rs The JDBC ResultSet to fetch data from * @return The resulting stream * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(ResultSet rs) throws DataAccessException; /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Stream}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. *

* The additional fields argument is used by jOOQ to coerce * field names and data types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param fields The fields to use in the desired output * @return The resulting stream * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(ResultSet rs, Field... fields) throws DataAccessException; /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Stream}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The resulting stream * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(ResultSet rs, DataType... types) throws DataAccessException; /** * Wrap a JDBC {@link ResultSet} into a jOOQ {@link Stream}. *

* Use {@link #fetch(ResultSet)}, to load the entire ResultSet * into a jOOQ Result at once. *

* The additional types argument is used by jOOQ to coerce data * types to the desired output * * @param rs The JDBC ResultSet to fetch data from * @param types The data types to use in the desired output * @return The resulting stream * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(ResultSet rs, Class... types) throws DataAccessException; /** * Fetch all data from a formatted string. *

* The supplied string is supposed to be formatted in a human-readable way. * This is the same as calling fetchFromTXT(string, "{null}") * * @param string The formatted string * @return The transformed result. This will never be null. * @see #fetchFromTXT(String, String) * @throws DataAccessException If the supplied string does not adhere to the * above format rules. */ @NotNull @Support Result fetchFromTXT(String string) throws DataAccessException; /** * Fetch all data from a formatted string. *

* This method supports parsing results from two types of human-readable * formats: *

The jOOQ {@link Result#format()}

*

* This format is recognised by the fact that the first line starts with a * "plus" sign:


     * +-----+-----+--------------------------+
     * |COL1 |COL2 |COL3 containing whitespace|
     * +-----+-----+--------------------------+
     * |val1 |1    |some text                 |
     * |val2 | 2   | more text                |
     * +-----+-----+--------------------------+
     * 
This method will decode the above formatted string * according to the following rules: *
    *
  • The number of columns is defined by the number of dash groups in the * first line. Groups are separated by exactly one "plus" sign
  • *
  • The column types are VARCHAR(N) where * N = number of dashes per dash group
  • *
  • The column names are defined by the trimmed text contained in the * second row
  • *
  • The data is defined by the trimmed text contained in the subsequent * rows
  • *
*

The H2 database test data format

*

* The supplied string is supposed to be formatted in the following, * human-readable way:


     * COL1  COL2   COL3 containing whitespace
     * ----- ----   --------------------------
     * val1  1      some text
     * val2   2      more text
     * 
This method will decode the above formatted string * according to the following rules: *
    *
  • The number of columns is defined by the number of dash groups in the * second line. Groups are separated by space(s)
  • *
  • The column types are VARCHAR(N) where * N = number of dashes per dash group
  • *
  • The column names are defined by the trimmed text contained in the * first row
  • *
  • The data is defined by the trimmed text contained in the subsequent * rows
  • *
*

Both parsing methods

*

* Both parsing methods make no assumption about the resulting data types. * Instead, all data is string-based. * * @param string The formatted string * @param nullLiteral The string literal to be used as null * value. * @return The transformed result. This will never be null. * @throws DataAccessException If the supplied string does not adhere to the * above format rules. */ @NotNull @Support Result fetchFromTXT(String string, String nullLiteral) throws DataAccessException; /** * Convert an HTML table into a jOOQ {@link Result}. *

* This is the inverse operation of {@link Result#formatHTML()}. It works * according to the following parsing rules: *

    *
  • The input is expected to be well-formed XML. XHTML conformance is not * required - i.e. unknown elements / attributes, or elements / attributes * not specified here, such as <caption>, * <thead>, <tbody> are simply ignored.
  • *
  • The surrounding <table> element is optional, but it * may appear only once
  • *
  • A single row containing table headings <th> is * allowed. Further rows containing table headings are ignored. Table * headings define field names. In the absence of table headings, field * names are generated.
  • *
  • The first row <tr> specifies the number of columns in * the table (regardless if it contains table headings or not). Subsequent * rows containing less columns will be padded. Subsequent rows containing * more columns will be truncated.
  • *
  • Comments are ignored
  • *
  • Nested tables are not supported
  • *
*

* Ideal input looks like this:


     * <table>
     * <tr><th>COL1</th><th>COL2</th></tr>
     * <tr><td>1</td><td>a</td></tr>
     * <tr><td>2</td><td>b</td></tr>
     * </table>
     * 
     * 
* * @param string The HTML-formatted string. * @return The transformed result. This will never be null. * @throws DataAccessException If the supplied string does not adhere to the * above format rules. */ @NotNull @Support Result fetchFromHTML(String string) throws DataAccessException; /** * Fetch all data from a CSV string. *

* This is the same as calling fetchFromCSV(string, ',') and * the inverse of calling {@link Result#formatCSV()}. The first row of the * CSV data is required to hold field name information. Subsequent rows may * contain data, which is interpreted as {@link String}. Use the various * conversion methods to retrieve other data types from the * Result: *

    *
  • {@link Result#getValues(Field, Class)}
  • *
  • {@link Result#getValues(int, Class)}
  • *
  • {@link Result#getValues(String, Class)}
  • *
  • {@link Result#getValues(Field, Converter)}
  • *
  • {@link Result#getValues(int, Converter)}
  • *
  • {@link Result#getValues(String, Converter)}
  • *
*

* Missing values result in null. Empty values result in empty * Strings * * @param string The CSV string * @return The transformed result. This will never be null. * @throws DataAccessException If anything went wrong parsing the CSV file * @see #fetchFromCSV(String, char) */ @NotNull @Support Result fetchFromCSV(String string) throws DataAccessException; /** * Fetch all data from a CSV string. *

* This is inverse of calling {@link Result#formatCSV(char)}. The first row * of the CSV data is required to hold field name information. Subsequent * rows may contain data, which is interpreted as {@link String}. Use the * various conversion methods to retrieve other data types from the * Result: *

    *
  • {@link Result#getValues(Field, Class)}
  • *
  • {@link Result#getValues(int, Class)}
  • *
  • {@link Result#getValues(String, Class)}
  • *
  • {@link Result#getValues(Field, Converter)}
  • *
  • {@link Result#getValues(int, Converter)}
  • *
  • {@link Result#getValues(String, Converter)}
  • *
*

* Missing values result in null. Empty values result in empty * Strings * * @param string The CSV string * @param delimiter The delimiter to expect between records * @return The transformed result. This will never be null. * @throws DataAccessException If anything went wrong parsing the CSV file * @see #fetchFromCSV(String) * @see #fetchFromStringData(List) */ @NotNull @Support Result fetchFromCSV(String string, char delimiter) throws DataAccessException; /** * Fetch all data from a CSV string. *

* This is the same as calling fetchFromCSV(string, ',') and * the inverse of calling {@link Result#formatCSV(boolean)}. Rows may * contain data, which is interpreted as {@link String}. Use the various * conversion methods to retrieve other data types from the * Result: *

    *
  • {@link Result#getValues(Field, Class)}
  • *
  • {@link Result#getValues(int, Class)}
  • *
  • {@link Result#getValues(String, Class)}
  • *
  • {@link Result#getValues(Field, Converter)}
  • *
  • {@link Result#getValues(int, Converter)}
  • *
  • {@link Result#getValues(String, Converter)}
  • *
*

* Missing values result in null. Empty values result in empty * Strings * * @param string The CSV string * @param header Whether to parse the first line as a CSV header line * @return The transformed result. This will never be null. * @throws DataAccessException If anything went wrong parsing the CSV file * @see #fetchFromCSV(String, char) */ @NotNull @Support Result fetchFromCSV(String string, boolean header) throws DataAccessException; /** * Fetch all data from a CSV string. *

* This is inverse of calling {@link Result#formatCSV(boolean, char)}. Rows * may contain data, which are interpreted as {@link String}. Use the * various conversion methods to retrieve other data types from the * Result: *

    *
  • {@link Result#getValues(Field, Class)}
  • *
  • {@link Result#getValues(int, Class)}
  • *
  • {@link Result#getValues(String, Class)}
  • *
  • {@link Result#getValues(Field, Converter)}
  • *
  • {@link Result#getValues(int, Converter)}
  • *
  • {@link Result#getValues(String, Converter)}
  • *
*

* Missing values result in null. Empty values result in empty * Strings * * @param string The CSV string * @param header Whether to parse the first line as a CSV header line * @param delimiter The delimiter to expect between records * @return The transformed result. This will never be null. * @throws DataAccessException If anything went wrong parsing the CSV file * @see #fetchFromCSV(String) * @see #fetchFromStringData(List) */ @NotNull @Support Result fetchFromCSV(String string, boolean header, char delimiter) throws DataAccessException; /** * Fetch all data from a JSON string. *

* This is the inverse of calling {@link Result#formatJSON()}. Use the * various conversion methods to retrieve other data types from the * Result: *

    *
  • {@link Result#getValues(Field, Class)}
  • *
  • {@link Result#getValues(int, Class)}
  • *
  • {@link Result#getValues(String, Class)}
  • *
  • {@link Result#getValues(Field, Converter)}
  • *
  • {@link Result#getValues(int, Converter)}
  • *
  • {@link Result#getValues(String, Converter)}
  • *
*

* Missing values result in null. Empty values result in empty * Strings * * @param string The JSON string * @return The transformed result. This will never be null. * @throws DataAccessException If anything went wrong parsing the JSON file */ @NotNull @Support Result fetchFromJSON(String string); /** * Fetch all data from an XML string. *

* This is the inverse of calling {@link Result#formatXML()}. Use the * various conversion methods to retrieve other data types from the * Result: *

    *
  • {@link Result#getValues(Field, Class)}
  • *
  • {@link Result#getValues(int, Class)}
  • *
  • {@link Result#getValues(String, Class)}
  • *
  • {@link Result#getValues(Field, Converter)}
  • *
  • {@link Result#getValues(int, Converter)}
  • *
  • {@link Result#getValues(String, Converter)}
  • *
*

* Missing values result in null. Empty values result in empty * Strings * * @param string The XML string * @return The transformed result. This will never be null. * @throws DataAccessException If anything went wrong parsing the XML file */ @NotNull @Support Result fetchFromXML(String string); /** * Fetch all data from a list of strings. *

* This is used by methods such as *

    *
  • {@link #fetchFromCSV(String)}
  • *
  • {@link #fetchFromTXT(String)}
  • *
* The first element of the argument list should contain column names. * Subsequent elements contain actual data. The degree of all arrays * contained in the argument should be the same, although this is not a * requirement. jOOQ will ignore excess data, and fill missing data with * null. * * @param data The data to be transformed into a Result * @return The transformed result. This will never be null. * @see #fetchFromStringData(List) */ @NotNull @Support Result fetchFromStringData(String[]... data); /** * Fetch all data from a list of strings. *

* This is used by methods such as *

    *
  • {@link #fetchFromCSV(String)}
  • *
  • {@link #fetchFromTXT(String)}
  • *
* The first element of the argument list should contain column names. * Subsequent elements contain actual data. The degree of all arrays * contained in the argument should be the same, although this is not a * requirement. jOOQ will ignore excess data, and fill missing data with * null. * * @param data The data to be transformed into a Result * @return The transformed result. This will never be null. */ @NotNull @Support Result fetchFromStringData(List data); /** * Fetch all data from a list of strings. *

* This is used by methods such as *

    *
  • {@link #fetchFromCSV(String)}
  • *
  • {@link #fetchFromTXT(String)}
  • *
* The degree of all arrays contained in the argument should be the same, * although this is not a requirement. jOOQ will ignore excess data, and * fill missing data with null. * * @param data The data to be transformed into a Result * @param header Whether to interpret the first line as a set of column * names. * @return The transformed result. This will never be null. */ @NotNull @Support Result fetchFromStringData(List data, boolean header); // ------------------------------------------------------------------------- // XXX Global Query factory // ------------------------------------------------------------------------- /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String)} for strictly non-recursive CTE * and {@link #withRecursive(String)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep with(String alias); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep with(String alias, String... fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep with(String alias, Collection fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(Name)} for strictly non-recursive CTE * and {@link #withRecursive(Name)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep with(Name alias); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(Name, Name...)} for strictly non-recursive CTE * and {@link #withRecursive(Name, Name...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep with(Name alias, Name... fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(Name, Name...)} for strictly non-recursive CTE * and {@link #withRecursive(Name, Name...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep with(Name alias, Collection fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE and * {@link #withRecursive(String, String...)} for strictly recursive CTE. *

* This works in a similar way as {@link #with(String, String...)}, except * that all column names are produced by a function that receives the CTE's * {@link Select} columns as input. * * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support WithAsStep with(String alias, Function, ? extends String> fieldNameFunction); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE and * {@link #withRecursive(String, String...)} for strictly recursive CTE. *

* This works in a similar way as {@link #with(String, String...)}, except * that all column names are produced by a function that receives the CTE's * {@link Select} columns and their column indexes as input. * * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support WithAsStep with(String alias, BiFunction, ? super Integer, ? extends String> fieldNameFunction); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep1 with(String alias, String fieldAlias1); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep2 with(String alias, String fieldAlias1, String fieldAlias2); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep3 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep4 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep5 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep6 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep7 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep8 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep9 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep10 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep11 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep12 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep13 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep14 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep15 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep16 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep17 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep18 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep19 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep20 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep21 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep22 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21, String fieldAlias22); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep1 with(Name alias, Name fieldAlias1); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep2 with(Name alias, Name fieldAlias1, Name fieldAlias2); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep3 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep4 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep5 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep6 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep7 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep8 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep9 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep10 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep11 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep12 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep13 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep14 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep15 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep16 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep17 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep18 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep19 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep20 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep21 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithAsStep22 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21, Name fieldAlias22); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* Reusable {@link CommonTableExpression} types can be constructed through *

    *
  • {@link DSL#name(String...)}
  • *
  • {@link Name#fields(String...)}
  • *
  • * {@link DerivedColumnList#as(ResultQuery)}
  • *
*

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(CommonTableExpression...)} for strictly non-recursive CTE * and {@link #withRecursive(CommonTableExpression...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithStep with(CommonTableExpression... tables); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* Reusable {@link CommonTableExpression} types can be constructed through *

    *
  • {@link DSL#name(String...)}
  • *
  • {@link Name#fields(String...)}
  • *
  • * {@link DerivedColumnList#as(ResultQuery)}
  • *
*

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(CommonTableExpression...)} for strictly non-recursive CTE * and {@link #withRecursive(CommonTableExpression...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support WithStep with(Collection> tables); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String)} for strictly non-recursive CTE * and {@link #withRecursive(String)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep withRecursive(String alias); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep withRecursive(String alias, String... fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep withRecursive(String alias, Collection fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(Name)} for strictly non-recursive CTE * and {@link #withRecursive(Name)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep withRecursive(Name alias); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(Name, Name...)} for strictly non-recursive CTE * and {@link #withRecursive(Name, Name...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep withRecursive(Name alias, Name... fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(Name, Name...)} for strictly non-recursive CTE * and {@link #withRecursive(Name, Name...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep withRecursive(Name alias, Collection fieldAliases); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. *

* This works in a similar way as {@link #with(String, String...)}, except * that all column names are produced by a function that receives the CTE's * {@link Select} columns as input. * * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep withRecursive(String alias, Function, ? extends String> fieldNameFunction); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. *

* This works in a similar way as {@link #with(String, String...)}, except * that all column names are produced by a function that receives the CTE's * {@link Select} columns and their column indexes as input. * * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ FIREBIRD, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) WithAsStep withRecursive(String alias, BiFunction, ? super Integer, ? extends String> fieldNameFunction); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep1 withRecursive(String alias, String fieldAlias1); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep2 withRecursive(String alias, String fieldAlias1, String fieldAlias2); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep3 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep4 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep5 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep6 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep7 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep8 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep9 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep10 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep11 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep12 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep13 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep14 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep15 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep16 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep17 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep18 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep19 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep20 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep21 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep22 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21, String fieldAlias22); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep1 withRecursive(Name alias, Name fieldAlias1); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep2 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep3 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep4 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep5 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep6 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep7 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep8 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep9 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep10 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep11 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep12 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep13 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep14 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep15 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep16 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep17 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep18 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep19 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep20 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep21 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(String, String...)} for strictly non-recursive CTE * and {@link #withRecursive(String, String...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithAsStep22 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21, Name fieldAlias22); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* Reusable {@link CommonTableExpression} types can be constructed through *

    *
  • {@link DSL#name(String...)}
  • *
  • {@link Name#fields(String...)}
  • *
  • * {@link DerivedColumnList#as(ResultQuery)}
  • *
*

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(CommonTableExpression...)} for strictly non-recursive CTE * and {@link #withRecursive(CommonTableExpression...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithStep withRecursive(CommonTableExpression... tables); /** * Create a WITH clause to supply subsequent * SELECT, UPDATE, INSERT, * DELETE, and MERGE statements with * {@link CommonTableExpression}s. *

* Reusable {@link CommonTableExpression} types can be constructed through *

    *
  • {@link DSL#name(String...)}
  • *
  • {@link Name#fields(String...)}
  • *
  • * {@link DerivedColumnList#as(ResultQuery)}
  • *
*

* The RECURSIVE keyword may be optional or unsupported in some * databases, in case of which it will not be rendered. For optimal database * interoperability and readability, however, it is suggested that you use * {@link #with(CommonTableExpression...)} for strictly non-recursive CTE * and {@link #withRecursive(CommonTableExpression...)} for strictly * recursive CTE. */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) WithStep withRecursive(Collection> tables); /** * Create a new DSL select statement, projecting the known columns from a * table. *

* This will project the known columns from the argument table querying * {@link Table#fields()}. If no known columns are available (e.g. because * the table has been created using {@link DSL#table(String)}), then * SELECT * is projected. *

* Example: *

*


     * SELECT table.col1, table.col2 FROM table
     * 
*/ @NotNull @CheckReturnValue @Support SelectWhereStep selectFrom(TableLike table); /** * Create a new DSL select statement, projecting *. *

* Without knowing any columns from the argument table (see * {@link #selectFrom(TableLike)}), this will project SELECT *. *

* Example: *

*


     * SELECT * FROM table
     * 
* * @see DSL#table(Name) */ @NotNull @CheckReturnValue @Support SelectWhereStep selectFrom(Name table); /** * Create a new DSL select statement, projecting *. *

* Without knowing any columns from the argument table (see * {@link #selectFrom(TableLike)}), this will project SELECT *. *

* Example: *

*


     * SELECT * FROM table
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @see DSL#table(SQL) * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL SelectWhereStep selectFrom(SQL sql); /** * Create a new DSL select statement, projecting *. *

* Without knowing any columns from the argument table (see * {@link #selectFrom(TableLike)}), this will project SELECT *. *

* Example: *

*


     * SELECT * FROM table
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @see DSL#table(String) * @see DSL#sql(String) * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL SelectWhereStep selectFrom(String sql); /** * Create a new DSL select statement, projecting *. *

* Without knowing any columns from the argument table (see * {@link #selectFrom(TableLike)}), this will project SELECT *. *

* Example: *

*


     * SELECT * FROM table
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @see DSL#table(String, Object...) * @see DSL#sql(String, Object...) * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL SelectWhereStep selectFrom(String sql, Object... bindings); /** * Create a new DSL select statement, projecting *. *

* Without knowing any columns from the argument table (see * {@link #selectFrom(TableLike)}), this will project SELECT *. *

* Example: *

*


     * SELECT * FROM table
     * 
*

* NOTE: When inserting plain SQL into jOOQ objects, you must * guarantee syntax integrity. You may also create the possibility of * malicious SQL injection. Be sure to properly use bind variables and/or * escape literals when concatenated into SQL clauses! * * @see DSL#table(String, QueryPart...) * @see DSL#sql(String, QueryPart...) * @see SQL */ @NotNull @CheckReturnValue @Support @PlainSQL SelectWhereStep selectFrom(String sql, QueryPart... parts); /** * Create a new DSL select statement. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(Collection)} instead. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.select(fields)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
*

* Note that passing an empty collection conveniently produces * SELECT * semantics, i.e. it: *

    *
  • Renders SELECT tab1.col1, tab1.col2, …, tabN.colN if * all columns are known
  • *
  • Renders SELECT * if not all columns are known, e.g. when * using plain SQL
  • *
* * @see DSL#select(Collection) */ @NotNull @CheckReturnValue @Support SelectSelectStep select(Collection fields); /** * Create a new DSL select statement. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectFieldOrAsterisk...)} instead. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.select(field1, field2)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2)
     *       .execute();
     * 
*

* Note that passing an empty collection conveniently produces * SELECT * semantics, i.e. it: *

    *
  • Renders SELECT tab1.col1, tab1.col2, …, tabN.colN if * all columns are known
  • *
  • Renders SELECT * if not all columns are known, e.g. when * using plain SQL
  • *
* * @see DSL#select(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep select(SelectFieldOrAsterisk... fields); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Field#in(Select)}, {@link Field#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row2#in(Select)}, {@link Row2#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row3#in(Select)}, {@link Row3#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row4#in(Select)}, {@link Row4#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, field4)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row5#in(Select)}, {@link Row5#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, field4, field5)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row6#in(Select)}, {@link Row6#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field5, field6)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row7#in(Select)}, {@link Row7#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field6, field7)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row8#in(Select)}, {@link Row8#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field7, field8)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row9#in(Select)}, {@link Row9#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field8, field9)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row10#in(Select)}, {@link Row10#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field9, field10)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row11#in(Select)}, {@link Row11#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field10, field11)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row12#in(Select)}, {@link Row12#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field11, field12)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row13#in(Select)}, {@link Row13#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field12, field13)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row14#in(Select)}, {@link Row14#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field13, field14)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row15#in(Select)}, {@link Row15#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field14, field15)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row16#in(Select)}, {@link Row16#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field15, field16)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row17#in(Select)}, {@link Row17#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field16, field17)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row18#in(Select)}, {@link Row18#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field17, field18)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row19#in(Select)}, {@link Row19#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field18, field19)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row20#in(Select)}, {@link Row20#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field19, field20)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row21#in(Select)}, {@link Row21#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field20, field21)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField field21); /** * Create a new DSL select statement. *

* This is the same as {@link #select(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row22#in(Select)}, {@link Row22#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#select(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .select(field1, field2, field3, .., field21, field22)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField field21, SelectField field22); /** * Create a new DSL select statement. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(Collection)} instead. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.selectDistinct(fields)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
*

* Note that passing an empty collection conveniently produces * SELECT DISTINCT * semantics, i.e. it: *

    *
  • Renders SELECT DISTINCT tab1.col1, tab1.col2, …, tabN.colN if * all columns are known
  • *
  • Renders SELECT DISTINCT * if not all columns are known, e.g. when * using plain SQL
  • *
* * @see DSL#selectDistinct(Collection) */ @NotNull @CheckReturnValue @Support SelectSelectStep selectDistinct(Collection fields); /** * Create a new DSL select statement. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectFieldOrAsterisk...)} instead. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.selectDistinct(field1, field2)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
*

* Note that passing an empty collection conveniently produces * SELECT DISTINCT * semantics, i.e. it: *

    *
  • Renders SELECT DISTINCT tab1.col1, tab1.col2, …, tabN.colN if * all columns are known
  • *
  • Renders SELECT DISTINCT * if not all columns are known, e.g. when * using plain SQL
  • *
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep selectDistinct(SelectFieldOrAsterisk... fields); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Field#in(Select)}, {@link Field#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row2#in(Select)}, {@link Row2#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row3#in(Select)}, {@link Row3#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row4#in(Select)}, {@link Row4#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, field4)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row5#in(Select)}, {@link Row5#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, field4, field5)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row6#in(Select)}, {@link Row6#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field5, field6)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row7#in(Select)}, {@link Row7#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field6, field7)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row8#in(Select)}, {@link Row8#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field7, field8)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row9#in(Select)}, {@link Row9#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field8, field9)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row10#in(Select)}, {@link Row10#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field9, field10)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row11#in(Select)}, {@link Row11#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field10, field11)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row12#in(Select)}, {@link Row12#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field11, field12)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row13#in(Select)}, {@link Row13#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field12, field13)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row14#in(Select)}, {@link Row14#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field13, field14)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row15#in(Select)}, {@link Row15#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field14, field15)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row16#in(Select)}, {@link Row16#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field15, field16)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row17#in(Select)}, {@link Row17#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field16, field17)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row18#in(Select)}, {@link Row18#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field17, field18)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row19#in(Select)}, {@link Row19#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field18, field19)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row20#in(Select)}, {@link Row20#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field19, field20)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row21#in(Select)}, {@link Row21#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field20, field21)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField field21); /** * Create a new DSL select statement. *

* This is the same as {@link #selectDistinct(SelectFieldOrAsterisk...)}, except that it * declares additional record-level typesafety, which is needed by * {@link Row22#in(Select)}, {@link Row22#equal(Select)} and other predicate * building methods taking subselect arguments. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectDistinct(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)} instead. *

* Example:


     * using(configuration)
     *       .selectDistinct(field1, field2, field3, .., field21, field22)
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectDistinct(SelectFieldOrAsterisk...) * @see #selectDistinct(SelectFieldOrAsterisk...) */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectDistinct(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField field21, SelectField field22); /** * Create a new DSL select statement for a constant 0 literal. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectZero()} instead. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.selectZero()
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#zero() * @see DSL#selectZero() */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectZero(); /** * Create a new DSL select statement for a constant 1 literal. *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectOne()} instead. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.selectOne()
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#one() * @see DSL#selectOne() */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectOne(); /** * Create a new DSL select statement for COUNT(*). *

* This creates an attached, renderable and executable SELECT * statement from this {@link DSLContext}. If you don't need to render or * execute this SELECT statement (e.g. because you want to * create a subselect), consider using the static * {@link DSL#selectCount()} instead. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.selectCount()
     *       .from(table1)
     *       .join(table2).on(field1.equal(field2))
     *       .where(field1.greaterThan(100))
     *       .orderBy(field2);
     * 
* * @see DSL#selectCount() */ @NotNull @CheckReturnValue @Support SelectSelectStep> selectCount(); /** * Create a new {@link SelectQuery} */ @NotNull @CheckReturnValue @Support SelectQuery selectQuery(); /** * Create a new {@link SelectQuery} * * @param table The table to select data from * @return The new {@link SelectQuery} */ @NotNull @CheckReturnValue @Support SelectQuery selectQuery(TableLike table); /** * Create a new {@link InsertQuery} * * @param into The table to insert data into * @return The new {@link InsertQuery} */ @NotNull @CheckReturnValue @Support InsertQuery insertQuery(Table into); /** * Create a new DSL insert statement. *

* This type of insert may feel more convenient to some users, as it uses * the UPDATE statement's SET a = b syntax. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.insertInto(table)
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .newRecord()
     *       .set(field1, value3)
     *       .set(field2, value4)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertSetStep insertInto(Table into); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1)
     *       .values(field1)
     *       .values(field1)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep1 insertInto(Table into, Field field1); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2)
     *       .values(field1, field2)
     *       .values(field1, field2)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep2 insertInto(Table into, Field field1, Field field2); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3)
     *       .values(field1, field2, field3)
     *       .values(field1, field2, field3)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep3 insertInto(Table into, Field field1, Field field2, Field field3); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, field4)
     *       .values(field1, field2, field3, field4)
     *       .values(field1, field2, field3, field4)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep4 insertInto(Table into, Field field1, Field field2, Field field3, Field field4); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, field4, field5)
     *       .values(field1, field2, field3, field4, field5)
     *       .values(field1, field2, field3, field4, field5)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep5 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field5, field6)
     *       .values(valueA1, valueA2, valueA3, .., valueA5, valueA6)
     *       .values(valueB1, valueB2, valueB3, .., valueB5, valueB6)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep6 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field6, field7)
     *       .values(valueA1, valueA2, valueA3, .., valueA6, valueA7)
     *       .values(valueB1, valueB2, valueB3, .., valueB6, valueB7)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep7 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field7, field8)
     *       .values(valueA1, valueA2, valueA3, .., valueA7, valueA8)
     *       .values(valueB1, valueB2, valueB3, .., valueB7, valueB8)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep8 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field8, field9)
     *       .values(valueA1, valueA2, valueA3, .., valueA8, valueA9)
     *       .values(valueB1, valueB2, valueB3, .., valueB8, valueB9)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep9 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field9, field10)
     *       .values(valueA1, valueA2, valueA3, .., valueA9, valueA10)
     *       .values(valueB1, valueB2, valueB3, .., valueB9, valueB10)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep10 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field10, field11)
     *       .values(valueA1, valueA2, valueA3, .., valueA10, valueA11)
     *       .values(valueB1, valueB2, valueB3, .., valueB10, valueB11)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep11 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field11, field12)
     *       .values(valueA1, valueA2, valueA3, .., valueA11, valueA12)
     *       .values(valueB1, valueB2, valueB3, .., valueB11, valueB12)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep12 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field12, field13)
     *       .values(valueA1, valueA2, valueA3, .., valueA12, valueA13)
     *       .values(valueB1, valueB2, valueB3, .., valueB12, valueB13)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep13 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field13, field14)
     *       .values(valueA1, valueA2, valueA3, .., valueA13, valueA14)
     *       .values(valueB1, valueB2, valueB3, .., valueB13, valueB14)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep14 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field14, field15)
     *       .values(valueA1, valueA2, valueA3, .., valueA14, valueA15)
     *       .values(valueB1, valueB2, valueB3, .., valueB14, valueB15)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep15 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field15, field16)
     *       .values(valueA1, valueA2, valueA3, .., valueA15, valueA16)
     *       .values(valueB1, valueB2, valueB3, .., valueB15, valueB16)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep16 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field16, field17)
     *       .values(valueA1, valueA2, valueA3, .., valueA16, valueA17)
     *       .values(valueB1, valueB2, valueB3, .., valueB16, valueB17)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep17 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field17, field18)
     *       .values(valueA1, valueA2, valueA3, .., valueA17, valueA18)
     *       .values(valueB1, valueB2, valueB3, .., valueB17, valueB18)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep18 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field18, field19)
     *       .values(valueA1, valueA2, valueA3, .., valueA18, valueA19)
     *       .values(valueB1, valueB2, valueB3, .., valueB18, valueB19)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep19 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field19, field20)
     *       .values(valueA1, valueA2, valueA3, .., valueA19, valueA20)
     *       .values(valueB1, valueB2, valueB3, .., valueB19, valueB20)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep20 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field20, field21)
     *       .values(valueA1, valueA2, valueA3, .., valueA20, valueA21)
     *       .values(valueB1, valueB2, valueB3, .., valueB20, valueB21)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep21 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21); /** * Create a new DSL insert statement. *

* Example:


     * using(configuration)
     *       .insertInto(table, field1, field2, field3, .., field21, field22)
     *       .values(valueA1, valueA2, valueA3, .., valueA21, valueA22)
     *       .values(valueB1, valueB2, valueB3, .., valueB21, valueB22)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStep22 insertInto(Table into, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21, Field field22); /** * Create a new DSL insert statement. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.insertInto(table, field1, field2)
     *       .values(value1, value2)
     *       .values(value3, value4)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStepN insertInto(Table into, Field... fields); /** * Create a new DSL insert statement. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.insertInto(table, field1, field2)
     *       .values(value1, value2)
     *       .values(value3, value4)
     *       .onDuplicateKeyUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support InsertValuesStepN insertInto(Table into, Collection> fields); /** * Create a new {@link UpdateQuery} * * @param table The table to update data into * @return The new {@link UpdateQuery} */ @NotNull @CheckReturnValue @Support UpdateQuery updateQuery(Table table); /** * Create a new DSL update statement. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.update(table)
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .where(field1.greaterThan(100))
     *       .execute();
     * 
*

* Note that some databases support table expressions more complex than * simple table references. In MySQL, for instance, you can write *


     * create.update(t1.join(t2).on(t1.id.eq(t2.id)))
     *       .set(t1.value, value1)
     *       .set(t2.value, value2)
     *       .where(t1.id.eq(10))
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support UpdateSetFirstStep update(Table table); /** * Create a new DSL SQL standard MERGE statement. *

* This statement is available from DSL syntax only. It is known to be * supported in some way by any of these dialects: *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
dialectsupport typedocumentation
DB2SQL:2008 standard and major enhancementshttp://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com. * ibm.db2.udb.admin.doc/doc/r0010873.htm
HSQLDBSQL:2008 standardhttp://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#N129BA
OracleSQL:2008 standard and minor enhancementshttp://download.oracle.com/docs/cd/B28359_01/server.111/b28286/ * statements_9016.htm
SQL ServerSimilar to SQL:2008 standard with some major enhancementshttp://msdn.microsoft.com/de-de/library/bb510625.aspx
SybaseSimilar to SQL:2008 standard with some major enhancementshttp://dcx.sybase.com/1100/en/dbreference_en11/merge-statement.html
*

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.mergeInto(table)
     *       .using(select)
     *       .on(condition)
     *       .whenMatchedThenUpdate()
     *       .set(field1, value1)
     *       .set(field2, value2)
     *       .whenNotMatchedThenInsert(field1, field2)
     *       .values(value1, value2)
     *       .execute();
     * 
*

* Note: Using this method, you can also create an H2-specific MERGE * statement without field specification. See also * {@link #mergeInto(Table, Field...)} */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeUsingStep mergeInto(Table table); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep1 mergeInto(Table table, Field field1); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep2 mergeInto(Table table, Field field1, Field field2); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep3 mergeInto(Table table, Field field1, Field field2, Field field3); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep4 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep5 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep6 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep7 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep8 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep9 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep10 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep11 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep12 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep13 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep14 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep15 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep16 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep17 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep18 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep19 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep20 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep21 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) MergeKeyStep22 mergeInto(Table table, Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21, Field field22); /** * Create a new DSL UPSERT statement ({@link SQLDialect#H2} * MERGE) or {@link SQLDialect#HANA} UPSERT). *

* This statement is available from DSL syntax only. It is known to be * supported in some way by any of these dialects: *

* * * * * * * * * * * * * * * * * * * * *
H2H2 natively supports this special syntaxhttps://www.h2database.com/html/commands.html#merge_into
HANAHANA natively supports this syntaxhttp://help.sap.com/saphelp_hanaplatform/helpdata/en/20/fc06a7751910149892c0d09be21a38/content.htm
PostgreSQLThis database can emulate the H2-specific MERGE statement via * INSERT … ON CONFLICT DO UPDATEhttp://www.postgresql.org/docs/9.5/static/sql-insert.html
DB2, HSQLDB, Oracle, SQL Server, Sybase SQL AnywhereThese databases can emulate the H2-specific MERGE statement using a * standard SQL MERGE statement, without restrictionsSee {@link #mergeInto(Table)} for the standard MERGE statement
* @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) MergeKeyStepN mergeInto(Table table, Field... fields); /** * Create a new DSL merge statement (H2-specific syntax). * * @see #mergeInto(Table, Field...) * @deprecated - [#10045] - 3.14.0 - Use the standard SQL MERGE API instead, via {@link #mergeInto(Table)} */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) MergeKeyStepN mergeInto(Table table, Collection> fields); /** * Create a new {@link DeleteQuery} * * @param table The table to delete data from * @return The new {@link DeleteQuery} */ @NotNull @CheckReturnValue @Support DeleteQuery deleteQuery(Table table); /** * Create a new DSL delete statement. *

* Example:


     * DSLContext create = DSL.using(configuration);
     *
     * create.deleteFrom(table)
     *       .where(field1.greaterThan(100))
     *       .execute();
     * 
*

* Some but not all databases support aliased tables in delete statements. *

* Note that some databases support table expressions more complex than * simple table references. In MySQL, for instance, you can write this to * form a multi table DELETE statement: *

*


     * create.delete(t1.join(t2).on(t1.id.eq(t2.id)))
     *       .where(t1.id.eq(10))
     *       .execute();
     * 
*

* For single table delete statements that depend on multiple tables, use * the {@link DeleteUsingStep#using(TableLike)} clause, instead: *

*


     * create.delete(t1)
     *       .using(t2)
     *       .where(t1.id.eq(t2.id))
     *       .and(t1.id.eq(10))
     *       .execute();
     * 
*/ @NotNull @CheckReturnValue @Support DeleteUsingStep deleteFrom(Table table); /** * Create a new DSL delete statement. *

* This is an alias for {@link #deleteFrom(Table)} */ @NotNull @CheckReturnValue @Support DeleteUsingStep delete(Table table); // ------------------------------------------------------------------------- // XXX Batch query execution // ------------------------------------------------------------------------- /** * Run a BatchedRunnable on a {@link BatchedConnection}, * delaying execution as long as possible before batching. * * @see BatchedConnection BatchedConnection for details. */ void batched(BatchedRunnable runnable); /** * Run a BatchedRunnable on a {@link BatchedConnection}, * delaying execution as long as possible before batching. * * @see BatchedConnection BatchedConnection for details. */ T batchedResult(BatchedCallable callable); /** * Create a batch statement to execute a set of queries in batch mode * (without bind values). *

* This essentially runs the following logic:


     * Statement s = connection.createStatement();
     *
     * for (Query query : queries) {
     *     s.addBatch(query.getSQL(true));
     * }
     *
     * s.execute();
     * 
* * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batch(Query... queries); /** * Create a batch statement to execute a set of queries in batch mode * (without bind values). *

* This essentially runs the following logic:


     * Statement s = connection.createStatement();
     *
     * for (Query query : queries) {
     *     s.addBatch(query.getSQL(true));
     * }
     *
     * s.execute();
     * 
* * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batch(Queries queries); /** * Create a batch statement to execute a set of queries in batch mode * (without bind values). *

* This is a convenience method for calling *

batch(query(queries[0]), query(queries[1]), …)
. * * @see #query(String) * @see #batch(Query...) * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support @PlainSQL Batch batch(String... queries); /** * Create a batch statement to execute a set of queries in batch mode * (without bind values). *

* This essentially runs the following logic:


     * Statement s = connection.createStatement();
     *
     * for (Query query : queries) {
     *     s.addBatch(query.getSQL(true));
     * }
     *
     * s.execute();
     * 
* * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batch(Collection queries); /** * Create a batch statement to execute a set of queries in batch mode (with * bind values). *

* When running


     * create.batch(query)
     *       .bind(valueA1, valueA2)
     *       .bind(valueB1, valueB2)
     *       .execute();
     * 
*

* This essentially runs the following logic:


     * Statement s = connection.prepareStatement(query.getSQL(false));
     *
     * for (Object[] bindValues : allBindValues) {
     *     for (Object bindValue : bindValues) {
     *         s.setXXX(bindValue);
     *     }
     *
     *     s.addBatch();
     * }
     *
     * s.execute();
     * 
*

* Note: bind values will be inlined to a static batch query as in * {@link #batch(Query...)}, if you choose to execute queries with * {@link Settings#getStatementType()} == {@link StatementType#STATIC_STATEMENT} * * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support BatchBindStep batch(Query query); /** * Create a batch statement to execute a set of queries in batch mode (with * bind values). *

* This is a convenience method for calling *

batch(query(sql))
. * * @see #query(String) * @see #batch(Query) * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support @PlainSQL BatchBindStep batch(String sql); /** * Create a batch statement to execute a set of queries in batch mode (with * bind values). *

* This is a convenience method for calling {@link #batch(Query)} and then * binding values one by one using {@link BatchBindStep#bind(Object...)} *

* Note: bind values will be inlined to a static batch query as in * {@link #batch(Query...)}, if you choose to execute queries with * {@link Settings#getStatementType()} == {@link StatementType#STATIC_STATEMENT} * * @see #batch(Query) * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batch(Query query, Object[]... bindings); /** * Create a batch statement to execute a set of queries in batch mode (with * bind values). *

* This is a convenience method for calling *

batch(query(sql), bindings)
. * * @see #query(String) * @see #batch(Query, Object[][]) * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support @PlainSQL Batch batch(String sql, Object[]... bindings); /** * Create a batch statement to execute a set of INSERT and * UPDATE queries in batch mode (with bind values) according to * {@link UpdatableRecord#store()} semantics. *

* This batch operation can be executed in two modes: *

*

With * {@link Settings#getStatementType()} == {@link StatementType#PREPARED_STATEMENT} * (the default)
*

* In this mode, record order is preserved as much as possible, as long as * two subsequent records generate the same SQL (with bind variables). The * number of executed batch operations corresponds to * [number of distinct rendered SQL statements]. In the worst * case, this corresponds to the number of total records. *

* The record type order is preserved in the way they are passed to this * method. This is an example of how statements will be ordered:


     * // Let's assume, odd numbers result in INSERTs and even numbers in UPDATES
     * // Let's also assume a[n] are all of the same type, just as b[n], c[n]...
     * int[] result = create.batchStore(a1, a2, a3, b1, a4, c1, b3, a5)
     *                      .execute();
     * 
The above results in result.length == 8 and * the following 4 separate batch statements: *
    *
  1. INSERT a1, a3, a5
  2. *
  3. UPDATE a2, a4
  4. *
  5. INSERT b1, b3
  6. *
  7. INSERT c1
  8. *
*

*

With * {@link Settings#getStatementType()} == {@link StatementType#STATIC_STATEMENT} *
*

* This mode may be better for large and complex batch store operations, as * the order of records is preserved entirely, and jOOQ can guarantee that * only a single batch statement is serialised to the database. *

*

A note on MERGE / UPSERT semantics
*

* This method (just like {@link UpdatableRecord#store()}) does not * implement the semantics of an actual UPSERT or * MERGE statement, which delegates the decision of whether to * INSERT or UPDATE a record to the database. The * decision is made by the client (jOOQ) depending on whether each * individual record has been fetched from the database prior to storing it. * * @see UpdatableRecord#store() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchStore(UpdatableRecord... records); /** * Create a batch statement to execute a set of INSERT and * UPDATE queries in batch mode (with bind values) according to * {@link UpdatableRecord#store()} semantics. * * @see #batchStore(UpdatableRecord...) * @see UpdatableRecord#store() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchStore(Collection> records); /** * Create a batch statement to execute a set of INSERT queries * in batch mode (with bind values) according to * {@link TableRecord#insert()} semantics. * * @see #batchStore(UpdatableRecord...) * @see TableRecord#insert() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchInsert(TableRecord... records); /** * Create a batch statement to execute a set of INSERT queries * in batch mode (with bind values) according to * {@link TableRecord#insert()} semantics. * * @see #batchStore(UpdatableRecord...) * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchInsert(Collection> records); /** * Create a batch statement to execute a set of UPDATE queries * in batch mode (with bind values) according to * {@link UpdatableRecord#update()} semantics. * * @see #batchStore(UpdatableRecord...) * @see UpdatableRecord#update() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchUpdate(UpdatableRecord... records); /** * Create a batch statement to execute a set of UPDATE queries * in batch mode (with bind values) according to * {@link UpdatableRecord#update()} semantics. * * @see #batchStore(UpdatableRecord...) * @see UpdatableRecord#update() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchUpdate(Collection> records); /** * Create a batch statement to execute a set of MERGE queries * in batch mode (with bind values) according to * {@link UpdatableRecord#merge()} semantics. * * @see UpdatableRecord#merge() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchMerge(UpdatableRecord... records); /** * Create a batch statement to execute a set of MERGE queries * in batch mode (with bind values) according to * {@link UpdatableRecord#merge()} semantics. * * @see UpdatableRecord#merge() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchMerge(Collection> records); /** * Create a batch statement to execute a set of DELETE queries * in batch mode (with bind values) according to * {@link UpdatableRecord#delete()} sematics. *

* This batch operation can be executed in two modes: *

*

With * {@link Settings#getStatementType()} == {@link StatementType#PREPARED_STATEMENT} * (the default)
*

* In this mode, record order is preserved as much as possible, as long as * two subsequent records generate the same SQL (with bind variables). The * number of executed batch operations corresponds to * [number of distinct rendered SQL statements]. In the worst * case, this corresponds to the number of total records. *

* The record type order is preserved in the way they are passed to this * method. This is an example of how statements will be ordered:


     * // Let's assume a[n] are all of the same type, just as b[n], c[n]...
     * int[] result = create.batchDelete(a1, a2, a3, b1, a4, c1, c2, a5)
     *                      .execute();
     * 
The above results in result.length == 8 and * the following 5 separate batch statements: *
    *
  1. DELETE a1, a2, a3
  2. *
  3. DELETE b1
  4. *
  5. DELETE a4
  6. *
  7. DELETE c1, c2
  8. *
  9. DELETE a5
  10. *
*

*

With * {@link Settings#getStatementType()} == {@link StatementType#STATIC_STATEMENT} *
*

* This mode may be better for large and complex batch delete operations, as * the order of records is preserved entirely, and jOOQ can guarantee that * only a single batch statement is serialised to the database. * * @see UpdatableRecord#delete() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchDelete(UpdatableRecord... records); /** * Create a batch statement to execute a set of DELETE queries * in batch mode (with bind values) according to * {@link UpdatableRecord#delete()} sematics. * * @see #batchDelete(UpdatableRecord...) * @see UpdatableRecord#delete() * @see java.sql.Statement#executeBatch() */ @NotNull @CheckReturnValue @Support Batch batchDelete(Collection> records); // ------------------------------------------------------------------------- // XXX DDL Statements from existing meta data // ------------------------------------------------------------------------- /** * Convenience method for {@link Meta#ddl()}. * * @see #meta(Catalog...) * @see Meta#ddl() */ @NotNull @CheckReturnValue Queries ddl(Catalog catalog); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Catalog...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Catalog schema, DDLExportConfiguration configuration); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Catalog...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Catalog schema, DDLFlag... flags); /** * Convenience method for {@link Meta#ddl()}. * * @see #meta(Schema...) * @see Meta#ddl() */ @NotNull @CheckReturnValue Queries ddl(Schema schema); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Schema...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Schema schema, DDLExportConfiguration configuration); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Schema...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Schema schema, DDLFlag... flags); /** * Convenience method for {@link Meta#ddl()}. * * @see #meta(Table...) * @see Meta#ddl() */ @NotNull @CheckReturnValue Queries ddl(Table table); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Table...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Table table, DDLExportConfiguration configuration); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Table...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Table table, DDLFlag... flags); /** * Convenience method for {@link Meta#ddl()}. * * @see #meta(Table...) * @see Meta#ddl() */ @NotNull @CheckReturnValue Queries ddl(Table... tables); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Table...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Table[] tables, DDLExportConfiguration configuration); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Table...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Table[] tables, DDLFlag... flags); /** * Convenience method for {@link Meta#ddl()}. * * @see #meta(Table...) * @see Meta#ddl() */ @NotNull @CheckReturnValue Queries ddl(Collection> tables); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Table...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Collection> tables, DDLFlag... flags); /** * Convenience method for {@link Meta#ddl(DDLExportConfiguration)}. * * @see #meta(Table...) * @see Meta#ddl(DDLExportConfiguration) */ @NotNull @CheckReturnValue Queries ddl(Collection> tables, DDLExportConfiguration configuration); // ------------------------------------------------------------------------- // XXX DDL Statements // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- // DDL statements // ------------------------------------------------------------------------- /** * The ALTER DATABASE statement. * * @see DSL#alterDatabase(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterDatabaseStep alterDatabase(@Stringly.Name String database); /** * The ALTER DATABASE statement. * * @see DSL#alterDatabase(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterDatabaseStep alterDatabase(Name database); /** * The ALTER DATABASE statement. * * @see DSL#alterDatabase(Catalog) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterDatabaseStep alterDatabase(Catalog database); /** * The ALTER DATABASE IF EXISTS statement. * * @see DSL#alterDatabaseIfExists(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterDatabaseStep alterDatabaseIfExists(@Stringly.Name String database); /** * The ALTER DATABASE IF EXISTS statement. * * @see DSL#alterDatabaseIfExists(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterDatabaseStep alterDatabaseIfExists(Name database); /** * The ALTER DATABASE IF EXISTS statement. * * @see DSL#alterDatabaseIfExists(Catalog) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterDatabaseStep alterDatabaseIfExists(Catalog database); /** * The ALTER DOMAIN statement. * * @see DSL#alterDomain(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, HSQLDB, POSTGRES, YUGABYTEDB }) AlterDomainStep alterDomain(@Stringly.Name String domain); /** * The ALTER DOMAIN statement. * * @see DSL#alterDomain(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, HSQLDB, POSTGRES, YUGABYTEDB }) AlterDomainStep alterDomain(Name domain); /** * The ALTER DOMAIN statement. * * @see DSL#alterDomain(Domain) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, HSQLDB, POSTGRES, YUGABYTEDB }) AlterDomainStep alterDomain(Domain domain); /** * The ALTER DOMAIN IF EXISTS statement. * * @see DSL#alterDomainIfExists(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, HSQLDB, POSTGRES, YUGABYTEDB }) AlterDomainStep alterDomainIfExists(@Stringly.Name String domain); /** * The ALTER DOMAIN IF EXISTS statement. * * @see DSL#alterDomainIfExists(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, HSQLDB, POSTGRES, YUGABYTEDB }) AlterDomainStep alterDomainIfExists(Name domain); /** * The ALTER DOMAIN IF EXISTS statement. * * @see DSL#alterDomainIfExists(Domain) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, HSQLDB, POSTGRES, YUGABYTEDB }) AlterDomainStep alterDomainIfExists(Domain domain); /** * The ALTER INDEX statement. * * @see DSL#alterIndex(String) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) AlterIndexOnStep alterIndex(@Stringly.Name String index); /** * The ALTER INDEX statement. * * @see DSL#alterIndex(Name) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) AlterIndexOnStep alterIndex(Name index); /** * The ALTER INDEX statement. * * @see DSL#alterIndex(Index) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) AlterIndexOnStep alterIndex(Index index); /** * The ALTER INDEX IF EXISTS statement. * * @see DSL#alterIndexIfExists(String) */ @NotNull @CheckReturnValue @Support({ H2, MARIADB, MYSQL, POSTGRES }) AlterIndexOnStep alterIndexIfExists(@Stringly.Name String index); /** * The ALTER INDEX IF EXISTS statement. * * @see DSL#alterIndexIfExists(Name) */ @NotNull @CheckReturnValue @Support({ H2, MARIADB, MYSQL, POSTGRES }) AlterIndexOnStep alterIndexIfExists(Name index); /** * The ALTER INDEX IF EXISTS statement. * * @see DSL#alterIndexIfExists(Index) */ @NotNull @CheckReturnValue @Support({ H2, MARIADB, MYSQL, POSTGRES }) AlterIndexOnStep alterIndexIfExists(Index index); /** * The ALTER SCHEMA statement. * * @see DSL#alterSchema(String) */ @NotNull @CheckReturnValue @Support({ H2, HSQLDB, POSTGRES }) AlterSchemaStep alterSchema(@Stringly.Name String schema); /** * The ALTER SCHEMA statement. * * @see DSL#alterSchema(Name) */ @NotNull @CheckReturnValue @Support({ H2, HSQLDB, POSTGRES }) AlterSchemaStep alterSchema(Name schema); /** * The ALTER SCHEMA statement. * * @see DSL#alterSchema(Schema) */ @NotNull @CheckReturnValue @Support({ H2, HSQLDB, POSTGRES }) AlterSchemaStep alterSchema(Schema schema); /** * The ALTER SCHEMA IF EXISTS statement. * * @see DSL#alterSchemaIfExists(String) */ @NotNull @CheckReturnValue @Support({ H2 }) AlterSchemaStep alterSchemaIfExists(@Stringly.Name String schema); /** * The ALTER SCHEMA IF EXISTS statement. * * @see DSL#alterSchemaIfExists(Name) */ @NotNull @CheckReturnValue @Support({ H2 }) AlterSchemaStep alterSchemaIfExists(Name schema); /** * The ALTER SCHEMA IF EXISTS statement. * * @see DSL#alterSchemaIfExists(Schema) */ @NotNull @CheckReturnValue @Support({ H2 }) AlterSchemaStep alterSchemaIfExists(Schema schema); /** * The ALTER SEQUENCE statement. * * @see DSL#alterSequence(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) AlterSequenceStep alterSequence(@Stringly.Name String sequence); /** * The ALTER SEQUENCE statement. * * @see DSL#alterSequence(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) AlterSequenceStep alterSequence(Name sequence); /** * The ALTER SEQUENCE statement. * * @see DSL#alterSequence(Sequence) */ @NotNull @CheckReturnValue @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) AlterSequenceStep alterSequence(Sequence sequence); /** * The ALTER SEQUENCE IF EXISTS statement. * * @see DSL#alterSequenceIfExists(String) */ @NotNull @CheckReturnValue @Support({ H2, MARIADB, POSTGRES, YUGABYTEDB }) AlterSequenceStep alterSequenceIfExists(@Stringly.Name String sequence); /** * The ALTER SEQUENCE IF EXISTS statement. * * @see DSL#alterSequenceIfExists(Name) */ @NotNull @CheckReturnValue @Support({ H2, MARIADB, POSTGRES, YUGABYTEDB }) AlterSequenceStep alterSequenceIfExists(Name sequence); /** * The ALTER SEQUENCE IF EXISTS statement. * * @see DSL#alterSequenceIfExists(Sequence) */ @NotNull @CheckReturnValue @Support({ H2, MARIADB, POSTGRES, YUGABYTEDB }) AlterSequenceStep alterSequenceIfExists(Sequence sequence); /** * The ALTER TYPE statement. * * @see DSL#alterType(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) AlterTypeStep alterType(@Stringly.Name String type); /** * The ALTER TYPE statement. * * @see DSL#alterType(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) AlterTypeStep alterType(Name type); /** * The ALTER TYPE IF EXISTS statement. * * @see DSL#alterTypeIfExists(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) AlterTypeStep alterTypeIfExists(@Stringly.Name String type); /** * The ALTER TYPE IF EXISTS statement. * * @see DSL#alterTypeIfExists(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) AlterTypeStep alterTypeIfExists(Name type); /** * The ALTER VIEW statement. * * @see DSL#alterView(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(@Stringly.Name String view); /** * The ALTER VIEW statement. * * @see DSL#alterView(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Name view); /** * The ALTER VIEW statement. * * @see DSL#alterView(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Table view); /** * The ALTER VIEW IF EXISTS statement. * * @see DSL#alterViewIfExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterViewStep alterViewIfExists(@Stringly.Name String view); /** * The ALTER VIEW IF EXISTS statement. * * @see DSL#alterViewIfExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterViewStep alterViewIfExists(Name view); /** * The ALTER VIEW IF EXISTS statement. * * @see DSL#alterViewIfExists(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterViewStep alterViewIfExists(Table view); /** * The ALTER MATERIALIZED VIEW statement. * * @see DSL#alterMaterializedView(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterViewStep alterMaterializedView(@Stringly.Name String view); /** * The ALTER MATERIALIZED VIEW statement. * * @see DSL#alterMaterializedView(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterViewStep alterMaterializedView(Name view); /** * The ALTER MATERIALIZED VIEW statement. * * @see DSL#alterMaterializedView(Table) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterViewStep alterMaterializedView(Table view); /** * The ALTER MATERIALIZED VIEW IF EXISTS statement. * * @see DSL#alterMaterializedViewIfExists(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterViewStep alterMaterializedViewIfExists(@Stringly.Name String view); /** * The ALTER MATERIALIZED VIEW IF EXISTS statement. * * @see DSL#alterMaterializedViewIfExists(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterViewStep alterMaterializedViewIfExists(Name view); /** * The ALTER MATERIALIZED VIEW IF EXISTS statement. * * @see DSL#alterMaterializedViewIfExists(Table) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) AlterViewStep alterMaterializedViewIfExists(Table view); /** * The ALTER VIEW statement. * * @see DSL#alterView(Table, Field...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Table view, Field... fields); /** * The ALTER VIEW statement. * * @see DSL#alterView(Table, Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Table view, Collection> fields); /** * The COMMENT ON TABLE statement. * * @see DSL#commentOnTable(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnTable(@Stringly.Name String table); /** * The COMMENT ON TABLE statement. * * @see DSL#commentOnTable(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnTable(Name table); /** * The COMMENT ON TABLE statement. * * @see DSL#commentOnTable(Table) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnTable(Table table); /** * The COMMENT ON VIEW statement. * * @see DSL#commentOnView(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnView(@Stringly.Name String view); /** * The COMMENT ON VIEW statement. * * @see DSL#commentOnView(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnView(Name view); /** * The COMMENT ON VIEW statement. * * @see DSL#commentOnView(Table) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnView(Table view); /** * The COMMENT ON MATERIALIZED VIEW statement. * * @see DSL#commentOnMaterializedView(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CommentOnIsStep commentOnMaterializedView(@Stringly.Name String view); /** * The COMMENT ON MATERIALIZED VIEW statement. * * @see DSL#commentOnMaterializedView(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CommentOnIsStep commentOnMaterializedView(Name view); /** * The COMMENT ON MATERIALIZED VIEW statement. * * @see DSL#commentOnMaterializedView(Table) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CommentOnIsStep commentOnMaterializedView(Table view); /** * The COMMENT ON COLUMN statement. * * @see DSL#commentOnColumn(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnColumn(@Stringly.Name String field); /** * The COMMENT ON COLUMN statement. * * @see DSL#commentOnColumn(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnColumn(Name field); /** * The COMMENT ON COLUMN statement. * * @see DSL#commentOnColumn(Field) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) CommentOnIsStep commentOnColumn(Field field); /** * The CREATE DATABASE statement. * * @see DSL#createDatabase(String) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateDatabaseFinalStep createDatabase(@Stringly.Name String database); /** * The CREATE DATABASE statement. * * @see DSL#createDatabase(Name) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateDatabaseFinalStep createDatabase(Name database); /** * The CREATE DATABASE statement. * * @see DSL#createDatabase(Catalog) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateDatabaseFinalStep createDatabase(Catalog database); /** * The CREATE DATABASE IF NOT EXISTS statement. * * @see DSL#createDatabaseIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, YUGABYTEDB }) CreateDatabaseFinalStep createDatabaseIfNotExists(@Stringly.Name String database); /** * The CREATE DATABASE IF NOT EXISTS statement. * * @see DSL#createDatabaseIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, YUGABYTEDB }) CreateDatabaseFinalStep createDatabaseIfNotExists(Name database); /** * The CREATE DATABASE IF NOT EXISTS statement. * * @see DSL#createDatabaseIfNotExists(Catalog) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, YUGABYTEDB }) CreateDatabaseFinalStep createDatabaseIfNotExists(Catalog database); /** * The CREATE DOMAIN statement. * * @see DSL#createDomain(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) CreateDomainAsStep createDomain(@Stringly.Name String domain); /** * The CREATE DOMAIN statement. * * @see DSL#createDomain(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) CreateDomainAsStep createDomain(Name domain); /** * The CREATE DOMAIN statement. * * @see DSL#createDomain(Domain) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) CreateDomainAsStep createDomain(Domain domain); /** * The CREATE DOMAIN IF NOT EXISTS statement. * * @see DSL#createDomainIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, POSTGRES, YUGABYTEDB }) CreateDomainAsStep createDomainIfNotExists(@Stringly.Name String domain); /** * The CREATE DOMAIN IF NOT EXISTS statement. * * @see DSL#createDomainIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, POSTGRES, YUGABYTEDB }) CreateDomainAsStep createDomainIfNotExists(Name domain); /** * The CREATE DOMAIN IF NOT EXISTS statement. * * @see DSL#createDomainIfNotExists(Domain) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, POSTGRES, YUGABYTEDB }) CreateDomainAsStep createDomainIfNotExists(Domain domain); /** * The CREATE INDEX statement. * * @see DSL#createIndex(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndex(@Stringly.Name String index); /** * The CREATE INDEX statement. * * @see DSL#createIndex(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndex(Name index); /** * The CREATE INDEX statement. * * @see DSL#createIndex(Index) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndex(Index index); /** * The CREATE INDEX statement. * * @see DSL#createIndex() */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndex(); /** * The CREATE INDEX IF NOT EXISTS statement. * * @see DSL#createIndexIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndexIfNotExists(@Stringly.Name String index); /** * The CREATE INDEX IF NOT EXISTS statement. * * @see DSL#createIndexIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndexIfNotExists(Name index); /** * The CREATE INDEX IF NOT EXISTS statement. * * @see DSL#createIndexIfNotExists(Index) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndexIfNotExists(Index index); /** * The CREATE INDEX IF NOT EXISTS statement. * * @see DSL#createIndexIfNotExists() */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createIndexIfNotExists(); /** * The CREATE UNIQUE INDEX statement. * * @see DSL#createUniqueIndex(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndex(@Stringly.Name String index); /** * The CREATE UNIQUE INDEX statement. * * @see DSL#createUniqueIndex(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndex(Name index); /** * The CREATE UNIQUE INDEX statement. * * @see DSL#createUniqueIndex(Index) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndex(Index index); /** * The CREATE UNIQUE INDEX statement. * * @see DSL#createUniqueIndex() */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndex(); /** * The CREATE UNIQUE INDEX IF NOT EXISTS statement. * * @see DSL#createUniqueIndexIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndexIfNotExists(@Stringly.Name String index); /** * The CREATE UNIQUE INDEX IF NOT EXISTS statement. * * @see DSL#createUniqueIndexIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndexIfNotExists(Name index); /** * The CREATE UNIQUE INDEX IF NOT EXISTS statement. * * @see DSL#createUniqueIndexIfNotExists(Index) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndexIfNotExists(Index index); /** * The CREATE UNIQUE INDEX IF NOT EXISTS statement. * * @see DSL#createUniqueIndexIfNotExists() */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateIndexStep createUniqueIndexIfNotExists(); /** * The CREATE TABLE statement. * * @see DSL#createTable(String) */ @NotNull @CheckReturnValue @Support CreateTableElementListStep createTable(@Stringly.Name String table); /** * The CREATE TABLE statement. * * @see DSL#createTable(Name) */ @NotNull @CheckReturnValue @Support CreateTableElementListStep createTable(Name table); /** * The CREATE TABLE statement. * * @see DSL#createTable(Table) */ @NotNull @CheckReturnValue @Support CreateTableElementListStep createTable(Table table); /** * The CREATE TABLE IF NOT EXISTS statement. * * @see DSL#createTableIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateTableElementListStep createTableIfNotExists(@Stringly.Name String table); /** * The CREATE TABLE IF NOT EXISTS statement. * * @see DSL#createTableIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateTableElementListStep createTableIfNotExists(Name table); /** * The CREATE TABLE IF NOT EXISTS statement. * * @see DSL#createTableIfNotExists(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateTableElementListStep createTableIfNotExists(Table table); /** * The CREATE TEMPORARY TABLE statement. * * @see DSL#createTemporaryTable(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createTemporaryTable(@Stringly.Name String table); /** * The CREATE TEMPORARY TABLE statement. * * @see DSL#createTemporaryTable(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createTemporaryTable(Name table); /** * The CREATE TEMPORARY TABLE statement. * * @see DSL#createTemporaryTable(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createTemporaryTable(Table table); /** * The CREATE TEMPORARY TABLE IF NOT EXISTS statement. * * @see DSL#createTemporaryTableIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createTemporaryTableIfNotExists(@Stringly.Name String table); /** * The CREATE TEMPORARY TABLE IF NOT EXISTS statement. * * @see DSL#createTemporaryTableIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createTemporaryTableIfNotExists(Name table); /** * The CREATE TEMPORARY TABLE IF NOT EXISTS statement. * * @see DSL#createTemporaryTableIfNotExists(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createTemporaryTableIfNotExists(Table table); /** * The CREATE GLOBAL TEMPORARY TABLE statement. * * @see DSL#createGlobalTemporaryTable(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createGlobalTemporaryTable(@Stringly.Name String table); /** * The CREATE GLOBAL TEMPORARY TABLE statement. * * @see DSL#createGlobalTemporaryTable(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createGlobalTemporaryTable(Name table); /** * The CREATE GLOBAL TEMPORARY TABLE statement. * * @see DSL#createGlobalTemporaryTable(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateTableElementListStep createGlobalTemporaryTable(Table table); /** * The CREATE GLOBAL TEMPORARY TABLE IF NOT EXISTS statement. * * @see DSL#createGlobalTemporaryTableIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateTableElementListStep createGlobalTemporaryTableIfNotExists(@Stringly.Name String table); /** * The CREATE GLOBAL TEMPORARY TABLE IF NOT EXISTS statement. * * @see DSL#createGlobalTemporaryTableIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateTableElementListStep createGlobalTemporaryTableIfNotExists(Name table); /** * The CREATE GLOBAL TEMPORARY TABLE IF NOT EXISTS statement. * * @see DSL#createGlobalTemporaryTableIfNotExists(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateTableElementListStep createGlobalTemporaryTableIfNotExists(Table table); /** * The CREATE VIEW statement. * * @see DSL#createView(String, String...) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(@Stringly.Name String view, @Stringly.Name String... fields); /** * The CREATE VIEW statement. * * @see DSL#createView(Name, Name...) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Name view, Name... fields); /** * The CREATE VIEW statement. * * @see DSL#createView(Table, Field...) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Table view, Field... fields); /** * The CREATE VIEW statement. * * @see DSL#createView(String, Collection) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(@Stringly.Name String view, Collection fields); /** * The CREATE VIEW statement. * * @see DSL#createView(Name, Collection) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Name view, Collection fields); /** * The CREATE VIEW statement. * * @see DSL#createView(Table, Collection) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Table view, Collection> fields); /** * The CREATE VIEW IF NOT EXISTS statement. * * @see DSL#createViewIfNotExists(String, String...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(@Stringly.Name String view, @Stringly.Name String... fields); /** * The CREATE VIEW IF NOT EXISTS statement. * * @see DSL#createViewIfNotExists(Name, Name...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Name view, Name... fields); /** * The CREATE VIEW IF NOT EXISTS statement. * * @see DSL#createViewIfNotExists(Table, Field...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Table view, Field... fields); /** * The CREATE VIEW IF NOT EXISTS statement. * * @see DSL#createViewIfNotExists(String, Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(@Stringly.Name String view, Collection fields); /** * The CREATE VIEW IF NOT EXISTS statement. * * @see DSL#createViewIfNotExists(Name, Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Name view, Collection fields); /** * The CREATE VIEW IF NOT EXISTS statement. * * @see DSL#createViewIfNotExists(Table, Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Table view, Collection> fields); /** * The CREATE OR REPLACE VIEW statement. * * @see DSL#createOrReplaceView(String, String...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(@Stringly.Name String view, @Stringly.Name String... fields); /** * The CREATE OR REPLACE VIEW statement. * * @see DSL#createOrReplaceView(Name, Name...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Name view, Name... fields); /** * The CREATE OR REPLACE VIEW statement. * * @see DSL#createOrReplaceView(Table, Field...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Table view, Field... fields); /** * The CREATE OR REPLACE VIEW statement. * * @see DSL#createOrReplaceView(String, Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(@Stringly.Name String view, Collection fields); /** * The CREATE OR REPLACE VIEW statement. * * @see DSL#createOrReplaceView(Name, Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Name view, Collection fields); /** * The CREATE OR REPLACE VIEW statement. * * @see DSL#createOrReplaceView(Table, Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Table view, Collection> fields); /** * The CREATE MATERIALIZED VIEW statement. * * @see DSL#createMaterializedView(String, String...) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedView(@Stringly.Name String view, @Stringly.Name String... fields); /** * The CREATE MATERIALIZED VIEW statement. * * @see DSL#createMaterializedView(Name, Name...) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedView(Name view, Name... fields); /** * The CREATE MATERIALIZED VIEW statement. * * @see DSL#createMaterializedView(Table, Field...) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedView(Table view, Field... fields); /** * The CREATE MATERIALIZED VIEW statement. * * @see DSL#createMaterializedView(String, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedView(@Stringly.Name String view, Collection fields); /** * The CREATE MATERIALIZED VIEW statement. * * @see DSL#createMaterializedView(Name, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedView(Name view, Collection fields); /** * The CREATE MATERIALIZED VIEW statement. * * @see DSL#createMaterializedView(Table, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedView(Table view, Collection> fields); /** * The CREATE MATERIALIZED VIEW IF NOT EXISTS statement. * * @see DSL#createMaterializedViewIfNotExists(String, String...) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedViewIfNotExists(@Stringly.Name String view, @Stringly.Name String... fields); /** * The CREATE MATERIALIZED VIEW IF NOT EXISTS statement. * * @see DSL#createMaterializedViewIfNotExists(Name, Name...) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedViewIfNotExists(Name view, Name... fields); /** * The CREATE MATERIALIZED VIEW IF NOT EXISTS statement. * * @see DSL#createMaterializedViewIfNotExists(Table, Field...) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedViewIfNotExists(Table view, Field... fields); /** * The CREATE MATERIALIZED VIEW IF NOT EXISTS statement. * * @see DSL#createMaterializedViewIfNotExists(String, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedViewIfNotExists(@Stringly.Name String view, Collection fields); /** * The CREATE MATERIALIZED VIEW IF NOT EXISTS statement. * * @see DSL#createMaterializedViewIfNotExists(Name, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedViewIfNotExists(Name view, Collection fields); /** * The CREATE MATERIALIZED VIEW IF NOT EXISTS statement. * * @see DSL#createMaterializedViewIfNotExists(Table, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) CreateViewAsStep createMaterializedViewIfNotExists(Table view, Collection> fields); /** * The CREATE OR REPLACE MATERIALIZED VIEW statement. * * @see DSL#createOrReplaceMaterializedView(String, String...) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) CreateViewAsStep createOrReplaceMaterializedView(@Stringly.Name String view, @Stringly.Name String... fields); /** * The CREATE OR REPLACE MATERIALIZED VIEW statement. * * @see DSL#createOrReplaceMaterializedView(Name, Name...) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) CreateViewAsStep createOrReplaceMaterializedView(Name view, Name... fields); /** * The CREATE OR REPLACE MATERIALIZED VIEW statement. * * @see DSL#createOrReplaceMaterializedView(Table, Field...) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) CreateViewAsStep createOrReplaceMaterializedView(Table view, Field... fields); /** * The CREATE OR REPLACE MATERIALIZED VIEW statement. * * @see DSL#createOrReplaceMaterializedView(String, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) CreateViewAsStep createOrReplaceMaterializedView(@Stringly.Name String view, Collection fields); /** * The CREATE OR REPLACE MATERIALIZED VIEW statement. * * @see DSL#createOrReplaceMaterializedView(Name, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) CreateViewAsStep createOrReplaceMaterializedView(Name view, Collection fields); /** * The CREATE OR REPLACE MATERIALIZED VIEW statement. * * @see DSL#createOrReplaceMaterializedView(Table, Collection) */ @NotNull @CheckReturnValue @Support({ POSTGRES }) CreateViewAsStep createOrReplaceMaterializedView(Table view, Collection> fields); /** * The CREATE TYPE statement. * * @see DSL#createType(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) CreateTypeStep createType(@Stringly.Name String type); /** * The CREATE TYPE statement. * * @see DSL#createType(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) CreateTypeStep createType(Name type); /** * The CREATE TYPE statement. * * @see DSL#createType(Type) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) CreateTypeStep createType(Type type); /** * The CREATE TYPE IF NOT EXISTS statement. * * @see DSL#createTypeIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) CreateTypeStep createTypeIfNotExists(@Stringly.Name String type); /** * The CREATE TYPE IF NOT EXISTS statement. * * @see DSL#createTypeIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) CreateTypeStep createTypeIfNotExists(Name type); /** * The CREATE TYPE IF NOT EXISTS statement. * * @see DSL#createTypeIfNotExists(Type) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) CreateTypeStep createTypeIfNotExists(Type type); /** * The CREATE SCHEMA statement. * * @see DSL#createSchema(String) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateSchemaFinalStep createSchema(@Stringly.Name String schema); /** * The CREATE SCHEMA statement. * * @see DSL#createSchema(Name) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateSchemaFinalStep createSchema(Name schema); /** * The CREATE SCHEMA statement. * * @see DSL#createSchema(Schema) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateSchemaFinalStep createSchema(Schema schema); /** * The CREATE SCHEMA IF NOT EXISTS statement. * * @see DSL#createSchemaIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateSchemaFinalStep createSchemaIfNotExists(@Stringly.Name String schema); /** * The CREATE SCHEMA IF NOT EXISTS statement. * * @see DSL#createSchemaIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateSchemaFinalStep createSchemaIfNotExists(Name schema); /** * The CREATE SCHEMA IF NOT EXISTS statement. * * @see DSL#createSchemaIfNotExists(Schema) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) CreateSchemaFinalStep createSchemaIfNotExists(Schema schema); /** * The CREATE SEQUENCE statement. * * @see DSL#createSequence(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) CreateSequenceFlagsStep createSequence(@Stringly.Name String sequence); /** * The CREATE SEQUENCE statement. * * @see DSL#createSequence(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) CreateSequenceFlagsStep createSequence(Name sequence); /** * The CREATE SEQUENCE statement. * * @see DSL#createSequence(Sequence) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) CreateSequenceFlagsStep createSequence(Sequence sequence); /** * The CREATE SEQUENCE IF NOT EXISTS statement. * * @see DSL#createSequenceIfNotExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) CreateSequenceFlagsStep createSequenceIfNotExists(@Stringly.Name String sequence); /** * The CREATE SEQUENCE IF NOT EXISTS statement. * * @see DSL#createSequenceIfNotExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) CreateSequenceFlagsStep createSequenceIfNotExists(Name sequence); /** * The CREATE SEQUENCE IF NOT EXISTS statement. * * @see DSL#createSequenceIfNotExists(Sequence) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) CreateSequenceFlagsStep createSequenceIfNotExists(Sequence sequence); /** * The DROP DATABASE statement. * * @see DSL#dropDatabase(String) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropDatabaseFinalStep dropDatabase(@Stringly.Name String database); /** * The DROP DATABASE statement. * * @see DSL#dropDatabase(Name) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropDatabaseFinalStep dropDatabase(Name database); /** * The DROP DATABASE statement. * * @see DSL#dropDatabase(Catalog) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropDatabaseFinalStep dropDatabase(Catalog database); /** * The DROP DATABASE IF EXISTS statement. * * @see DSL#dropDatabaseIfExists(String) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropDatabaseFinalStep dropDatabaseIfExists(@Stringly.Name String database); /** * The DROP DATABASE IF EXISTS statement. * * @see DSL#dropDatabaseIfExists(Name) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropDatabaseFinalStep dropDatabaseIfExists(Name database); /** * The DROP DATABASE IF EXISTS statement. * * @see DSL#dropDatabaseIfExists(Catalog) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropDatabaseFinalStep dropDatabaseIfExists(Catalog database); /** * The DROP DOMAIN statement. * * @see DSL#dropDomain(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) DropDomainCascadeStep dropDomain(@Stringly.Name String domain); /** * The DROP DOMAIN statement. * * @see DSL#dropDomain(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) DropDomainCascadeStep dropDomain(Name domain); /** * The DROP DOMAIN statement. * * @see DSL#dropDomain(Domain) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) DropDomainCascadeStep dropDomain(Domain domain); /** * The DROP DOMAIN IF EXISTS statement. * * @see DSL#dropDomainIfExists(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) DropDomainCascadeStep dropDomainIfExists(@Stringly.Name String domain); /** * The DROP DOMAIN IF EXISTS statement. * * @see DSL#dropDomainIfExists(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) DropDomainCascadeStep dropDomainIfExists(Name domain); /** * The DROP DOMAIN IF EXISTS statement. * * @see DSL#dropDomainIfExists(Domain) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) DropDomainCascadeStep dropDomainIfExists(Domain domain); /** * The DROP INDEX statement. * * @see DSL#dropIndex(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropIndexOnStep dropIndex(@Stringly.Name String index); /** * The DROP INDEX statement. * * @see DSL#dropIndex(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropIndexOnStep dropIndex(Name index); /** * The DROP INDEX statement. * * @see DSL#dropIndex(Index) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropIndexOnStep dropIndex(Index index); /** * The DROP INDEX IF EXISTS statement. * * @see DSL#dropIndexIfExists(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropIndexOnStep dropIndexIfExists(@Stringly.Name String index); /** * The DROP INDEX IF EXISTS statement. * * @see DSL#dropIndexIfExists(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropIndexOnStep dropIndexIfExists(Name index); /** * The DROP INDEX IF EXISTS statement. * * @see DSL#dropIndexIfExists(Index) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropIndexOnStep dropIndexIfExists(Index index); /** * The DROP SCHEMA statement. * * @see DSL#dropSchema(String) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropSchemaStep dropSchema(@Stringly.Name String schema); /** * The DROP SCHEMA statement. * * @see DSL#dropSchema(Name) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropSchemaStep dropSchema(Name schema); /** * The DROP SCHEMA statement. * * @see DSL#dropSchema(Schema) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropSchemaStep dropSchema(Schema schema); /** * The DROP SCHEMA IF EXISTS statement. * * @see DSL#dropSchemaIfExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropSchemaStep dropSchemaIfExists(@Stringly.Name String schema); /** * The DROP SCHEMA IF EXISTS statement. * * @see DSL#dropSchemaIfExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropSchemaStep dropSchemaIfExists(Name schema); /** * The DROP SCHEMA IF EXISTS statement. * * @see DSL#dropSchemaIfExists(Schema) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropSchemaStep dropSchemaIfExists(Schema schema); /** * The DROP SEQUENCE statement. * * @see DSL#dropSequence(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) DropSequenceFinalStep dropSequence(@Stringly.Name String sequence); /** * The DROP SEQUENCE statement. * * @see DSL#dropSequence(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) DropSequenceFinalStep dropSequence(Name sequence); /** * The DROP SEQUENCE statement. * * @see DSL#dropSequence(Sequence) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) DropSequenceFinalStep dropSequence(Sequence sequence); /** * The DROP SEQUENCE IF EXISTS statement. * * @see DSL#dropSequenceIfExists(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) DropSequenceFinalStep dropSequenceIfExists(@Stringly.Name String sequence); /** * The DROP SEQUENCE IF EXISTS statement. * * @see DSL#dropSequenceIfExists(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) DropSequenceFinalStep dropSequenceIfExists(Name sequence); /** * The DROP SEQUENCE IF EXISTS statement. * * @see DSL#dropSequenceIfExists(Sequence) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) DropSequenceFinalStep dropSequenceIfExists(Sequence sequence); /** * The DROP TABLE statement. * * @see DSL#dropTable(String) */ @NotNull @CheckReturnValue @Support DropTableStep dropTable(@Stringly.Name String table); /** * The DROP TABLE statement. * * @see DSL#dropTable(Name) */ @NotNull @CheckReturnValue @Support DropTableStep dropTable(Name table); /** * The DROP TABLE statement. * * @see DSL#dropTable(Table) */ @NotNull @CheckReturnValue @Support DropTableStep dropTable(Table table); /** * The DROP TABLE IF EXISTS statement. * * @see DSL#dropTableIfExists(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropTableStep dropTableIfExists(@Stringly.Name String table); /** * The DROP TABLE IF EXISTS statement. * * @see DSL#dropTableIfExists(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropTableStep dropTableIfExists(Name table); /** * The DROP TABLE IF EXISTS statement. * * @see DSL#dropTableIfExists(Table) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) DropTableStep dropTableIfExists(Table table); /** * The DROP TEMPORARY TABLE statement. * * @see DSL#dropTemporaryTable(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropTableStep dropTemporaryTable(@Stringly.Name String table); /** * The DROP TEMPORARY TABLE statement. * * @see DSL#dropTemporaryTable(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropTableStep dropTemporaryTable(Name table); /** * The DROP TEMPORARY TABLE statement. * * @see DSL#dropTemporaryTable(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropTableStep dropTemporaryTable(Table table); /** * The DROP TEMPORARY TABLE IF EXISTS statement. * * @see DSL#dropTemporaryTableIfExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropTableStep dropTemporaryTableIfExists(@Stringly.Name String table); /** * The DROP TEMPORARY TABLE IF EXISTS statement. * * @see DSL#dropTemporaryTableIfExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropTableStep dropTemporaryTableIfExists(Name table); /** * The DROP TEMPORARY TABLE IF EXISTS statement. * * @see DSL#dropTemporaryTableIfExists(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) DropTableStep dropTemporaryTableIfExists(Table table); /** * The DROP TYPE statement. * * @see DSL#dropType(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropType(@Stringly.Name String types); /** * The DROP TYPE statement. * * @see DSL#dropType(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropType(Name types); /** * The DROP TYPE statement. * * @see DSL#dropType(Type) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropType(Type types); /** * The DROP TYPE statement. * * @see DSL#dropType(String...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropType(@Stringly.Name String... types); /** * The DROP TYPE statement. * * @see DSL#dropType(Name...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropType(Name... types); /** * The DROP TYPE statement. * * @see DSL#dropType(Type...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropType(Type... types); /** * The DROP TYPE statement. * * @see DSL#dropType(Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropType(Collection> types); /** * The DROP TYPE IF EXISTS statement. * * @see DSL#dropTypeIfExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropTypeIfExists(@Stringly.Name String types); /** * The DROP TYPE IF EXISTS statement. * * @see DSL#dropTypeIfExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropTypeIfExists(Name types); /** * The DROP TYPE IF EXISTS statement. * * @see DSL#dropTypeIfExists(Type) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropTypeIfExists(Type types); /** * The DROP TYPE IF EXISTS statement. * * @see DSL#dropTypeIfExists(String...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropTypeIfExists(@Stringly.Name String... types); /** * The DROP TYPE IF EXISTS statement. * * @see DSL#dropTypeIfExists(Name...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropTypeIfExists(Name... types); /** * The DROP TYPE IF EXISTS statement. * * @see DSL#dropTypeIfExists(Type...) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropTypeIfExists(Type... types); /** * The DROP TYPE IF EXISTS statement. * * @see DSL#dropTypeIfExists(Collection) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) DropTypeStep dropTypeIfExists(Collection> types); /** * The DROP VIEW statement. * * @see DSL#dropView(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) DropViewFinalStep dropView(@Stringly.Name String view); /** * The DROP VIEW statement. * * @see DSL#dropView(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) DropViewFinalStep dropView(Name view); /** * The DROP VIEW statement. * * @see DSL#dropView(Table) */ @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) DropViewFinalStep dropView(Table view); /** * The DROP VIEW IF EXISTS statement. * * @see DSL#dropViewIfExists(String) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) DropViewFinalStep dropViewIfExists(@Stringly.Name String view); /** * The DROP VIEW IF EXISTS statement. * * @see DSL#dropViewIfExists(Name) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) DropViewFinalStep dropViewIfExists(Name view); /** * The DROP VIEW IF EXISTS statement. * * @see DSL#dropViewIfExists(Table) */ @NotNull @CheckReturnValue @Support({ CUBRID, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) DropViewFinalStep dropViewIfExists(Table view); /** * The DROP MATERIALIZED VIEW statement. * * @see DSL#dropMaterializedView(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) DropViewFinalStep dropMaterializedView(@Stringly.Name String view); /** * The DROP MATERIALIZED VIEW statement. * * @see DSL#dropMaterializedView(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) DropViewFinalStep dropMaterializedView(Name view); /** * The DROP MATERIALIZED VIEW statement. * * @see DSL#dropMaterializedView(Table) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) DropViewFinalStep dropMaterializedView(Table view); /** * The DROP MATERIALIZED VIEW IF EXISTS statement. * * @see DSL#dropMaterializedViewIfExists(String) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) DropViewFinalStep dropMaterializedViewIfExists(@Stringly.Name String view); /** * The DROP MATERIALIZED VIEW IF EXISTS statement. * * @see DSL#dropMaterializedViewIfExists(Name) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) DropViewFinalStep dropMaterializedViewIfExists(Name view); /** * The DROP MATERIALIZED VIEW IF EXISTS statement. * * @see DSL#dropMaterializedViewIfExists(Table) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) DropViewFinalStep dropMaterializedViewIfExists(Table view); /** * The GRANT statement. * * @see DSL#grant(Privilege) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) GrantOnStep grant(Privilege privileges); /** * The GRANT statement. * * @see DSL#grant(Privilege...) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) GrantOnStep grant(Privilege... privileges); /** * The GRANT statement. * * @see DSL#grant(Collection) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) GrantOnStep grant(Collection privileges); /** * The REVOKE statement. * * @see DSL#revoke(Privilege) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RevokeOnStep revoke(Privilege privileges); /** * The REVOKE statement. * * @see DSL#revoke(Privilege...) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RevokeOnStep revoke(Privilege... privileges); /** * The REVOKE statement. * * @see DSL#revoke(Collection) */ @NotNull @CheckReturnValue @Support({ DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RevokeOnStep revoke(Collection privileges); /** * The REVOKE GRANT OPTION FOR statement. * * @see DSL#revokeGrantOptionFor(Privilege) */ @NotNull @CheckReturnValue @Support({ HSQLDB, POSTGRES, YUGABYTEDB }) RevokeOnStep revokeGrantOptionFor(Privilege privileges); /** * The REVOKE GRANT OPTION FOR statement. * * @see DSL#revokeGrantOptionFor(Privilege...) */ @NotNull @CheckReturnValue @Support({ HSQLDB, POSTGRES, YUGABYTEDB }) RevokeOnStep revokeGrantOptionFor(Privilege... privileges); /** * The REVOKE GRANT OPTION FOR statement. * * @see DSL#revokeGrantOptionFor(Collection) */ @NotNull @CheckReturnValue @Support({ HSQLDB, POSTGRES, YUGABYTEDB }) RevokeOnStep revokeGrantOptionFor(Collection privileges); /** * The SET statement. *

* Set a vendor specific session configuration to a new value. * * @see DSL#set(String, Param) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RowCountQuery set(@Stringly.Name String name, Param value); /** * The SET statement. *

* Set a vendor specific session configuration to a new value. * * @see DSL#set(Name, Param) */ @NotNull @CheckReturnValue @Support({ MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RowCountQuery set(Name name, Param value); /** * The SET LOCAL statement. *

* Set a vendor specific transaction-local configuration to a new value. * * @see DSL#setLocal(String, Param) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) RowCountQuery setLocal(@Stringly.Name String name, Param value); /** * The SET LOCAL statement. *

* Set a vendor specific transaction-local configuration to a new value. * * @see DSL#setLocal(Name, Param) */ @NotNull @CheckReturnValue @Support({ POSTGRES, YUGABYTEDB }) RowCountQuery setLocal(Name name, Param value); /** * The SET CATALOG statement. *

* Set the current catalog to a new value. * * @see DSL#setCatalog(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, MARIADB, MYSQL }) RowCountQuery setCatalog(@Stringly.Name String catalog); /** * The SET CATALOG statement. *

* Set the current catalog to a new value. * * @see DSL#setCatalog(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, MARIADB, MYSQL }) RowCountQuery setCatalog(Name catalog); /** * The SET CATALOG statement. *

* Set the current catalog to a new value. * * @see DSL#setCatalog(Catalog) */ @NotNull @CheckReturnValue @Support({ DUCKDB, MARIADB, MYSQL }) RowCountQuery setCatalog(Catalog catalog); /** * The SET SCHEMA statement. *

* Set the current schema to a new value. * * @see DSL#setSchema(String) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RowCountQuery setSchema(@Stringly.Name String schema); /** * The SET SCHEMA statement. *

* Set the current schema to a new value. * * @see DSL#setSchema(Name) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RowCountQuery setSchema(Name schema); /** * The SET SCHEMA statement. *

* Set the current schema to a new value. * * @see DSL#setSchema(Schema) */ @NotNull @CheckReturnValue @Support({ DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) RowCountQuery setSchema(Schema schema); /** * The TRUNCATE statement. * * @see DSL#truncate(String) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncate(@Stringly.Name String table); /** * The TRUNCATE statement. * * @see DSL#truncate(Name) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncate(Name table); /** * The TRUNCATE statement. * * @see DSL#truncate(Table) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncate(Table table); /** * The TRUNCATE statement. * * @see DSL#truncate(String...) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncate(@Stringly.Name String... table); /** * The TRUNCATE statement. * * @see DSL#truncate(Name...) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncate(Name... table); /** * The TRUNCATE statement. * * @see DSL#truncate(Table...) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncate(Table... table); /** * The TRUNCATE statement. * * @see DSL#truncate(Collection) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncate(Collection> table); /** * The TRUNCATE TABLE statement. * * @see DSL#truncateTable(String) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncateTable(@Stringly.Name String table); /** * The TRUNCATE TABLE statement. * * @see DSL#truncateTable(Name) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncateTable(Name table); /** * The TRUNCATE TABLE statement. * * @see DSL#truncateTable(Table) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncateTable(Table table); /** * The TRUNCATE TABLE statement. * * @see DSL#truncateTable(String...) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncateTable(@Stringly.Name String... table); /** * The TRUNCATE TABLE statement. * * @see DSL#truncateTable(Name...) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncateTable(Name... table); /** * The TRUNCATE TABLE statement. * * @see DSL#truncateTable(Table...) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncateTable(Table... table); /** * The TRUNCATE TABLE statement. * * @see DSL#truncateTable(Collection) */ @NotNull @CheckReturnValue @Support TruncateIdentityStep truncateTable(Collection> table); /** * The START TRANSACTION statement. *

* Start a transaction * * @see DSL#startTransaction() */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query startTransaction(); /** * The SAVEPOINT statement. *

* Specify a savepoint * * @see DSL#savepoint(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query savepoint(@Stringly.Name String name); /** * The SAVEPOINT statement. *

* Specify a savepoint * * @see DSL#savepoint(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query savepoint(Name name); /** * The RELEASE SAVEPOINT statement. *

* Release a savepoint * * @see DSL#releaseSavepoint(String) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query releaseSavepoint(@Stringly.Name String name); /** * The RELEASE SAVEPOINT statement. *

* Release a savepoint * * @see DSL#releaseSavepoint(Name) */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query releaseSavepoint(Name name); /** * The COMMIT statement. *

* Commit a transaction * * @see DSL#commit() */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) Query commit(); /** * The ROLLBACK statement. *

* Rollback a transaction * * @see DSL#rollback() */ @NotNull @CheckReturnValue @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) RollbackToSavepointStep rollback(); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createView(String, String...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(String view, Function, ? extends String> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createView(String, String...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(String view, BiFunction, ? super Integer, ? extends String> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createView(Name, Name...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Name view, Function, ? extends Name> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createView(Name, Name...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Name view, BiFunction, ? super Integer, ? extends Name> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createView(Table, Field...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Table view, Function, ? extends Field> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createView(Table, Field...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) CreateViewAsStep createView(Table view, BiFunction, ? super Integer, ? extends Field> fieldNameFunction); /** * Create a new DSL CREATE OR REPLACE VIEW statement. *

* This works like {@link #createOrReplaceView(String, String...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createOrReplaceView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(String view, Function, ? extends String> fieldNameFunction); /** * Create a new DSL CREATE OR REPLACE VIEW statement. *

* This works like {@link #createOrReplaceView(String, String...)} except * that the view's field names are derived from the view's {@link Select} * statement using a function. * * @see DSL#createOrReplaceView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(String view, BiFunction, ? super Integer, ? extends String> fieldNameFunction); /** * Create a new DSL CREATE OR REPLACE VIEW statement. *

* This works like {@link #createOrReplaceView(Name, Name...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createOrReplaceView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Name view, Function, ? extends Name> fieldNameFunction); /** * Create a new DSL CREATE OR REPLACE VIEW statement. *

* This works like {@link #createOrReplaceView(Name, Name...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createOrReplaceView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Name view, BiFunction, ? super Integer, ? extends Name> fieldNameFunction); /** * Create a new DSL CREATE OR REPLACE VIEW statement. *

* This works like {@link #createOrReplaceView(Table, Field...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createOrReplaceView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Table view, Function, ? extends Field> fieldNameFunction); /** * Create a new DSL CREATE OR REPLACE VIEW statement. *

* This works like {@link #createOrReplaceView(Table, Field...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createOrReplaceView(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) CreateViewAsStep createOrReplaceView(Table view, BiFunction, ? super Integer, ? extends Field> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createViewIfNotExists(String, String...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createViewIfNotExists(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(String view, Function, ? extends String> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createViewIfNotExists(String, String...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createViewIfNotExists(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(String view, BiFunction, ? super Integer, ? extends String> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createViewIfNotExists(Name, Name...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createViewIfNotExists(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Name view, Function, ? extends Name> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createViewIfNotExists(Name, Name...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createViewIfNotExists(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Name view, BiFunction, ? super Integer, ? extends Name> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createViewIfNotExists(Table, Field...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createViewIfNotExists(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Table view, Function, ? extends Field> fieldNameFunction); /** * Create a new DSL CREATE VIEW statement. *

* This works like {@link #createViewIfNotExists(Table, Field...)} except that the * view's field names are derived from the view's {@link Select} statement * using a function. * * @see DSL#createViewIfNotExists(String, String...) * @deprecated - 3.14.0 - [#10156] - These methods will be removed without * replacement from a future jOOQ. They offer convenience that * is unidiomatic for jOOQ's DSL, without offering functionality * that would not be possible otherwise - yet they add * complexity in jOOQ's internals. */ @Deprecated(forRemoval = true, since = "3.14") @NotNull @CheckReturnValue @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) CreateViewAsStep createViewIfNotExists(Table view, BiFunction, ? super Integer, ? extends Field> fieldNameFunction); /** * Create a new DSL ALTER TABLE statement. * * @see DSL#alterTable(String) */ @NotNull @CheckReturnValue @Support AlterTableStep alterTable(String table); /** * Create a new DSL ALTER TABLE statement. * * @see DSL#alterTable(Name) */ @NotNull @CheckReturnValue @Support AlterTableStep alterTable(Name table); /** * Create a new DSL ALTER TABLE statement. * * @see DSL#alterTable(Table) */ @NotNull @CheckReturnValue @Support AlterTableStep alterTable(Table table); /** * Create a new DSL ALTER TABLE statement. * * @see DSL#alterTableIfExists(String) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableStep alterTableIfExists(String table); /** * Create a new DSL ALTER TABLE statement. * * @see DSL#alterTableIfExists(Name) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableStep alterTableIfExists(Name table); /** * Create a new DSL ALTER TABLE statement. * * @see DSL#alterTableIfExists(Table) */ @NotNull @CheckReturnValue @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableStep alterTableIfExists(Table table); // ------------------------------------------------------------------------- // XXX Other queries for identites and sequences // ------------------------------------------------------------------------- /** * Retrieve the last inserted ID. *

* This is implemented for the following dialects: *

    *
  • {@link SQLDialect#ACCESS}: Using @@identity
  • *
  • {@link SQLDialect#ASE}: Using @@identity
  • *
  • {@link SQLDialect#DERBY}: Using identity_val_local()
  • *
  • {@link SQLDialect#HSQLDB}: Using identity()
  • *
  • {@link SQLDialect#INFORMIX}: Using * dbinfo('sqlca.sqlerrd1')
  • *
  • {@link SQLDialect#INGRES}: Using last_identity()
  • *
  • {@link SQLDialect#MARIADB}: Using last_insert_id()
  • *
  • {@link SQLDialect#MYSQL}: Using last_insert_id()
  • *
  • {@link SQLDialect#POSTGRES}: Using lastval()
  • *
  • {@link SQLDialect#SQLITE}: Using last_insert_rowid()
  • *
  • {@link SQLDialect#SQLSERVER}: Using @@identity
  • *
  • {@link SQLDialect#SYBASE}: Using @@identity
  • *
  • {@link SQLDialect#VERTICA}: Using last_insert_id()
  • *
* * @return The last inserted ID. This may be null in some * dialects, if no such number is available. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, DERBY, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) BigInteger lastID() throws DataAccessException; /** * Convenience method to fetch the NEXTVAL for a sequence directly from this * {@link DSLContext}'s underlying JDBC {@link Connection}. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) BigInteger nextval(String sequence) throws DataAccessException; /** * Convenience method to fetch the NEXTVAL for a sequence directly from this * {@link DSLContext}'s underlying JDBC {@link Connection}. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) BigInteger nextval(Name sequence) throws DataAccessException; /** * Convenience method to fetch the NEXTVAL for a sequence directly from this * {@link DSLContext}'s underlying JDBC {@link Connection}. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) T nextval(Sequence sequence) throws DataAccessException; /** * Convenience method to fetch several NEXTVAL for a sequence directly from * this {@link DSLContext}'s underlying JDBC {@link Connection}. *

* This is done using {@link DSL#generateSeries(int, int)}. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) List nextvals(Sequence sequence, int size) throws DataAccessException; /** * Convenience method to fetch the CURRVAL for a sequence directly from this * {@link DSLContext}'s underlying JDBC {@link Connection}. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) BigInteger currval(String sequence) throws DataAccessException; /** * Convenience method to fetch the CURRVAL for a sequence directly from this * {@link DSLContext}'s underlying JDBC {@link Connection}. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) BigInteger currval(Name sequence) throws DataAccessException; /** * Convenience method to fetch the CURRVAL for a sequence directly from this * {@link DSLContext}'s underlying JDBC {@link Connection}. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB }) T currval(Sequence sequence) throws DataAccessException; // ------------------------------------------------------------------------- // XXX Global Record factory // ------------------------------------------------------------------------- /** * Create a new {@link UDTRecord}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @param The generic record type * @param type The UDT describing records of type <R> * @return The new record */ @NotNull > R newRecord(UDT type); /** * Create a new {@link Record} that can be inserted into the corresponding * table. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @param The generic record type * @param table The table holding records of type <R> * @return The new record */ @NotNull R newRecord(Table table); /** * Create a new pre-filled {@link Record} that can be inserted into the * corresponding table. *

* This is convenience for calling {@link #newRecord(Table)} and then * {@link Record#from(Object)} on the resulting record. The record unmapping * implementation is governed by * {@link Configuration#recordUnmapperProvider()}. *

* The resulting record will have its internal "changed" flags set to true * for all values. This means that {@link UpdatableRecord#store()} will * perform an INSERT statement. If you wish to store the record * using an UPDATE statement, use * {@link #executeUpdate(UpdatableRecord)} instead. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @param The generic record type * @param table The table holding records of type <R> * @param source The source to be used to fill the new record * @return The new record * @throws MappingException wrapping any reflection or data type conversion * exception that might have occurred while mapping records * @see Record#from(Object) * @see Record#into(Class) */ @NotNull R newRecord(Table table, Object source); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @param fields The fields defining the Record type * @return The new record */ @NotNull Record newRecord(Field... fields); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @param fields The fields defining the Record type * @return The new record */ @NotNull Record newRecord(Collection> fields); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record1 newRecord(Field field1); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record2 newRecord(Field field1, Field field2); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record3 newRecord(Field field1, Field field2, Field field3); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record4 newRecord(Field field1, Field field2, Field field3, Field field4); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record5 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record6 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record7 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record8 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record9 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record10 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record11 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record12 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record13 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record14 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record15 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record16 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record17 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record18 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record19 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record20 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record21 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new record */ @NotNull Record22 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21, Field field22); /** * Create a new empty {@link Result}. *

* The result is attached to this {@link Configuration} by default. This * result can be used as a container for records. * * @param The generic record type * @param table The table holding records of type <R> * @return The new result */ @NotNull Result newResult(Table table); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @param fields The fields defining the Record type * @return The new record */ @NotNull Result newResult(Field... fields); /** * Create a new empty {@link Record}. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @param fields The fields defining the Record type * @return The new record */ @NotNull Result newResult(Collection> fields); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21); /** * Create a new empty {@link Result}. *

* The resulting result is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The new result */ @NotNull Result> newResult(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21, Field field22); // ------------------------------------------------------------------------- // XXX Executing queries // ------------------------------------------------------------------------- /** * Execute a {@link ResultQuery} in the context of this DSLContext and return * results. * * @param query The query to execute * @return The result. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see ResultQuery#fetch() */ @NotNull @Support @Blocking Result fetch(ResultQuery query) throws DataAccessException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a cursor. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @param query The query to execute * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see ResultQuery#fetchLazy() */ @NotNull @Support @Blocking Cursor fetchLazy(ResultQuery query) throws DataAccessException; /** * Fetch results in a new {@link CompletionStage}. *

* The result is asynchronously completed by a task running in an * {@link Executor} provided by the {@link #configuration()}'s * {@link Configuration#executorProvider()}. * * @param query The query to execute * @return The completion stage. The completed result will never be * null. * @see ResultQuery#fetchAsync() */ @NotNull @Support CompletionStage> fetchAsync(ResultQuery query); /** * Fetch results in a new {@link CompletionStage} that is asynchronously * completed by a task running in the given executor. * * @param query The query to execute * @return The completion stage. The completed result will never be * null. * @see ResultQuery#fetchAsync() */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, ResultQuery query); /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a stream. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @param query The query to execute * @return The stream * @throws DataAccessException if something went wrong executing the query * @see ResultQuery#stream() */ @NotNull @Support @Blocking Stream fetchStream(ResultQuery query) throws DataAccessException; /** * Execute a {@link ResultQuery} in the context of this DSLContext and return * a cursor. * * @param query The query to execute * @return The results. This will never be null. * @throws DataAccessException if something went wrong executing the query * @see ResultQuery#fetchMany() */ @NotNull @Support @Blocking Results fetchMany(ResultQuery query) throws DataAccessException; /** * Execute a {@link ResultQuery} in the context of this DSLContext and return * a record. * * @param query The query to execute * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see ResultQuery#fetchOne() */ @Nullable @Support @Blocking R fetchOne(ResultQuery query) throws DataAccessException, TooManyRowsException; /** * Execute a {@link ResultQuery} in the context of this DSLContext and return * a record. * * @param query The query to execute * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned no rows * @throws TooManyRowsException if the query returned more than one record * @see ResultQuery#fetchSingle() */ @NotNull @Support @Blocking R fetchSingle(ResultQuery query) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute a {@link ResultQuery} in the context of this DSLContext and return * a record. * * @param query The query to execute * @return The record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @see ResultQuery#fetchOptional() */ @NotNull @Support @Blocking Optional fetchOptional(ResultQuery query) throws DataAccessException, TooManyRowsException; /** * Fetch a single value from a single column table. * * @param table The table from which to fetch a value * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Support @Blocking T fetchValue(Table> table) throws DataAccessException, TooManyRowsException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a single value. * * @param query The query to execute * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Support @Blocking > T fetchValue(ResultQuery query) throws DataAccessException, TooManyRowsException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a single value. * * @param field The field for which to fetch a single value. * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Support @Blocking T fetchValue(TableField field) throws DataAccessException, TooManyRowsException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a single value. * * @param field The field for which to fetch a single value. * @param condition The condition for which to fetch a single value. * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Support @Blocking T fetchValue(TableField field, Condition condition) throws DataAccessException, TooManyRowsException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a single value. * * @param field The field for which to fetch a single value. * @return The value or null, if no record was found. * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking T fetchValue(SelectField field) throws DataAccessException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a single value. * * @param query The query to execute * @return The value. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking > Optional fetchOptionalValue(ResultQuery query) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a single value. * * @param field The field for which to fetch a single value. * @return The value. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking Optional fetchOptionalValue(TableField field) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return a single value. * * @param field The field for which to fetch a single value. * @param condition The condition for which to fetch a single value. * @return The value. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record * @throws InvalidResultException if the query returned a record with more * than one value */ @NotNull @Support @Blocking Optional fetchOptionalValue(TableField field, Condition condition) throws DataAccessException, TooManyRowsException, InvalidResultException; /** * Fetch all values from a single column table. * * @param table The table from which to fetch values * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking List fetchValues(Table> table) throws DataAccessException; /** * Execute a {@link ResultQuery} in the context of this * DSLContext and return all values for the only column. * * @param query The query to execute * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking > List fetchValues(ResultQuery query) throws DataAccessException; /** * Fetch all values in a given {@link Table}'s {@link TableField}. * * @param field The field for which to fetch all values. * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking List fetchValues(TableField field) throws DataAccessException; /** * Fetch all values in a given {@link Table}'s {@link TableField}. * * @param field The field for which to fetch values. * @param condition The condition for which to fetch values. * @return The values. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking List fetchValues(TableField field, Condition condition) throws DataAccessException; /** * Execute the query and return a {@link Map} with the first column as the * map key and the second column as the map value. *

* An exception is thrown, if the keys turn out to be non-unique in the * result set. Use {@link #fetchGroups(ResultQuery)} instead, if your keys * are non-unique. *

* Whether this fetches an intermediate {@link Result} (accessible by * {@link ExecuteListener} implementations), or streams records directly to * the collector producing the result is governed by * {@link Settings#getFetchIntermediateResult()}. *

* The resulting map is iteration order preserving. * * @return A Map containing grouped results. This will never be * null. * @throws DataAccessException if something went wrong executing the query * @throws InvalidResultException if the key list is non-unique in the * result set. * @see ResultQuery#fetchMap(Field, Field) */ @NotNull @Support @Blocking Map fetchMap(ResultQuery> query) throws DataAccessException; /** * Execute the query and return a {@link Map} with the first column as the * map key and the second column as the map values. *

* Unlike {@link #fetchMap(ResultQuery)}, this method allows for non-unique * keys in the result set. *

* Whether this fetches an intermediate {@link Result} (accessible by * {@link ExecuteListener} implementations), or streams records directly to * the collector producing the result is governed by * {@link Settings#getFetchIntermediateResult()}. *

* The resulting map is iteration order preserving. * * @return A Map containing grouped results. This will never be * null. * @throws DataAccessException if something went wrong executing the query * @see ResultQuery#fetchGroups(Field, Field) */ @NotNull @Support @Blocking Map> fetchGroups(ResultQuery> query) throws DataAccessException; /** * Execute a "Query by Example" (QBE) based on an example record. * * @param example The example record * @return The resulting records matching the example record. * @throws DataAccessException if something went wrong executing the query * @see DSL#condition(Record) */ @NotNull @Support @Blocking > Result fetchByExample(R example) throws DataAccessException; /** * Execute a {@link Select} query in the context of this DSLContext and return * a COUNT(*) value. *

* This wraps a pre-existing SELECT query in another one to * calculate the COUNT(*) value, without modifying the original * SELECT. An example:


     * -- Original query:
     * SELECT id, title FROM book WHERE title LIKE '%a%'
     *
     * -- Wrapped query:
     * SELECT count(*) FROM (
     *   SELECT id, title FROM book WHERE title LIKE '%a%'
     * )
     * 
This is particularly useful for those databases that do not * support the COUNT(*) OVER() window function to calculate * total results in paged queries. * * @param query The wrapped query * @return The COUNT(*) result * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int fetchCount(Select query) throws DataAccessException; /** * Count the number of records in a table. *

* This executes

SELECT COUNT(*) FROM table
* * @param table The table whose records to count * @return The number of records in the table * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int fetchCount(Table table) throws DataAccessException; /** * Count the number of records in a table that satisfy a condition. *

* This executes

SELECT COUNT(*) FROM table WHERE condition
* * @param table The table whose records to count * @param condition The condition to apply * @return The number of records in the table that satisfy a condition * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int fetchCount(Table table, Condition condition) throws DataAccessException; /** * Count the number of records in a table that satisfy a condition. *

* This executes *

SELECT COUNT(*) FROM table WHERE condition
*

* Convenience API for calling {@link #fetchCount(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @param table The table whose records to count * @param conditions The conditions to apply * @return The number of records in the table that satisfy a condition * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int fetchCount(Table table, Condition... conditions) throws DataAccessException; /** * Count the number of records in a table that satisfy a condition. *

* This executes *

SELECT COUNT(*) FROM table WHERE condition
*

* Convenience API for calling {@link #fetchCount(Table, Condition)} with * {@link DSL#and(Collection)}. * * @param table The table whose records to count * @param conditions The conditions to apply * @return The number of records in the table that satisfy a condition * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int fetchCount(Table table, Collection conditions) throws DataAccessException; /** * Check if a {@link Select} would return any records, if it were executed. *

* This wraps a pre-existing SELECT query in another one to * check for result existence, without modifying the original * SELECT. An example:


     * -- Original query:
     * SELECT id, title FROM book WHERE title LIKE '%a%'
     *
     * -- Wrapped query:
     * SELECT EXISTS (
     *   SELECT id, title FROM book WHERE title LIKE '%a%'
     * )
     * 
* * @param query The wrapped query * @return The EXISTS(…) result * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking boolean fetchExists(Select query) throws DataAccessException; /** * Check if a table has any records. *

* This executes

SELECT EXISTS(SELECT * FROM table)
* * @param table The table whose records to count * @return Whether the table contains any records * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking boolean fetchExists(Table table) throws DataAccessException; /** * Check if a table has any records that satisfy a condition. *

* This executes

SELECT EXISTS(SELECT * FROM table WHERE condition)
* * @param table The table whose records to count * @return Whether the table contains any records that satisfy a condition * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking boolean fetchExists(Table table, Condition condition) throws DataAccessException; /** * Check if a table has any records that satisfy a condition. *

* This executes

SELECT EXISTS(SELECT * FROM table WHERE condition)
*

* Convenience API for calling {@link #fetchExists(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @param table The table whose records to count * @return Whether the table contains any records that satisfy a condition * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking boolean fetchExists(Table table, Condition... conditions) throws DataAccessException; /** * Check if a table has any records that satisfy a condition. *

* This executes

SELECT EXISTS(SELECT * FROM table WHERE condition)
*

* Convenience API for calling {@link #fetchExists(Table, Condition)} with * {@link DSL#and(Collection)}. * * @param table The table whose records to count * @return Whether the table contains any records that satisfy a condition * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking boolean fetchExists(Table table, Collection conditions) throws DataAccessException; /** * Execute a {@link Query} in the context of this DSLContext. * * @param query The query to execute * @return The number of affected rows * @throws DataAccessException if something went wrong executing the query * @see Query#execute() */ @Support @Blocking int execute(Query query) throws DataAccessException; // ------------------------------------------------------------------------- // XXX Fast querying // ------------------------------------------------------------------------- /** * Execute and return all records for *

SELECT table.col1, table.col2 FROM table
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. * * @return The results from the executed query. This will never be * null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(Table table) throws DataAccessException; /** * Execute and return all records for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. * * @return The results from the executed query. This will never be * null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(Table table, Condition condition) throws DataAccessException; /** * Execute and return all records for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetch(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @return The results from the executed query. This will never be * null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(Table table, Condition... conditions) throws DataAccessException; /** * Execute and return all records for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetch(Table, Condition)} with * {@link DSL#and(Collection)}. * * @return The results from the executed query. This will never be * null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Result fetch(Table table, Collection conditions) throws DataAccessException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking R fetchOne(Table table) throws DataAccessException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking R fetchOne(Table table, Condition condition) throws DataAccessException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchOne(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking R fetchOne(Table table, Condition... conditions) throws DataAccessException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchOne(Table, Condition)} with * {@link DSL#and(Collection)}. * * @return The record or null, if no record was found. * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @Nullable @Support @Blocking R fetchOne(Table table, Collection conditions) throws DataAccessException, TooManyRowsException; /** * Execute and return exactly one record for *

SELECT table.col1, table.col2 FROM table
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute and return exactly one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition condition) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute and return exactly one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition... conditions) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute and return exactly one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(Table, Condition)} with * {@link DSL#and(Collection)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Collection conditions) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record fetchSingle(SelectField... fields) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record fetchSingle(Collection> fields) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record1 fetchSingle(SelectField field1) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record2 fetchSingle(SelectField field1, SelectField field2) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record3 fetchSingle(SelectField field1, SelectField field2, SelectField field3) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record4 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record5 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record6 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record7 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record8 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record9 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record10 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record11 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record12 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record13 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record14 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record15 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record16 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record17 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record18 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record19 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record20 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record21 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField field21) throws DataAccessException; /** * Execute and return exactly one record for *

SELECT F1, F2, …, FN
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchSingle(ResultQuery)} with * {@link DSL#select(SelectFieldOrAsterisk...)}. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Record22 fetchSingle(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12, SelectField field13, SelectField field14, SelectField field15, SelectField field16, SelectField field17, SelectField field18, SelectField field19, SelectField field20, SelectField field21, SelectField field22) throws DataAccessException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15, Condition c16) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15, Condition c16, Condition c17) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15, Condition c16, Condition c17, Condition c18) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15, Condition c16, Condition c17, Condition c18, Condition c19) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15, Condition c16, Condition c17, Condition c18, Condition c19, Condition c20) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15, Condition c16, Condition c17, Condition c18, Condition c19, Condition c20, Condition c21) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Disambiguation overload of {@link #fetchSingle(Table, Condition...)}. *

* Since jOOQ 3.17, {@link Table} extends {@link SelectField}, and * {@link Condition} extends {@link Field}. As such, there is an overload * conflict between {@link #fetchSingle(Table, Condition...)} and * {@link #fetchSingle(SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField, SelectField)}, which can be * resolved backwards compatibly with this method. * * @return The record. This is never null. * @throws DataAccessException if something went wrong executing the query * @throws NoDataFoundException if the query returned now rows * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking R fetchSingle(Table table, Condition c1, Condition c2, Condition c3, Condition c4, Condition c5, Condition c6, Condition c7, Condition c8, Condition c9, Condition c10, Condition c11, Condition c12, Condition c13, Condition c14, Condition c15, Condition c16, Condition c17, Condition c18, Condition c19, Condition c20, Condition c21, Condition c22) throws DataAccessException, NoDataFoundException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(Table table) throws DataAccessException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(Table table, Condition condition) throws DataAccessException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchOptional(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @return The record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(Table table, Condition... conditions) throws DataAccessException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchOptional(Table, Condition)} with * {@link DSL#and(Collection)}. * * @return The record * @throws DataAccessException if something went wrong executing the query * @throws TooManyRowsException if the query returned more than one record */ @NotNull @Support @Blocking Optional fetchOptional(Table table, Collection conditions) throws DataAccessException, TooManyRowsException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table LIMIT 1
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record or null if no record was returned * @throws DataAccessException if something went wrong executing the query */ @Nullable @Support @Blocking R fetchAny(Table table) throws DataAccessException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition LIMIT 1
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. * * @return The record or null if no record was returned * @throws DataAccessException if something went wrong executing the query */ @Nullable @Support @Blocking R fetchAny(Table table, Condition condition) throws DataAccessException; /** * Execute and return zero or on e record for *

SELECT table.col1, table.col2 FROM table WHERE condition LIMIT 1
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchAny(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @return The record or null if no record was returned * @throws DataAccessException if something went wrong executing the query */ @Nullable @Support @Blocking R fetchAny(Table table, Condition... conditions) throws DataAccessException; /** * Execute and return zero or one record for *

SELECT table.col1, table.col2 FROM table WHERE condition LIMIT 1
. *

* The resulting record is attached to this {@link Configuration} by * default. Use {@link Settings#isAttachRecords()} to override this * behaviour. *

* Convenience API for calling {@link #fetchAny(Table, Condition)} with * {@link DSL#and(Collection)}. * * @return The record or null if no record was returned * @throws DataAccessException if something went wrong executing the query */ @Nullable @Support @Blocking R fetchAny(Table table, Collection conditions) throws DataAccessException; /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(Table table) throws DataAccessException; /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(Table table, Condition condition) throws DataAccessException; /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchLazy(Table, Condition)} with * {@link DSL#and(Condition...)}. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(Table table, Condition... conditions) throws DataAccessException; /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchLazy(Table, Condition)} with * {@link DSL#and(Collection)}. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchLazy()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the cursor after use. * * @return The cursor. This will never be null. * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Cursor fetchLazy(Table table, Collection conditions) throws DataAccessException; /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Table table); /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Table table, Condition condition); /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchAsync(Table, Condition)} with * {@link DSL#and(Condition...)}. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Table table, Condition... condition); /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchAsync(Table, Condition)} with * {@link DSL#and(Collection)}. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Table table, Collection condition); /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, Table table); /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, Table table, Condition condition); /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchAsync(Executor, Table, Condition)} with * {@link DSL#and(Condition...)}. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, Table table, Condition... conditions); /** * Execute and return all records asynchronously for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchAsync(Executor, Table, Condition)} with * {@link DSL#and(Collection)}. * * @return The completion stage. The completed result will never be * null. */ @NotNull @Support CompletionStage> fetchAsync(Executor executor, Table table, Collection conditions); /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(Table table) throws DataAccessException; /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(Table table, Condition condition) throws DataAccessException; /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchStream(Table, Condition)} with * {@link DSL#and(Condition...)}. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(Table table, Condition... conditions) throws DataAccessException; /** * Execute and return all records lazily for *

SELECT table.col1, table.col2 FROM table WHERE condition
. *

* The result and its contained records are attached to this * {@link Configuration} by default. Use {@link Settings#isAttachRecords()} * to override this behaviour. *

* Convenience API for calling {@link #fetchStream(Table, Condition)} with * {@link DSL#and(Collection)}. *

* Depending on your JDBC driver's default behaviour, this may load the * whole database result into the driver's memory. In order to indicate to * the driver that you may not want to fetch all records at once, use * {@link ResultQuery#fetchSize(int)} and run * {@link ResultQuery#fetchStream()} instead, or specify * {@link Settings#setFetchSize(Integer)} prior to calling this method. *

* Client code is responsible for closing the stream after use. * * @throws DataAccessException if something went wrong executing the query */ @NotNull @Support @Blocking Stream fetchStream(Table table, Collection conditions) throws DataAccessException; /** * Insert one record. *

* This executes the following statement: * *

     * INSERT INTO [table] ([modified columns in record])
     * VALUES ([modified values in record])
     * 
*

* Unlike {@link UpdatableRecord#insert()}, this does not change any of the * argument record's internal "changed" flags, such that a * subsequent call to {@link UpdatableRecord#insert()} might lead to another * INSERT statement being executed. *

* Also any optimistic locking related {@link Settings} do not apply for * this method. * * @return The number of inserted records * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int executeInsert(TableRecord record) throws DataAccessException; /** * Update a table. *

* This executes the following statement: * *

     * UPDATE [table]
     * SET [modified values in record]
     * WHERE [record is supplied record]
     * 
*

* Any optimistic locking related {@link Settings} do not apply for this * method. * * @return The number of updated records * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int executeUpdate(UpdatableRecord record) throws DataAccessException; /** * Update a table. *

* This executes the following statement: * *

     * UPDATE [table]
     * SET [modified values in record]
     * WHERE [condition]
     * 
*

* Any optimistic locking related {@link Settings} do not apply for this * method. * * @return The number of updated records * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int executeUpdate(TableRecord record, Condition condition) throws DataAccessException; /** * Delete a record from a table. *

* This executes the following statement: * *

     * DELETE FROM [table] WHERE [record is supplied record]
     * 
*

* Any optimistic locking related {@link Settings} do not apply for this * method. * * @return The number of deleted records * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int executeDelete(UpdatableRecord record) throws DataAccessException; /** * Delete a record from a table. *

* This executes the following statement: * *

     * DELETE FROM [table] WHERE [condition]
     * 
*

* Any optimistic locking related {@link Settings} do not apply for this * method. * * @return The number of deleted records * @throws DataAccessException if something went wrong executing the query */ @Support @Blocking int executeDelete(TableRecord record, Condition condition) throws DataAccessException; }