/* * 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 * * http://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: http://www.jooq.org/licenses * * * * * * * * * * * * * */ package org.jooq.impl; import static org.jooq.conf.ParamType.INLINED; import static org.jooq.conf.ParamType.NAMED; import static org.jooq.conf.ParamType.NAMED_OR_INLINED; import static org.jooq.impl.DSL.condition; import static org.jooq.impl.DSL.field; import static org.jooq.impl.DSL.name; import static org.jooq.impl.DSL.schema; import static org.jooq.impl.DSL.sequence; import static org.jooq.impl.DSL.sql; import static org.jooq.impl.DSL.table; import static org.jooq.impl.DSL.trueCondition; import static org.jooq.impl.Tools.EMPTY_QUERY; import static org.jooq.impl.Tools.EMPTY_TABLE_RECORD; import static org.jooq.impl.Tools.EMPTY_UPDATABLE_RECORD; import static org.jooq.impl.Tools.blocking; import static org.jooq.impl.Tools.list; import static org.jooq.tools.Convert.convert; import java.io.IOException; import java.io.Serializable; import java.io.StringReader; import java.math.BigInteger; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; import java.util.concurrent.CompletableFuture; 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.annotation.Generated; import javax.sql.DataSource; import org.jooq.AlterIndexStep; import org.jooq.AlterSchemaStep; import org.jooq.AlterSequenceStep; import org.jooq.AlterTableStep; import org.jooq.AlterViewStep; import org.jooq.Attachable; import org.jooq.Batch; import org.jooq.BatchBindStep; import org.jooq.BindContext; import org.jooq.Catalog; import org.jooq.CommonTableExpression; import org.jooq.Condition; import org.jooq.Configuration; import org.jooq.ConnectionCallable; import org.jooq.ConnectionProvider; import org.jooq.ConnectionRunnable; import org.jooq.ContextTransactionalCallable; import org.jooq.ContextTransactionalRunnable; import org.jooq.CreateIndexStep; import org.jooq.CreateSchemaFinalStep; import org.jooq.CreateSequenceFinalStep; import org.jooq.CreateTableAsStep; import org.jooq.CreateViewAsStep; import org.jooq.Cursor; import org.jooq.DDLFlag; import org.jooq.DSLContext; import org.jooq.DataType; import org.jooq.DeleteQuery; import org.jooq.DeleteWhereStep; import org.jooq.DropIndexOnStep; import org.jooq.DropSchemaStep; import org.jooq.DropSequenceFinalStep; import org.jooq.DropTableStep; import org.jooq.DropViewFinalStep; import org.jooq.ExecuteContext; import org.jooq.ExecuteListener; import org.jooq.Field; import org.jooq.InsertQuery; import org.jooq.InsertSetStep; import org.jooq.InsertValuesStep1; import org.jooq.InsertValuesStep10; import org.jooq.InsertValuesStep11; import org.jooq.InsertValuesStep12; import org.jooq.InsertValuesStep13; import org.jooq.InsertValuesStep14; import org.jooq.InsertValuesStep15; import org.jooq.InsertValuesStep16; import org.jooq.InsertValuesStep17; import org.jooq.InsertValuesStep18; import org.jooq.InsertValuesStep19; import org.jooq.InsertValuesStep2; import org.jooq.InsertValuesStep20; import org.jooq.InsertValuesStep21; import org.jooq.InsertValuesStep22; import org.jooq.InsertValuesStep3; import org.jooq.InsertValuesStep4; import org.jooq.InsertValuesStep5; import org.jooq.InsertValuesStep6; import org.jooq.InsertValuesStep7; import org.jooq.InsertValuesStep8; import org.jooq.InsertValuesStep9; import org.jooq.InsertValuesStepN; import org.jooq.LoaderOptionsStep; import org.jooq.MergeKeyStep1; import org.jooq.MergeKeyStep10; import org.jooq.MergeKeyStep11; import org.jooq.MergeKeyStep12; import org.jooq.MergeKeyStep13; import org.jooq.MergeKeyStep14; import org.jooq.MergeKeyStep15; import org.jooq.MergeKeyStep16; import org.jooq.MergeKeyStep17; import org.jooq.MergeKeyStep18; import org.jooq.MergeKeyStep19; import org.jooq.MergeKeyStep2; import org.jooq.MergeKeyStep20; import org.jooq.MergeKeyStep21; import org.jooq.MergeKeyStep22; import org.jooq.MergeKeyStep3; import org.jooq.MergeKeyStep4; import org.jooq.MergeKeyStep5; import org.jooq.MergeKeyStep6; import org.jooq.MergeKeyStep7; import org.jooq.MergeKeyStep8; import org.jooq.MergeKeyStep9; import org.jooq.MergeKeyStepN; import org.jooq.MergeUsingStep; import org.jooq.Meta; import org.jooq.Name; import org.jooq.Param; import org.jooq.Parser; import org.jooq.Queries; import org.jooq.Query; import org.jooq.QueryPart; import org.jooq.Record; import org.jooq.Record1; import org.jooq.Record10; import org.jooq.Record11; import org.jooq.Record12; import org.jooq.Record13; import org.jooq.Record14; import org.jooq.Record15; import org.jooq.Record16; import org.jooq.Record17; import org.jooq.Record18; import org.jooq.Record19; import org.jooq.Record2; import org.jooq.Record20; import org.jooq.Record21; import org.jooq.Record22; import org.jooq.Record3; import org.jooq.Record4; import org.jooq.Record5; import org.jooq.Record6; import org.jooq.Record7; import org.jooq.Record8; import org.jooq.Record9; import org.jooq.RenderContext; import org.jooq.Result; import org.jooq.ResultQuery; import org.jooq.Results; import org.jooq.SQL; import org.jooq.SQLDialect; import org.jooq.Schema; import org.jooq.Select; import org.jooq.SelectField; import org.jooq.SelectQuery; import org.jooq.SelectSelectStep; import org.jooq.SelectWhereStep; import org.jooq.Sequence; import org.jooq.Table; import org.jooq.TableField; import org.jooq.TableLike; import org.jooq.TableRecord; import org.jooq.TransactionProvider; import org.jooq.TransactionalCallable; import org.jooq.TransactionalRunnable; import org.jooq.TruncateIdentityStep; import org.jooq.UDT; import org.jooq.UDTRecord; import org.jooq.UpdatableRecord; import org.jooq.UpdateQuery; import org.jooq.UpdateSetFirstStep; import org.jooq.WithAsStep; import org.jooq.WithAsStep1; import org.jooq.WithAsStep10; import org.jooq.WithAsStep11; import org.jooq.WithAsStep12; import org.jooq.WithAsStep13; import org.jooq.WithAsStep14; import org.jooq.WithAsStep15; import org.jooq.WithAsStep16; import org.jooq.WithAsStep17; import org.jooq.WithAsStep18; import org.jooq.WithAsStep19; import org.jooq.WithAsStep2; import org.jooq.WithAsStep20; import org.jooq.WithAsStep21; import org.jooq.WithAsStep22; import org.jooq.WithAsStep3; import org.jooq.WithAsStep4; import org.jooq.WithAsStep5; import org.jooq.WithAsStep6; import org.jooq.WithAsStep7; import org.jooq.WithAsStep8; import org.jooq.WithAsStep9; import org.jooq.WithStep; import org.jooq.conf.Settings; import org.jooq.exception.ConfigurationException; import org.jooq.exception.DataAccessException; import org.jooq.exception.InvalidResultException; import org.jooq.exception.SQLDialectNotSupportedException; import org.jooq.impl.BatchCRUD.Action; import org.jooq.tools.csv.CSVReader; import org.jooq.tools.jdbc.JDBCUtils; import org.jooq.tools.jdbc.MockCallable; import org.jooq.tools.jdbc.MockConfiguration; import org.jooq.tools.jdbc.MockDataProvider; import org.jooq.tools.jdbc.MockRunnable; import org.jooq.util.xml.jaxb.InformationSchema; /** * A default implementation for {@link DSLContext}. * <p> * You may use this as a base implementation for custom {@link DSLContext} * subtypes preventing potential API breakage when upgrading jOOQ, or to * delegate DSL method calls to your custom implementations. * * @author Lukas Eder */ @SuppressWarnings({ "rawtypes", "unchecked" }) public class DefaultDSLContext extends AbstractScope implements DSLContext, Serializable { /** * Generated UID */ private static final long serialVersionUID = 2681360188806309513L; // ------------------------------------------------------------------------- // XXX Constructors // ------------------------------------------------------------------------- public DefaultDSLContext(SQLDialect dialect) { this(dialect, null); } @SuppressWarnings("deprecation") public DefaultDSLContext(SQLDialect dialect, Settings settings) { this(new DefaultConfiguration(new NoConnectionProvider(), null, null, null, null, null, dialect, settings, null)); } public DefaultDSLContext(Connection connection, SQLDialect dialect) { this(connection, dialect, null); } @SuppressWarnings("deprecation") public DefaultDSLContext(Connection connection, SQLDialect dialect, Settings settings) { this(new DefaultConfiguration(new DefaultConnectionProvider(connection), null, null, null, null, null, dialect, settings, null)); } public DefaultDSLContext(DataSource datasource, SQLDialect dialect) { this(datasource, dialect, null); } @SuppressWarnings("deprecation") public DefaultDSLContext(DataSource datasource, SQLDialect dialect, Settings settings) { this(new DefaultConfiguration(new DataSourceConnectionProvider(datasource), null, null, null, null, null, dialect, settings, null)); } public DefaultDSLContext(ConnectionProvider connectionProvider, SQLDialect dialect) { this(connectionProvider, dialect, null); } @SuppressWarnings("deprecation") public DefaultDSLContext(ConnectionProvider connectionProvider, SQLDialect dialect, Settings settings) { this(new DefaultConfiguration(connectionProvider, null, null, null, null, null, dialect, settings, null)); } public DefaultDSLContext(Configuration configuration) { super(configuration, configuration == null ? null : configuration.data()); } // ------------------------------------------------------------------------- // XXX AutoCloseable // ------------------------------------------------------------------------- @Override public void close() { ConnectionProvider cp = configuration().connectionProvider(); if (cp instanceof DefaultConnectionProvider) { DefaultConnectionProvider dcp = (DefaultConnectionProvider) cp; if (dcp.finalize) { JDBCUtils.safeClose(dcp.connection); dcp.connection = null; } } } // ------------------------------------------------------------------------- // XXX Configuration API // ------------------------------------------------------------------------- @Override public Schema map(Schema schema) { return Tools.getMappedSchema(configuration(), schema); } @Override public <R extends Record> Table<R> map(Table<R> table) { return Tools.getMappedTable(configuration(), table); } // ------------------------------------------------------------------------- // XXX Convenience methods accessing the underlying Connection // ------------------------------------------------------------------------- @Override @Deprecated public Parser parser() { return new ParserImpl(configuration()); } @Override public Connection parsingConnection() { return new ParsingConnection(configuration()); } @Override public Meta meta() { return new MetaImpl(configuration()); } @Override public Meta meta(InformationSchema schema) { return new InformationSchemaMetaImpl(configuration(), schema); } @Override public InformationSchema informationSchema(Catalog catalog) { return InformationSchemaExport.exportSchemas(configuration(), catalog.getSchemas()); } @Override public InformationSchema informationSchema(Catalog... catalogs) { List<Schema> schemas = new ArrayList<Schema>(); for (Catalog catalog : catalogs) schemas.addAll(catalog.getSchemas()); return InformationSchemaExport.exportSchemas(configuration(), schemas); } @Override public InformationSchema informationSchema(Schema schema) { return InformationSchemaExport.exportSchemas(configuration(), Arrays.asList(schema)); } @Override public InformationSchema informationSchema(Schema... schemas) { return InformationSchemaExport.exportSchemas(configuration(), Arrays.asList(schemas)); } @Override public InformationSchema informationSchema(Table<?> table) { return InformationSchemaExport.exportTables(configuration(), Arrays.<Table<?>>asList(table)); } @Override public InformationSchema informationSchema(Table<?>... tables) { return InformationSchemaExport.exportTables(configuration(), Arrays.<Table<?>>asList(tables)); } // ------------------------------------------------------------------------- // XXX APIs for creating scope for transactions, mocking, batching, etc. // ------------------------------------------------------------------------- @Override public <T> T transactionResult(final ContextTransactionalCallable<T> transactional) { TransactionProvider tp = configuration().transactionProvider(); if (!(tp instanceof ThreadLocalTransactionProvider)) throw new ConfigurationException("Cannot use ThreadLocalTransactionalCallable with TransactionProvider of type " + tp.getClass()); return transactionResult0(new TransactionalCallable<T>() { @Override public T run(Configuration c) throws Exception { return transactional.run(); } }, ((ThreadLocalTransactionProvider) tp).configuration(configuration()), true); } @Override public <T> T transactionResult(TransactionalCallable<T> transactional) { return transactionResult0(transactional, configuration(), false); } private static <T> T transactionResult0(TransactionalCallable<T> transactional, Configuration configuration, boolean threadLocal) { // If used in a Java 8 Stream, a transaction should always be executed // in a ManagedBlocker context, just in case Stream.parallel() is called // The same is true for all asynchronous transactions, which must always // run in a ManagedBlocker context. return blocking(() -> { T result = null; DefaultTransactionContext ctx = new DefaultTransactionContext(configuration.derive()); TransactionProvider provider = ctx.configuration().transactionProvider(); TransactionListeners listeners = new TransactionListeners(ctx.configuration()); try { try { listeners.beginStart(ctx); provider.begin(ctx); } finally { listeners.beginEnd(ctx); } result = transactional.run(ctx.configuration()); try { listeners.commitStart(ctx); provider.commit(ctx); } finally { listeners.commitEnd(ctx); } } catch (Exception cause) { ctx.cause(cause); listeners.rollbackStart(ctx); try { provider.rollback(ctx); } // [#3718] Use reflection to support also JDBC 4.0 catch (Exception suppress) { cause.addSuppressed(suppress); } listeners.rollbackEnd(ctx); if (cause instanceof RuntimeException) { throw (RuntimeException) cause; } else { throw new DataAccessException("Rollback caused", cause); } } return result; }, threadLocal).get(); } @Override public void transaction(final ContextTransactionalRunnable transactional) { transactionResult(new ContextTransactionalCallable<Void>() { @Override public Void run() throws Exception { transactional.run(); return null; } }); } @Override public void transaction(final TransactionalRunnable transactional) { transactionResult(new TransactionalCallable<Void>() { @Override public Void run(Configuration c) throws Exception { transactional.run(c); return null; } }); } @Override public CompletionStage<Void> transactionAsync(TransactionalRunnable transactional) { return transactionAsync(Tools.configuration(configuration()).executorProvider().provide(), transactional); } @Override public CompletionStage<Void> transactionAsync(Executor executor, TransactionalRunnable transactional) { if (configuration().transactionProvider() instanceof ThreadLocalTransactionProvider) throw new ConfigurationException("Cannot use TransactionalCallable with ThreadLocalTransactionProvider"); return ExecutorProviderCompletionStage.of(CompletableFuture.supplyAsync( () -> { transaction(transactional); return null; }, executor), () -> executor ); } @Override public <T> CompletionStage<T> transactionResultAsync(TransactionalCallable<T> transactional) { return transactionResultAsync(Tools.configuration(configuration()).executorProvider().provide(), transactional); } @Override public <T> CompletionStage<T> transactionResultAsync(Executor executor, TransactionalCallable<T> transactional) { if (configuration().transactionProvider() instanceof ThreadLocalTransactionProvider) throw new ConfigurationException("Cannot use TransactionalCallable with ThreadLocalTransactionProvider"); return ExecutorProviderCompletionStage.of(CompletableFuture.supplyAsync( () -> transactionResult(transactional), executor), () -> executor ); } @Override public <T> T connectionResult(ConnectionCallable<T> callable) { final Connection connection = configuration().connectionProvider().acquire(); try { return callable.run(connection); } catch (Exception e) { throw new DataAccessException("Error while running ConnectionCallable", e); } finally { configuration().connectionProvider().release(connection); } } @Override public void connection(final ConnectionRunnable runnable) { connectionResult(new ConnectionCallable<Void>() { @Override public Void run(Connection connection) throws Exception { runnable.run(connection); return null; } }); } @Override public <T> T mockResult(MockDataProvider provider, MockCallable<T> mockable) { try { return mockable.run(new MockConfiguration(configuration, provider)); } catch (RuntimeException e) { throw e; } catch (Exception cause) { throw new DataAccessException("Mock failed", cause); } } @Override public void mock(final MockDataProvider provider, final MockRunnable mockable) { mockResult(provider, new MockCallable<Void>() { @Override public Void run(Configuration c) throws Exception { mockable.run(c); return null; } }); } // ------------------------------------------------------------------------- // XXX RenderContext and BindContext accessors // ------------------------------------------------------------------------- @Override public RenderContext renderContext() { return new DefaultRenderContext(configuration()); } @Override public String render(QueryPart part) { return renderContext().visit(part).render(); } @Override public String renderNamedParams(QueryPart part) { return renderContext().paramType(NAMED).visit(part).render(); } @Override public String renderNamedOrInlinedParams(QueryPart part) { return renderContext().paramType(NAMED_OR_INLINED).visit(part).render(); } @Override public String renderInlined(QueryPart part) { return renderContext().paramType(INLINED).visit(part).render(); } @Override public List<Object> extractBindValues(QueryPart part) { List<Object> result = new ArrayList<Object>(); ParamCollector collector = new ParamCollector(configuration(), false); collector.visit(part); for (Entry<String, Param<?>> entry : collector.resultList) result.add(entry.getValue().getValue()); return Collections.unmodifiableList(result); } @Override public Map<String, Param<?>> extractParams(QueryPart part) { return extractParams0(part, true); } final Map<String, Param<?>> extractParams0(QueryPart part, boolean includeInlinedParams) { ParamCollector collector = new ParamCollector(configuration(), includeInlinedParams); collector.visit(part); return Collections.unmodifiableMap(collector.resultFlat); } @Override public Param<?> extractParam(QueryPart part, String name) { return extractParams(part).get(name); } @Override public BindContext bindContext(PreparedStatement stmt) { return new DefaultBindContext(configuration(), stmt); } @Override @Deprecated public int bind(QueryPart part, PreparedStatement stmt) { return bindContext(stmt).visit(part).peekIndex(); } // ------------------------------------------------------------------------- // XXX Attachable and Serializable API // ------------------------------------------------------------------------- @Override public void attach(Attachable... attachables) { attach(Arrays.asList(attachables)); } @Override public void attach(Collection<? extends Attachable> attachables) { for (Attachable attachable : attachables) { attachable.attach(configuration()); } } // ------------------------------------------------------------------------- // XXX Access to the loader API // ------------------------------------------------------------------------- @Override public <R extends Record> LoaderOptionsStep<R> loadInto(Table<R> table) { return new LoaderImpl<R>(configuration(), table); } // ------------------------------------------------------------------------- // XXX: Queries // ------------------------------------------------------------------------- @Override public Queries queries(Query... queries) { return queries(Arrays.asList(queries)); } @Override public Queries queries(Collection<? extends Query> queries) { return new QueriesImpl(configuration(), queries); } // ------------------------------------------------------------------------- // XXX Plain SQL API // ------------------------------------------------------------------------- @Override public Query query(SQL sql) { return new SQLQuery(configuration(), sql); } @Override public Query query(String sql) { return query(sql, new Object[0]); } @Override public Query query(String sql, Object... bindings) { return query(sql(sql, bindings)); } @Override public Query query(String sql, QueryPart... parts) { return query(sql, (Object[]) parts); } @Override public Result<Record> fetch(SQL sql) { return resultQuery(sql).fetch(); } @Override public Result<Record> fetch(String sql) { return resultQuery(sql).fetch(); } @Override public Result<Record> fetch(String sql, Object... bindings) { return resultQuery(sql, bindings).fetch(); } @Override public Result<Record> fetch(String sql, QueryPart... parts) { return resultQuery(sql, parts).fetch(); } @Override public Cursor<Record> fetchLazy(SQL sql) { return resultQuery(sql).fetchLazy(); } @Override public Cursor<Record> fetchLazy(String sql) { return resultQuery(sql).fetchLazy(); } @Override public Cursor<Record> fetchLazy(String sql, Object... bindings) { return resultQuery(sql, bindings).fetchLazy(); } @Override public Cursor<Record> fetchLazy(String sql, QueryPart... parts) { return resultQuery(sql, parts).fetchLazy(); } @Override public CompletionStage<Result<Record>> fetchAsync(SQL sql) { return resultQuery(sql).fetchAsync(); } @Override public CompletionStage<Result<Record>> fetchAsync(String sql) { return resultQuery(sql).fetchAsync(); } @Override public CompletionStage<Result<Record>> fetchAsync(String sql, Object... bindings) { return resultQuery(sql, bindings).fetchAsync(); } @Override public CompletionStage<Result<Record>> fetchAsync(String sql, QueryPart... parts) { return resultQuery(sql, parts).fetchAsync(); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, SQL sql) { return resultQuery(sql).fetchAsync(executor); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, String sql) { return resultQuery(sql).fetchAsync(executor); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, String sql, Object... bindings) { return resultQuery(sql, bindings).fetchAsync(executor); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, String sql, QueryPart... parts) { return resultQuery(sql, parts).fetchAsync(executor); } @Override public Stream<Record> fetchStream(SQL sql) { return resultQuery(sql).stream(); } @Override public Stream<Record> fetchStream(String sql) { return resultQuery(sql).stream(); } @Override public Stream<Record> fetchStream(String sql, Object... bindings) { return resultQuery(sql, bindings).stream(); } @Override public Stream<Record> fetchStream(String sql, QueryPart... parts) { return resultQuery(sql, parts).stream(); } @Override public Results fetchMany(SQL sql) { return resultQuery(sql).fetchMany(); } @Override public Results fetchMany(String sql) { return resultQuery(sql).fetchMany(); } @Override public Results fetchMany(String sql, Object... bindings) { return resultQuery(sql, bindings).fetchMany(); } @Override public Results fetchMany(String sql, QueryPart... parts) { return resultQuery(sql, parts).fetchMany(); } @Override public Record fetchOne(SQL sql) { return resultQuery(sql).fetchOne(); } @Override public Record fetchOne(String sql) { return resultQuery(sql).fetchOne(); } @Override public Record fetchOne(String sql, Object... bindings) { return resultQuery(sql, bindings).fetchOne(); } @Override public Record fetchOne(String sql, QueryPart... parts) { return resultQuery(sql, parts).fetchOne(); } @Override public Optional<Record> fetchOptional(SQL sql) { return Optional.ofNullable(fetchOne(sql)); } @Override public Optional<Record> fetchOptional(String sql) { return Optional.ofNullable(fetchOne(sql)); } @Override public Optional<Record> fetchOptional(String sql, Object... bindings) { return Optional.ofNullable(fetchOne(sql, bindings)); } @Override public Optional<Record> fetchOptional(String sql, QueryPart... parts) { return Optional.ofNullable(fetchOne(sql, parts)); } @Override public Object fetchValue(SQL sql) { return fetchValue((ResultQuery) resultQuery(sql)); } @Override public Object fetchValue(String sql) { return fetchValue((ResultQuery) resultQuery(sql)); } @Override public Object fetchValue(String sql, Object... bindings) { return fetchValue((ResultQuery) resultQuery(sql, bindings)); } @Override public Object fetchValue(String sql, QueryPart... parts) { return fetchValue((ResultQuery) resultQuery(sql, parts)); } @Override public Optional<?> fetchOptionalValue(SQL sql) { return Optional.ofNullable(fetchValue(sql)); } @Override public Optional<?> fetchOptionalValue(String sql) { return Optional.ofNullable(fetchValue(sql)); } @Override public Optional<?> fetchOptionalValue(String sql, Object... bindings) { return Optional.ofNullable(fetchValue(sql, bindings)); } @Override public Optional<?> fetchOptionalValue(String sql, QueryPart... parts) { return Optional.ofNullable(fetchValue(sql, parts)); } @Override public List<?> fetchValues(SQL sql) { return fetchValues((ResultQuery) resultQuery(sql)); } @Override public List<?> fetchValues(String sql) { return fetchValues((ResultQuery) resultQuery(sql)); } @Override public List<?> fetchValues(String sql, Object... bindings) { return fetchValues((ResultQuery) resultQuery(sql, bindings)); } @Override public List<?> fetchValues(String sql, QueryPart... parts) { return fetchValues((ResultQuery) resultQuery(sql, parts)); } @Override public int execute(SQL sql) { return query(sql).execute(); } @Override public int execute(String sql) { return query(sql).execute(); } @Override public int execute(String sql, Object... bindings) { return query(sql, bindings).execute(); } @Override public int execute(String sql, QueryPart... parts) { return query(sql, (Object[]) parts).execute(); } @Override public ResultQuery<Record> resultQuery(SQL sql) { return new SQLResultQuery(configuration(), sql); } @Override public ResultQuery<Record> resultQuery(String sql) { return resultQuery(sql, new Object[0]); } @Override public ResultQuery<Record> resultQuery(String sql, Object... bindings) { return resultQuery(sql(sql, bindings)); } @Override public ResultQuery<Record> resultQuery(String sql, QueryPart... parts) { return resultQuery(sql, (Object[]) parts); } // ------------------------------------------------------------------------- // XXX JDBC convenience methods // ------------------------------------------------------------------------- @Override public Result<Record> fetch(ResultSet rs) { return fetchLazy(rs).fetch(); } @Override public Result<Record> fetch(ResultSet rs, Field<?>... fields) { return fetchLazy(rs, fields).fetch(); } @Override public Result<Record> fetch(ResultSet rs, DataType<?>... types) { return fetchLazy(rs, types).fetch(); } @Override public Result<Record> fetch(ResultSet rs, Class<?>... types) { return fetchLazy(rs, types).fetch(); } @Override public Record fetchOne(ResultSet rs) { return Tools.fetchOne(fetchLazy(rs)); } @Override public Record fetchOne(ResultSet rs, Field<?>... fields) { return Tools.fetchOne(fetchLazy(rs, fields)); } @Override public Record fetchOne(ResultSet rs, DataType<?>... types) { return Tools.fetchOne(fetchLazy(rs, types)); } @Override public Record fetchOne(ResultSet rs, Class<?>... types) { return Tools.fetchOne(fetchLazy(rs, types)); } @Override public Optional<Record> fetchOptional(ResultSet rs) { return Optional.ofNullable(fetchOne(rs)); } @Override public Optional<Record> fetchOptional(ResultSet rs, Field<?>... fields) { return Optional.ofNullable(fetchOne(rs, fields)); } @Override public Optional<Record> fetchOptional(ResultSet rs, DataType<?>... types) { return Optional.ofNullable(fetchOne(rs, types)); } @Override public Optional<Record> fetchOptional(ResultSet rs, Class<?>... types) { return Optional.ofNullable(fetchOne(rs, types)); } @Override public Object fetchValue(ResultSet rs) { return value1((Record1) fetchOne(rs)); } @Override public <T> T fetchValue(ResultSet rs, Field<T> field) { return (T) value1((Record1) fetchOne(rs, field)); } @Override public <T> T fetchValue(ResultSet rs, DataType<T> type) { return (T) value1((Record1) fetchOne(rs, type)); } @Override public <T> T fetchValue(ResultSet rs, Class<T> type) { return (T) value1((Record1) fetchOne(rs, type)); } @Override public Optional<?> fetchOptionalValue(ResultSet rs) { return Optional.ofNullable(fetchValue(rs)); } @Override public <T> Optional<T> fetchOptionalValue(ResultSet rs, Field<T> field) { return Optional.ofNullable(fetchValue(rs, field)); } @Override public <T> Optional<T> fetchOptionalValue(ResultSet rs, DataType<T> type) { return Optional.ofNullable(fetchValue(rs, type)); } @Override public <T> Optional<T> fetchOptionalValue(ResultSet rs, Class<T> type) { return Optional.ofNullable(fetchValue(rs, type)); } @Override public List<?> fetchValues(ResultSet rs) { return fetch(rs).getValues(0); } @Override public <T> List<T> fetchValues(ResultSet rs, Field<T> field) { return fetch(rs).getValues(field); } @Override public <T> List<T> fetchValues(ResultSet rs, DataType<T> type) { return fetch(rs).getValues(0, type.getType()); } @Override public <T> List<T> fetchValues(ResultSet rs, Class<T> type) { return fetch(rs).getValues(0, type); } @Override public Cursor<Record> fetchLazy(ResultSet rs) { try { return fetchLazy(rs, new MetaDataFieldProvider(configuration(), rs.getMetaData()).getFields()); } catch (SQLException e) { throw new DataAccessException("Error while accessing ResultSet meta data", e); } } @Override public Cursor<Record> fetchLazy(ResultSet rs, Field<?>... fields) { ExecuteContext ctx = new DefaultExecuteContext(configuration()); ExecuteListener listener = new ExecuteListeners(ctx); ctx.resultSet(rs); return new CursorImpl<Record>(ctx, listener, fields, null, false, true); } @Override public Cursor<Record> fetchLazy(ResultSet rs, DataType<?>... types) { try { Field<?>[] fields = new Field[types.length]; ResultSetMetaData meta = rs.getMetaData(); int columns = meta.getColumnCount(); for (int i = 0; i < types.length && i < columns; i++) { fields[i] = field(meta.getColumnLabel(i + 1), types[i]); } return fetchLazy(rs, fields); } catch (SQLException e) { throw new DataAccessException("Error while accessing ResultSet meta data", e); } } @Override public Cursor<Record> fetchLazy(ResultSet rs, Class<?>... types) { return fetchLazy(rs, Tools.dataTypes(types)); } @Override public CompletionStage<Result<Record>> fetchAsync(ResultSet rs) { return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs); } @Override public CompletionStage<Result<Record>> fetchAsync(ResultSet rs, Field<?>... fields) { return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, fields); } @Override public CompletionStage<Result<Record>> fetchAsync(ResultSet rs, DataType<?>... types) { return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, types); } @Override public CompletionStage<Result<Record>> fetchAsync(ResultSet rs, Class<?>... types) { return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, types); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, ResultSet rs) { return ExecutorProviderCompletionStage.of( CompletableFuture.supplyAsync(blocking(() -> fetch(rs)), executor), () -> executor ); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, ResultSet rs, Field<?>... fields) { return ExecutorProviderCompletionStage.of( CompletableFuture.supplyAsync(blocking(() -> fetch(rs, fields)), executor), () -> executor ); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, ResultSet rs, DataType<?>... types) { return ExecutorProviderCompletionStage.of( CompletableFuture.supplyAsync(blocking(() -> fetch(rs, types)), executor), () -> executor ); } @Override public CompletionStage<Result<Record>> fetchAsync(Executor executor, ResultSet rs, Class<?>... types) { return ExecutorProviderCompletionStage.of( CompletableFuture.supplyAsync(blocking(() -> fetch(rs, types)), executor), () -> executor ); } @Override public Stream<Record> fetchStream(ResultSet rs) { return fetchLazy(rs).stream(); } @Override public Stream<Record> fetchStream(ResultSet rs, Field<?>... fields) { return fetchLazy(rs, fields).stream(); } @Override public Stream<Record> fetchStream(ResultSet rs, DataType<?>... types) { return fetchLazy(rs, types).stream(); } @Override public Stream<Record> fetchStream(ResultSet rs, Class<?>... types) { return fetchLazy(rs, types).stream(); } @Override public Result<Record> fetchFromTXT(String string) { return fetchFromTXT(string, "{null}"); } @Override public Result<Record> fetchFromTXT(String string, String nullLiteral) { return fetchFromStringData(Tools.parseTXT(string, nullLiteral)); } @Override public Result<Record> fetchFromHTML(String string) { return fetchFromStringData(Tools.parseHTML(string)); } @Override public Result<Record> fetchFromCSV(String string) { return fetchFromCSV(string, true, ','); } @Override public Result<Record> fetchFromCSV(String string, char delimiter) { return fetchFromCSV(string, true, delimiter); } @Override public Result<Record> fetchFromCSV(String string, boolean header) { return fetchFromCSV(string, header, ','); } @Override public Result<Record> fetchFromCSV(String string, boolean header, char delimiter) { CSVReader reader = new CSVReader(new StringReader(string), delimiter); List<String[]> list = null; try { list = reader.readAll(); } catch (IOException e) { throw new DataAccessException("Could not read the CSV string", e); } finally { try { reader.close(); } catch (IOException ignore) {} } return fetchFromStringData(list, header); } @Override public Result<Record> fetchFromJSON(String string) { List<String[]> list = new LinkedList<String[]>(); JSONReader reader = null; try { reader = new JSONReader(new StringReader(string)); List<String[]> records = reader.readAll(); String[] fields = reader.getFields(); list.add(fields); list.addAll(records); } catch (IOException e) { throw new DataAccessException("Could not read the JSON string", e); } finally { try { if (reader != null) { reader.close(); } } catch (IOException ignore) {} } return fetchFromStringData(list); } @Override public Result<Record> fetchFromStringData(String[]... strings) { return fetchFromStringData(list(strings), true); } @Override public Result<Record> fetchFromStringData(List<String[]> strings) { return fetchFromStringData(strings, true); } @Override public Result<Record> fetchFromStringData(List<String[]> strings, boolean header) { if (strings.size() == 0) { return new ResultImpl<Record>(configuration()); } else { List<Field<?>> fields = new ArrayList<Field<?>>(); int firstRow; if (header) { firstRow = 1; for (String name : strings.get(0)) { fields.add(field(name(name), String.class)); } } else { firstRow = 0; for (int i = 0; i < strings.get(0).length; i++) { fields.add(field(name("COL" + (i + 1)), String.class)); } } Result<Record> result = new ResultImpl<Record>(configuration(), fields); if (strings.size() > firstRow) { for (String[] values : strings.subList(firstRow, strings.size())) { RecordImpl record = new RecordImpl(fields); for (int i = 0; i < Math.min(values.length, fields.size()); i++) { record.values[i] = values[i]; record.originals[i] = values[i]; } result.add(record); } } return result; } } // ------------------------------------------------------------------------- // XXX Global Query factory // ------------------------------------------------------------------------- @Override public WithAsStep with(String alias) { return new WithImpl(configuration(), false).with(alias); } @Override public WithAsStep with(String alias, String... fieldAliases) { return new WithImpl(configuration(), false).with(alias, fieldAliases); } @Override public WithAsStep with(String alias, Function<? super Field<?>, ? extends String> fieldNameFunction) { return new WithImpl(configuration(), false).with(alias, fieldNameFunction); } @Override public WithAsStep with(String alias, BiFunction<? super Field<?>, ? super Integer, ? extends String> fieldNameFunction) { return new WithImpl(configuration(), false).with(alias, fieldNameFunction); } // [jooq-tools] START [with] @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep1 with(String alias, String fieldAlias1) { return new WithImpl(configuration(), false).with(alias, fieldAlias1); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep2 with(String alias, String fieldAlias1, String fieldAlias2) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep3 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep4 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep5 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep6 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep7 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep8 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep9 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep10 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21, fieldAlias22); } // [jooq-tools] END [with] @Override public WithStep with(CommonTableExpression<?>... tables) { return new WithImpl(configuration(), false).with(tables); } @Override public WithAsStep withRecursive(String alias) { return new WithImpl(configuration(), true).with(alias); } @Override public WithAsStep withRecursive(String alias, String... fieldAliases) { return new WithImpl(configuration(), true).with(alias, fieldAliases); } @Override public WithAsStep withRecursive(String alias, Function<? super Field<?>, ? extends String> fieldNameFunction) { return new WithImpl(configuration(), true).with(alias, fieldNameFunction); } @Override public WithAsStep withRecursive(String alias, BiFunction<? super Field<?>, ? super Integer, ? extends String> fieldNameFunction) { return new WithImpl(configuration(), true).with(alias, fieldNameFunction); } // [jooq-tools] START [with-recursive] @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep1 withRecursive(String alias, String fieldAlias1) { return new WithImpl(configuration(), true).with(alias, fieldAlias1); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep2 withRecursive(String alias, String fieldAlias1, String fieldAlias2) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep3 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep4 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep5 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep6 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep7 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep8 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep9 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9); } @Generated("This method was generated using jOOQ-tools") @Override public WithAsStep10 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21); } @Generated("This method was generated using jOOQ-tools") @Override public 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) { return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21, fieldAlias22); } // [jooq-tools] END [with-recursive] @Override public WithStep withRecursive(CommonTableExpression<?>... tables) { return new WithImpl(configuration(), true).with(tables); } @Override public <R extends Record> SelectWhereStep<R> selectFrom(Table<R> table) { SelectWhereStep<R> result = DSL.selectFrom(table); result.attach(configuration()); return result; } @Override public SelectSelectStep<Record> select(Collection<? extends SelectField<?>> fields) { SelectSelectStep<Record> result = DSL.select(fields); result.attach(configuration()); return result; } @Override public SelectSelectStep<Record> select(SelectField<?>... fields) { SelectSelectStep<Record> result = DSL.select(fields); result.attach(configuration()); return result; } // [jooq-tools] START [select] @Generated("This method was generated using jOOQ-tools") @Override public <T1> SelectSelectStep<Record1<T1>> select(SelectField<T1> field1) { return (SelectSelectStep) select(new SelectField[] { field1 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2> SelectSelectStep<Record2<T1, T2>> select(SelectField<T1> field1, SelectField<T2> field2) { return (SelectSelectStep) select(new SelectField[] { field1, field2 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3> SelectSelectStep<Record3<T1, T2, T3>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4> SelectSelectStep<Record4<T1, T2, T3, T4>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5> SelectSelectStep<Record5<T1, T2, T3, T4, T5>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6> SelectSelectStep<Record6<T1, T2, T3, T4, T5, T6>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7> SelectSelectStep<Record7<T1, T2, T3, T4, T5, T6, T7>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8> SelectSelectStep<Record8<T1, T2, T3, T4, T5, T6, T7, T8>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9> SelectSelectStep<Record9<T1, T2, T3, T4, T5, T6, T7, T8, T9>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> SelectSelectStep<Record10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SelectSelectStep<Record11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> SelectSelectStep<Record12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> SelectSelectStep<Record13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> SelectSelectStep<Record14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> SelectSelectStep<Record15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> SelectSelectStep<Record16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> SelectSelectStep<Record17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> SelectSelectStep<Record18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> SelectSelectStep<Record19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> SelectSelectStep<Record20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> SelectSelectStep<Record21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20, SelectField<T21> field21) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> SelectSelectStep<Record22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>> select(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20, SelectField<T21> field21, SelectField<T22> field22) { return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22 }); } // [jooq-tools] END [select] @Override public SelectSelectStep<Record> selectDistinct(Collection<? extends SelectField<?>> fields) { SelectSelectStep<Record> result = DSL.selectDistinct(fields); result.attach(configuration()); return result; } @Override public SelectSelectStep<Record> selectDistinct(SelectField<?>... fields) { SelectSelectStep<Record> result = DSL.selectDistinct(fields); result.attach(configuration()); return result; } // [jooq-tools] START [selectDistinct] @Generated("This method was generated using jOOQ-tools") @Override public <T1> SelectSelectStep<Record1<T1>> selectDistinct(SelectField<T1> field1) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2> SelectSelectStep<Record2<T1, T2>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3> SelectSelectStep<Record3<T1, T2, T3>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4> SelectSelectStep<Record4<T1, T2, T3, T4>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5> SelectSelectStep<Record5<T1, T2, T3, T4, T5>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6> SelectSelectStep<Record6<T1, T2, T3, T4, T5, T6>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7> SelectSelectStep<Record7<T1, T2, T3, T4, T5, T6, T7>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8> SelectSelectStep<Record8<T1, T2, T3, T4, T5, T6, T7, T8>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9> SelectSelectStep<Record9<T1, T2, T3, T4, T5, T6, T7, T8, T9>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> SelectSelectStep<Record10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SelectSelectStep<Record11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> SelectSelectStep<Record12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> SelectSelectStep<Record13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> SelectSelectStep<Record14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> SelectSelectStep<Record15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> SelectSelectStep<Record16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> SelectSelectStep<Record17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> SelectSelectStep<Record18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> SelectSelectStep<Record19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> SelectSelectStep<Record20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> SelectSelectStep<Record21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20, SelectField<T21> field21) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> SelectSelectStep<Record22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>> selectDistinct(SelectField<T1> field1, SelectField<T2> field2, SelectField<T3> field3, SelectField<T4> field4, SelectField<T5> field5, SelectField<T6> field6, SelectField<T7> field7, SelectField<T8> field8, SelectField<T9> field9, SelectField<T10> field10, SelectField<T11> field11, SelectField<T12> field12, SelectField<T13> field13, SelectField<T14> field14, SelectField<T15> field15, SelectField<T16> field16, SelectField<T17> field17, SelectField<T18> field18, SelectField<T19> field19, SelectField<T20> field20, SelectField<T21> field21, SelectField<T22> field22) { return (SelectSelectStep) selectDistinct(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22 }); } // [jooq-tools] END [selectDistinct] @Override public SelectSelectStep<Record1<Integer>> selectZero() { SelectSelectStep<Record1<Integer>> result = DSL.selectZero(); result.attach(configuration()); return result; } @Override public SelectSelectStep<Record1<Integer>> selectOne() { SelectSelectStep<Record1<Integer>> result = DSL.selectOne(); result.attach(configuration()); return result; } @Override public SelectSelectStep<Record1<Integer>> selectCount() { SelectSelectStep<Record1<Integer>> result = DSL.selectCount(); result.attach(configuration()); return result; } @Override public SelectQuery<Record> selectQuery() { return new SelectQueryImpl(configuration(), null); } @Override public <R extends Record> SelectQuery<R> selectQuery(TableLike<R> table) { return new SelectQueryImpl<R>(configuration(), null, table); } @Override public <R extends Record> InsertQuery<R> insertQuery(Table<R> into) { return new InsertQueryImpl<R>(configuration(), null, into); } @Override public <R extends Record> InsertSetStep<R> insertInto(Table<R> into) { return new InsertImpl(configuration(), null, into, Collections.<Field<?>>emptyList()); } // [jooq-tools] START [insert] @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1> InsertValuesStep1<R, T1> insertInto(Table<R> into, Field<T1> field1) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2> InsertValuesStep2<R, T1, T2> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3> InsertValuesStep3<R, T1, T2, T3> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4> InsertValuesStep4<R, T1, T2, T3, T4> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5> InsertValuesStep5<R, T1, T2, T3, T4, T5> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6> InsertValuesStep6<R, T1, T2, T3, T4, T5, T6> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7> InsertValuesStep7<R, T1, T2, T3, T4, T5, T6, T7> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8> InsertValuesStep8<R, T1, T2, T3, T4, T5, T6, T7, T8> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9> InsertValuesStep9<R, T1, T2, T3, T4, T5, T6, T7, T8, T9> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> InsertValuesStep10<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> InsertValuesStep11<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> InsertValuesStep12<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> InsertValuesStep13<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> InsertValuesStep14<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> InsertValuesStep15<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> InsertValuesStep16<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> InsertValuesStep17<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> InsertValuesStep18<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> InsertValuesStep19<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> InsertValuesStep20<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> InsertValuesStep21<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21 })); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> InsertValuesStep22<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> insertInto(Table<R> into, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21, Field<T22> field22) { return new InsertImpl(configuration(), null, into, Arrays.asList(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22 })); } // [jooq-tools] END [insert] @Override public <R extends Record> InsertValuesStepN<R> insertInto(Table<R> into, Field<?>... fields) { return new InsertImpl(configuration(), null, into, Arrays.asList(fields)); } @Override public <R extends Record> InsertValuesStepN<R> insertInto(Table<R> into, Collection<? extends Field<?>> fields) { return new InsertImpl(configuration(), null, into, fields); } @Override public <R extends Record> UpdateQuery<R> updateQuery(Table<R> table) { return new UpdateQueryImpl<R>(configuration(), null, table); } @Override public <R extends Record> UpdateSetFirstStep<R> update(Table<R> table) { return new UpdateImpl<R>(configuration(), null, table); } @Override public <R extends Record> MergeUsingStep<R> mergeInto(Table<R> table) { return new MergeImpl(configuration(), null, table); } // [jooq-tools] START [merge] @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1> MergeKeyStep1<R, T1> mergeInto(Table<R> table, Field<T1> field1) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2> MergeKeyStep2<R, T1, T2> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3> MergeKeyStep3<R, T1, T2, T3> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4> MergeKeyStep4<R, T1, T2, T3, T4> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5> MergeKeyStep5<R, T1, T2, T3, T4, T5> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6> MergeKeyStep6<R, T1, T2, T3, T4, T5, T6> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7> MergeKeyStep7<R, T1, T2, T3, T4, T5, T6, T7> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8> MergeKeyStep8<R, T1, T2, T3, T4, T5, T6, T7, T8> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9> MergeKeyStep9<R, T1, T2, T3, T4, T5, T6, T7, T8, T9> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> MergeKeyStep10<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> MergeKeyStep11<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> MergeKeyStep12<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> MergeKeyStep13<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> MergeKeyStep14<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> MergeKeyStep15<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> MergeKeyStep16<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> MergeKeyStep17<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> MergeKeyStep18<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> MergeKeyStep19<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> MergeKeyStep20<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> MergeKeyStep21<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21)); } @Generated("This method was generated using jOOQ-tools") @Override public <R extends Record, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> MergeKeyStep22<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> mergeInto(Table<R> table, Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21, Field<T22> field22) { return new MergeImpl(configuration(), null, table, Arrays.asList(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22)); } // [jooq-tools] END [merge] @Override public <R extends Record> MergeKeyStepN<R> mergeInto(Table<R> table, Field<?>... fields) { return mergeInto(table, Arrays.asList(fields)); } @Override public <R extends Record> MergeKeyStepN<R> mergeInto(Table<R> table, Collection<? extends Field<?>> fields) { return new MergeImpl(configuration(), null, table, fields); } @Override public <R extends Record> DeleteQuery<R> deleteQuery(Table<R> table) { return new DeleteQueryImpl<R>(configuration(), null, table); } @Override public <R extends Record> DeleteWhereStep<R> delete(Table<R> table) { return deleteFrom(table); } @Override public <R extends Record> DeleteWhereStep<R> deleteFrom(Table<R> table) { return new DeleteImpl<R>(configuration(), null, table); } // ------------------------------------------------------------------------- // XXX Batch query execution // ------------------------------------------------------------------------- @Override public Batch batch(Query... queries) { return new BatchMultiple(configuration(), queries); } @Override public Batch batch(Queries queries) { return batch(queries.queries()); } @Override public Batch batch(String... queries) { Query[] result = new Query[queries.length]; for (int i = 0; i < queries.length; i++) { result[i] = query(queries[i]); } return batch(result); } @Override public Batch batch(Collection<? extends Query> queries) { return batch(queries.toArray(EMPTY_QUERY)); } @Override public BatchBindStep batch(Query query) { return new BatchSingle(configuration(), query); } @Override public BatchBindStep batch(String sql) { return batch(query(sql)); } @Override public Batch batch(Query query, Object[]... bindings) { return batch(query).bind(bindings); } @Override public Batch batch(String sql, Object[]... bindings) { return batch(query(sql), bindings); } @Override public Batch batchStore(UpdatableRecord<?>... records) { return new BatchCRUD(configuration(), Action.STORE, records); } @Override public Batch batchStore(Collection<? extends UpdatableRecord<?>> records) { return batchStore(records.toArray(EMPTY_UPDATABLE_RECORD)); } @Override public Batch batchInsert(TableRecord<?>... records) { return new BatchCRUD(configuration(), Action.INSERT, records); } @Override public Batch batchInsert(Collection<? extends TableRecord<?>> records) { return batchInsert(records.toArray(EMPTY_TABLE_RECORD)); } @Override public Batch batchUpdate(UpdatableRecord<?>... records) { return new BatchCRUD(configuration(), Action.UPDATE, records); } @Override public Batch batchUpdate(Collection<? extends UpdatableRecord<?>> records) { return batchUpdate(records.toArray(EMPTY_UPDATABLE_RECORD)); } @Override public Batch batchDelete(UpdatableRecord<?>... records) { return new BatchCRUD(configuration(), Action.DELETE, records); } @Override public Batch batchDelete(Collection<? extends UpdatableRecord<?>> records) { return batchDelete(records.toArray(EMPTY_UPDATABLE_RECORD)); } // ------------------------------------------------------------------------- // XXX DDL Statements from existing meta data // ------------------------------------------------------------------------- @Override public Queries ddl(Catalog catalog) { return ddl(catalog, DDLFlag.values()); } @Override public Queries ddl(Catalog schema, DDLFlag... flags) { return new DDL(this, flags).queries(schema); } @Override public Queries ddl(Schema schema) { return ddl(schema, DDLFlag.values()); } @Override public Queries ddl(Schema schema, DDLFlag... flags) { return new DDL(this, flags).queries(schema); } @Override public Queries ddl(Table<?> table) { return ddl(table, DDLFlag.values()); } @Override public Queries ddl(Table<?> table, DDLFlag... flags) { return new DDL(this, flags).queries(table); } // ------------------------------------------------------------------------- // XXX DDL Statements // ------------------------------------------------------------------------- @Override public CreateViewAsStep<Record> createView(String view, String... fields) { return createView(table(name(view)), Tools.fieldsByName(view, fields)); } @Override public CreateViewAsStep<Record> createView(Name view, Name... fields) { return createView(table(view), Tools.fieldsByName(fields)); } @Override public CreateViewAsStep<Record> createView(Table<?> view, Field<?>... fields) { return new CreateViewImpl<Record>(configuration(), view, fields, false); } @Override public CreateViewAsStep<Record> createView(String view, Function<? super Field<?>, ? extends String> fieldNameFunction) { return createView(table(name(view)), (f, i) -> field(name(fieldNameFunction.apply(f)))); } @Override public CreateViewAsStep<Record> createView(String view, BiFunction<? super Field<?>, ? super Integer, ? extends String> fieldNameFunction) { return createView(table(name(view)), (f, i) -> field(name(fieldNameFunction.apply(f, i)))); } @Override public CreateViewAsStep<Record> createView(Name view, Function<? super Field<?>, ? extends Name> fieldNameFunction) { return createView(table(view), (f, i) -> field(fieldNameFunction.apply(f))); } @Override public CreateViewAsStep<Record> createView(Name view, BiFunction<? super Field<?>, ? super Integer, ? extends Name> fieldNameFunction) { return createView(table(view), (f, i) -> field(fieldNameFunction.apply(f, i))); } @Override public CreateViewAsStep<Record> createView(Table<?> view, Function<? super Field<?>, ? extends Field<?>> fieldNameFunction) { return createView(view, (f, i) -> fieldNameFunction.apply(f)); } @Override public CreateViewAsStep<Record> createView(Table<?> view, BiFunction<? super Field<?>, ? super Integer, ? extends Field<?>> fieldNameFunction) { return new CreateViewImpl<Record>(configuration(), view, fieldNameFunction, false); } @Override public CreateViewAsStep<Record> createViewIfNotExists(String view, String... fields) { return createViewIfNotExists(table(name(view)), Tools.fieldsByName(view, fields)); } @Override public CreateViewAsStep<Record> createViewIfNotExists(Name view, Name... fields) { return createViewIfNotExists(table(view), Tools.fieldsByName(fields)); } @Override public CreateViewAsStep<Record> createViewIfNotExists(Table<?> view, Field<?>... fields) { return new CreateViewImpl<Record>(configuration(), view, fields, true); } @Override public CreateViewAsStep<Record> createViewIfNotExists(String view, Function<? super Field<?>, ? extends String> fieldNameFunction) { return createViewIfNotExists(table(name(view)), (f, i) -> field(name(fieldNameFunction.apply(f)))); } @Override public CreateViewAsStep<Record> createViewIfNotExists(String view, BiFunction<? super Field<?>, ? super Integer, ? extends String> fieldNameFunction) { return createViewIfNotExists(table(name(view)), (f, i) -> field(name(fieldNameFunction.apply(f, i)))); } @Override public CreateViewAsStep<Record> createViewIfNotExists(Name view, Function<? super Field<?>, ? extends Name> fieldNameFunction) { return createViewIfNotExists(table(view), (f, i) -> field(fieldNameFunction.apply(f))); } @Override public CreateViewAsStep<Record> createViewIfNotExists(Name view, BiFunction<? super Field<?>, ? super Integer, ? extends Name> fieldNameFunction) { return createViewIfNotExists(table(view), (f, i) -> field(fieldNameFunction.apply(f, i))); } @Override public CreateViewAsStep<Record> createViewIfNotExists(Table<?> view, Function<? super Field<?>, ? extends Field<?>> fieldNameFunction) { return createViewIfNotExists(view, (f, i) -> fieldNameFunction.apply(f)); } @Override public CreateViewAsStep<Record> createViewIfNotExists(Table<?> view, BiFunction<? super Field<?>, ? super Integer, ? extends Field<?>> fieldNameFunction) { return new CreateViewImpl<Record>(configuration(), view, fieldNameFunction, true); } @Override public CreateSchemaFinalStep createSchema(String schema) { return createSchema(name(schema)); } @Override public CreateSchemaFinalStep createSchema(Name schema) { return createSchema(schema(schema)); } @Override public CreateSchemaFinalStep createSchema(Schema schema) { return new CreateSchemaImpl(configuration(), schema, false); } @Override public CreateSchemaFinalStep createSchemaIfNotExists(String schema) { return createSchemaIfNotExists(name(schema)); } @Override public CreateSchemaFinalStep createSchemaIfNotExists(Name schema) { return createSchemaIfNotExists(schema(schema)); } @Override public CreateSchemaFinalStep createSchemaIfNotExists(Schema schema) { return new CreateSchemaImpl(configuration(), schema, true); } @Override public CreateTableAsStep<Record> createTable(String table) { return createTable(name(table)); } @Override public CreateTableAsStep<Record> createTable(Name table) { return createTable(table(table)); } @Override public CreateTableAsStep<Record> createTable(Table<?> table) { return new CreateTableImpl<Record>(configuration(), table, false, false); } @Override public CreateTableAsStep<Record> createTableIfNotExists(String table) { return createTableIfNotExists(name(table)); } @Override public CreateTableAsStep<Record> createTableIfNotExists(Name table) { return createTableIfNotExists(table(table)); } @Override public CreateTableAsStep<Record> createTableIfNotExists(Table<?> table) { return new CreateTableImpl<Record>(configuration(), table, false, true); } @Override public CreateTableAsStep<Record> createTemporaryTable(String table) { return createTemporaryTable(name(table)); } @Override public CreateTableAsStep<Record> createTemporaryTable(Name table) { return createTemporaryTable(table(table)); } @Override public CreateTableAsStep<Record> createTemporaryTable(Table<?> table) { return new CreateTableImpl<Record>(configuration(), table, true, false); } @Override public CreateTableAsStep<Record> createGlobalTemporaryTable(String table) { return createGlobalTemporaryTable(name(table)); } @Override public CreateTableAsStep<Record> createGlobalTemporaryTable(Name table) { return createGlobalTemporaryTable(table(table)); } @Override public CreateTableAsStep<Record> createGlobalTemporaryTable(Table<?> table) { return new CreateTableImpl<Record>(configuration(), table, true, false); } @Override public CreateIndexStep createIndex(String index) { return createIndex(name(index)); } @Override public CreateIndexStep createIndex(Name index) { return new CreateIndexImpl(configuration(), index, false, false); } @Override public CreateIndexStep createIndexIfNotExists(String index) { return createIndexIfNotExists(name(index)); } @Override public CreateIndexStep createIndexIfNotExists(Name index) { return new CreateIndexImpl(configuration(), index, false, true); } @Override public CreateIndexStep createUniqueIndex(String index) { return createUniqueIndex(name(index)); } @Override public CreateIndexStep createUniqueIndex(Name index) { return new CreateIndexImpl(configuration(), index, true, false); } @Override public CreateIndexStep createUniqueIndexIfNotExists(String index) { return createUniqueIndexIfNotExists(name(index)); } @Override public CreateIndexStep createUniqueIndexIfNotExists(Name index) { return new CreateIndexImpl(configuration(), index, true, true); } @Override public CreateSequenceFinalStep createSequence(String sequence) { return createSequence(name(sequence)); } @Override public CreateSequenceFinalStep createSequence(Name sequence) { return createSequence(sequence(sequence)); } @Override public CreateSequenceFinalStep createSequence(Sequence<?> sequence) { return new CreateSequenceImpl(configuration(), sequence, false); } @Override public CreateSequenceFinalStep createSequenceIfNotExists(String sequence) { return createSequenceIfNotExists(name(sequence)); } @Override public CreateSequenceFinalStep createSequenceIfNotExists(Name sequence) { return createSequenceIfNotExists(sequence(sequence)); } @Override public CreateSequenceFinalStep createSequenceIfNotExists(Sequence<?> sequence) { return new CreateSequenceImpl(configuration(), sequence, true); } @Override public AlterSequenceStep<BigInteger> alterSequence(String sequence) { return alterSequence(name(sequence)); } @Override public AlterSequenceStep<BigInteger> alterSequence(Name sequence) { return alterSequence(sequence(sequence)); } @Override public <T extends Number> AlterSequenceStep<T> alterSequence(Sequence<T> sequence) { return new AlterSequenceImpl<T>(configuration(), sequence); } @Override public AlterSequenceStep<BigInteger> alterSequenceIfExists(String sequence) { return alterSequenceIfExists(name(sequence)); } @Override public AlterSequenceStep<BigInteger> alterSequenceIfExists(Name sequence) { return alterSequenceIfExists(sequence(sequence)); } @Override public <T extends Number> AlterSequenceStep<T> alterSequenceIfExists(Sequence<T> sequence) { return new AlterSequenceImpl<T>(configuration(), sequence, true); } @Override public AlterTableStep alterTable(String table) { return alterTable(name(table)); } @Override public AlterTableStep alterTable(Name table) { return alterTable(table(table)); } @Override public AlterTableStep alterTable(Table<?> table) { return new AlterTableImpl(configuration(), table); } @Override public AlterTableStep alterTableIfExists(String table) { return alterTableIfExists(name(table)); } @Override public AlterTableStep alterTableIfExists(Name table) { return alterTableIfExists(table(table)); } @Override public AlterTableStep alterTableIfExists(Table<?> table) { return new AlterTableImpl(configuration(), table, true); } @Override public AlterSchemaStep alterSchema(String schema) { return alterSchema(name(schema)); } @Override public AlterSchemaStep alterSchema(Name schema) { return alterSchema(schema(schema)); } @Override public AlterSchemaStep alterSchema(Schema schema) { return new AlterSchemaImpl(configuration(), schema); } @Override public AlterSchemaStep alterSchemaIfExists(String schema) { return alterSchemaIfExists(name(schema)); } @Override public AlterSchemaStep alterSchemaIfExists(Name schema) { return alterSchemaIfExists(schema(schema)); } @Override public AlterSchemaStep alterSchemaIfExists(Schema schema) { return new AlterSchemaImpl(configuration(), schema, true); } @Override public AlterViewStep alterView(String table) { return alterView(name(table)); } @Override public AlterViewStep alterView(Name table) { return alterView(table(table)); } @Override public AlterViewStep alterView(Table<?> table) { return new AlterViewImpl(configuration(), table); } @Override public AlterViewStep alterViewIfExists(String table) { return alterViewIfExists(name(table)); } @Override public AlterViewStep alterViewIfExists(Name table) { return alterViewIfExists(table(table)); } @Override public AlterViewStep alterViewIfExists(Table<?> table) { return new AlterViewImpl(configuration(), table, true); } @Override public AlterIndexStep alterIndex(String index) { return alterIndex(name(index)); } @Override public AlterIndexStep alterIndex(Name index) { return new AlterIndexImpl(configuration(), index); } @Override public AlterIndexStep alterIndexIfExists(String index) { return alterIndexIfExists(name(index)); } @Override public AlterIndexStep alterIndexIfExists(Name index) { return new AlterIndexImpl(configuration(), index, true); } @Override public DropSchemaStep dropSchema(String schema) { return dropSchema(name(schema)); } @Override public DropSchemaStep dropSchema(Name schema) { return dropSchema(schema(schema)); } @Override public DropSchemaStep dropSchema(Schema schema) { return new DropSchemaImpl(configuration(), schema); } @Override public DropSchemaStep dropSchemaIfExists(String schema) { return dropSchemaIfExists(name(schema)); } @Override public DropSchemaStep dropSchemaIfExists(Name schema) { return dropSchemaIfExists(schema(schema)); } @Override public DropSchemaStep dropSchemaIfExists(Schema schema) { return new DropSchemaImpl(configuration(), schema, true); } @Override public DropViewFinalStep dropView(String view) { return dropView(name(view)); } @Override public DropViewFinalStep dropView(Name view) { return dropView(table(view)); } @Override public DropViewFinalStep dropView(Table<?> view) { return new DropViewImpl(configuration(), view); } @Override public DropViewFinalStep dropViewIfExists(String view) { return dropViewIfExists(name(view)); } @Override public DropViewFinalStep dropViewIfExists(Name view) { return dropViewIfExists(table(view)); } @Override public DropViewFinalStep dropViewIfExists(Table<?> view) { return new DropViewImpl(configuration(), view, true); } @Override public DropTableStep dropTable(String table) { return dropTable(name(table)); } @Override public DropTableStep dropTable(Name table) { return dropTable(table(table)); } @Override public DropTableStep dropTable(Table<?> table) { return new DropTableImpl(configuration(), table); } @Override public DropTableStep dropTableIfExists(String table) { return dropTableIfExists(name(table)); } @Override public DropTableStep dropTableIfExists(Name table) { return dropTableIfExists(table(table)); } @Override public DropTableStep dropTableIfExists(Table<?> table) { return new DropTableImpl(configuration(), table, true); } @Override public DropIndexOnStep dropIndex(String index) { return dropIndex(name(index)); } @Override public DropIndexOnStep dropIndex(Name index) { return new DropIndexImpl(configuration(), index); } @Override public DropIndexOnStep dropIndexIfExists(String index) { return dropIndexIfExists(name(index)); } @Override public DropIndexOnStep dropIndexIfExists(Name index) { return new DropIndexImpl(configuration(), index, true); } @Override public DropSequenceFinalStep dropSequence(String sequence) { return dropSequence(name(sequence)); } @Override public DropSequenceFinalStep dropSequence(Name sequence) { return dropSequence(sequence(sequence)); } @Override public DropSequenceFinalStep dropSequence(Sequence<?> sequence) { return new DropSequenceImpl(configuration(), sequence); } @Override public DropSequenceFinalStep dropSequenceIfExists(String sequence) { return dropSequenceIfExists(name(sequence)); } @Override public DropSequenceFinalStep dropSequenceIfExists(Name sequence) { return dropSequenceIfExists(sequence(sequence)); } @Override public DropSequenceFinalStep dropSequenceIfExists(Sequence<?> sequence) { return new DropSequenceImpl(configuration(), sequence, true); } @Override public final TruncateIdentityStep<Record> truncate(String table) { return truncate(name(table)); } @Override public final TruncateIdentityStep<Record> truncate(Name table) { return truncate(table(table)); } @Override public <R extends Record> TruncateIdentityStep<R> truncate(Table<R> table) { return new TruncateImpl<R>(configuration(), table); } // ------------------------------------------------------------------------- // XXX Other queries for identites and sequences // ------------------------------------------------------------------------- @Override public BigInteger lastID() { switch (configuration().dialect().family()) { case DERBY: { Field<BigInteger> field = field("identity_val_local()", BigInteger.class); return select(field).fetchOne(field); } case H2: case HSQLDB: { Field<BigInteger> field = field("identity()", BigInteger.class); return select(field).fetchOne(field); } case CUBRID: case MARIADB: case MYSQL: { Field<BigInteger> field = field("last_insert_id()", BigInteger.class); return select(field).fetchOne(field); } case SQLITE: { Field<BigInteger> field = field("last_insert_rowid()", BigInteger.class); return select(field).fetchOne(field); } case POSTGRES: { Field<BigInteger> field = field("lastval()", BigInteger.class); return select(field).fetchOne(field); } default: throw new SQLDialectNotSupportedException("identity functionality not supported by " + configuration().dialect()); } } @Override public BigInteger nextval(String sequence) { return nextval(name(sequence)); } @Override public BigInteger nextval(Name sequence) { return nextval(sequence(sequence)); } @Override public <T extends Number> T nextval(Sequence<T> sequence) { Field<T> nextval = sequence.nextval(); return select(nextval).fetchOne(nextval); } @Override public BigInteger currval(String sequence) { return currval(name(sequence)); } @Override public BigInteger currval(Name sequence) throws DataAccessException { return currval(sequence(sequence)); } @Override public <T extends Number> T currval(Sequence<T> sequence) { Field<T> currval = sequence.currval(); return select(currval).fetchOne(currval); } // ------------------------------------------------------------------------- // XXX Global Record factory // ------------------------------------------------------------------------- @Override public Record newRecord(Field<?>... fields) { return Tools.newRecord(false, RecordImpl.class, fields, configuration()).<RuntimeException>operate(null); } // [jooq-tools] START [newRecord] @Generated("This method was generated using jOOQ-tools") @Override public <T1> Record1<T1> newRecord(Field<T1> field1) { return (Record1) newRecord(new Field[] { field1 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2> Record2<T1, T2> newRecord(Field<T1> field1, Field<T2> field2) { return (Record2) newRecord(new Field[] { field1, field2 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3> Record3<T1, T2, T3> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3) { return (Record3) newRecord(new Field[] { field1, field2, field3 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4> Record4<T1, T2, T3, T4> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4) { return (Record4) newRecord(new Field[] { field1, field2, field3, field4 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5> Record5<T1, T2, T3, T4, T5> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5) { return (Record5) newRecord(new Field[] { field1, field2, field3, field4, field5 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6> Record6<T1, T2, T3, T4, T5, T6> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6) { return (Record6) newRecord(new Field[] { field1, field2, field3, field4, field5, field6 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7> Record7<T1, T2, T3, T4, T5, T6, T7> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7) { return (Record7) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8> Record8<T1, T2, T3, T4, T5, T6, T7, T8> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8) { return (Record8) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9> Record9<T1, T2, T3, T4, T5, T6, T7, T8, T9> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9) { return (Record9) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Record10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10) { return (Record10) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Record11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11) { return (Record11) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Record12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12) { return (Record12) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Record13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13) { return (Record13) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Record14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14) { return (Record14) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Record15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15) { return (Record15) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Record16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16) { return (Record16) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> Record17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17) { return (Record17) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> Record18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18) { return (Record18) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> Record19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19) { return (Record19) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> Record20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20) { return (Record20) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> Record21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21) { return (Record21) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> Record22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> newRecord(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21, Field<T22> field22) { return (Record22) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22 }); } // [jooq-tools] END [newRecord] @Override public <R extends UDTRecord<R>> R newRecord(UDT<R> type) { return Tools.newRecord(false, type, configuration()).<RuntimeException>operate(null); } @Override public <R extends Record> R newRecord(Table<R> table) { return Tools.newRecord(false, table, configuration()).<RuntimeException>operate(null); } @Override public <R extends Record> R newRecord(Table<R> table, final Object source) { return Tools.newRecord(false, table, configuration()) .operate(new RecordOperation<R, RuntimeException>() { @Override public R operate(R record) { record.from(source); return record; } }); } @Override public <R extends Record> Result<R> newResult(Table<R> table) { return new ResultImpl<R>(configuration(), table.fields()); } @Override public Result<Record> newResult(Field<?>... fields) { return new ResultImpl<Record>(configuration(), fields); } // [jooq-tools] START [newResult] @Generated("This method was generated using jOOQ-tools") @Override public <T1> Result<Record1<T1>> newResult(Field<T1> field1) { return (Result) newResult(new Field[] { field1 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2> Result<Record2<T1, T2>> newResult(Field<T1> field1, Field<T2> field2) { return (Result) newResult(new Field[] { field1, field2 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3> Result<Record3<T1, T2, T3>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3) { return (Result) newResult(new Field[] { field1, field2, field3 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4> Result<Record4<T1, T2, T3, T4>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4) { return (Result) newResult(new Field[] { field1, field2, field3, field4 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5> Result<Record5<T1, T2, T3, T4, T5>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6> Result<Record6<T1, T2, T3, T4, T5, T6>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7> Result<Record7<T1, T2, T3, T4, T5, T6, T7>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8> Result<Record8<T1, T2, T3, T4, T5, T6, T7, T8>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9> Result<Record9<T1, T2, T3, T4, T5, T6, T7, T8, T9>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Result<Record10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Result<Record11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Result<Record12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Result<Record13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Result<Record14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Result<Record15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Result<Record16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> Result<Record17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> Result<Record18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> Result<Record19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> Result<Record20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> Result<Record21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21 }); } @Generated("This method was generated using jOOQ-tools") @Override public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> Result<Record22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>> newResult(Field<T1> field1, Field<T2> field2, Field<T3> field3, Field<T4> field4, Field<T5> field5, Field<T6> field6, Field<T7> field7, Field<T8> field8, Field<T9> field9, Field<T10> field10, Field<T11> field11, Field<T12> field12, Field<T13> field13, Field<T14> field14, Field<T15> field15, Field<T16> field16, Field<T17> field17, Field<T18> field18, Field<T19> field19, Field<T20> field20, Field<T21> field21, Field<T22> field22) { return (Result) newResult(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22 }); } // [jooq-tools] END [newResult] // ------------------------------------------------------------------------- // XXX Executing queries // ------------------------------------------------------------------------- @Override public <R extends Record> Result<R> fetch(ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.fetch(); } finally { query.attach(previous); } } @Override public <R extends Record> Cursor<R> fetchLazy(ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.fetchLazy(); } finally { query.attach(previous); } } @Override public <R extends Record> CompletionStage<Result<R>> fetchAsync(ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.fetchAsync(); } finally { query.attach(previous); } } @Override public <R extends Record> CompletionStage<Result<R>> fetchAsync(Executor executor, ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.fetchAsync(executor); } finally { query.attach(previous); } } @Override public <R extends Record> Stream<R> fetchStream(ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.stream(); } finally { query.attach(previous); } } @Override public <R extends Record> Results fetchMany(ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.fetchMany(); } finally { query.attach(previous); } } @Override public <R extends Record> R fetchOne(ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.fetchOne(); } finally { query.attach(previous); } } @Override public <R extends Record> Optional<R> fetchOptional(ResultQuery<R> query) { return Optional.ofNullable(fetchOne(query)); } @Override public <T, R extends Record1<T>> T fetchValue(ResultQuery<R> query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return value1(fetchOne(query)); } finally { query.attach(previous); } } @Override public <T> T fetchValue(TableField<?, T> field) { return fetchValue(select(field).from(field.getTable())); } @Override public <T, R extends Record1<T>> Optional<T> fetchOptionalValue(ResultQuery<R> query) { return Optional.ofNullable(fetchValue(query)); } @Override public <T> Optional<T> fetchOptionalValue(TableField<?, T> field) { return Optional.ofNullable(fetchValue(field)); } @Override public <T, R extends Record1<T>> List<T> fetchValues(ResultQuery<R> query) { return (List) fetch(query).getValues(0); } @Override public <T> List<T> fetchValues(TableField<?, T> field) { return fetchValues(select(field).from(field.getTable())); } private final <T, R extends Record1<T>> T value1(R record) { if (record == null) return null; if (record.size() != 1) throw new InvalidResultException("Record contains more than one value : " + record); return record.value1(); } @Override public <R extends TableRecord<R>> Result<R> fetchByExample(R example) { return selectFrom(example.getTable()) .where(condition(example)) .fetch(); } @Override public int fetchCount(Select<?> query) { return new FetchCount(configuration(), query).fetchOne().value1(); } @Override public int fetchCount(Table<?> table) { return fetchCount(table, trueCondition()); } @Override public int fetchCount(Table<?> table, Condition condition) { return selectCount().from(table).where(condition).fetchOne(0, int.class); } @Override public boolean fetchExists(Select<?> query) throws DataAccessException { return selectOne().whereExists(query).fetchOne() != null; } @Override public boolean fetchExists(Table<?> table) throws DataAccessException { return fetchExists(table, trueCondition()); } @Override public boolean fetchExists(Table<?> table, Condition condition) throws DataAccessException { return fetchExists(selectOne().from(table).where(condition)); } @Override public int execute(Query query) { final Configuration previous = Tools.getConfiguration(query); try { query.attach(configuration()); return query.execute(); } finally { query.attach(previous); } } // ------------------------------------------------------------------------- // XXX Fast querying // ------------------------------------------------------------------------- @Override public <R extends Record> Result<R> fetch(Table<R> table) { return fetch(table, trueCondition()); } @Override public <R extends Record> Result<R> fetch(Table<R> table, Condition condition) { return selectFrom(table).where(condition).fetch(); } @Override public <R extends Record> R fetchOne(Table<R> table) { return Tools.fetchOne(fetchLazy(table)); } @Override public <R extends Record> R fetchOne(Table<R> table, Condition condition) { return Tools.fetchOne(fetchLazy(table, condition)); } @Override public <R extends Record> Optional<R> fetchOptional(Table<R> table) { return Optional.ofNullable(fetchOne(table)); } @Override public <R extends Record> Optional<R> fetchOptional(Table<R> table, Condition condition) { return Optional.ofNullable(fetchOne(table, condition)); } @Override public <R extends Record> R fetchAny(Table<R> table) { return Tools.filterOne(selectFrom(table).limit(1).fetch()); } @Override public <R extends Record> R fetchAny(Table<R> table, Condition condition) { return Tools.filterOne(selectFrom(table).where(condition).limit(1).fetch()); } @Override public <R extends Record> Cursor<R> fetchLazy(Table<R> table) { return fetchLazy(table, trueCondition()); } @Override public <R extends Record> Cursor<R> fetchLazy(Table<R> table, Condition condition) { return selectFrom(table).where(condition).fetchLazy(); } @Override public <R extends Record> CompletionStage<Result<R>> fetchAsync(Table<R> table) { return selectFrom(table).fetchAsync(); } @Override public <R extends Record> CompletionStage<Result<R>> fetchAsync(Table<R> table, Condition condition) { return selectFrom(table).where(condition).fetchAsync(); } @Override public <R extends Record> CompletionStage<Result<R>> fetchAsync(Executor executor, Table<R> table) { return selectFrom(table).fetchAsync(executor); } @Override public <R extends Record> CompletionStage<Result<R>> fetchAsync(Executor executor, Table<R> table, Condition condition) { return selectFrom(table).where(condition).fetchAsync(executor); } @Override public <R extends Record> Stream<R> fetchStream(Table<R> table) { return fetchStream(table, trueCondition()); } @Override public <R extends Record> Stream<R> fetchStream(Table<R> table, Condition condition) { return selectFrom(table).where(condition).stream(); } @Override public <R extends TableRecord<R>> int executeInsert(R record) { InsertQuery<R> insert = insertQuery(record.getTable()); insert.setRecord(record); return insert.execute(); } @Override public <R extends UpdatableRecord<R>> int executeUpdate(R record) { UpdateQuery<R> update = updateQuery(record.getTable()); Tools.addConditions(update, record, record.getTable().getPrimaryKey().getFieldsArray()); update.setRecord(record); return update.execute(); } @Override public <R extends TableRecord<R>, T> int executeUpdate(R record, Condition condition) { UpdateQuery<R> update = updateQuery(record.getTable()); update.addConditions(condition); update.setRecord(record); return update.execute(); } @Override public <R extends UpdatableRecord<R>> int executeDelete(R record) { DeleteQuery<R> delete = deleteQuery(record.getTable()); Tools.addConditions(delete, record, record.getTable().getPrimaryKey().getFieldsArray()); return delete.execute(); } @Override public <R extends TableRecord<R>, T> int executeDelete(R record, Condition condition) { DeleteQuery<R> delete = deleteQuery(record.getTable()); delete.addConditions(condition); return delete.execute(); } // ------------------------------------------------------------------------- // XXX Static initialisation of dialect-specific data types // ------------------------------------------------------------------------- static { // Load all dialect-specific data types // TODO [#650] Make this more reliable using a data type registry try { Class.forName(SQLDataType.class.getName()); } catch (Exception ignore) {} } // ------------------------------------------------------------------------- // XXX Internals // ------------------------------------------------------------------------- @Override public String toString() { return configuration().toString(); } }