Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.jooq.impl.DefaultDSLContext Maven / Gradle / Ivy
/*
* Copyright (c) 2009-2016, Data Geekery GmbH (http://www.datageekery.com)
* All rights reserved.
*
* 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.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}.
*
* 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 Table map(Table table) {
return Tools.getMappedTable(configuration(), table);
}
// -------------------------------------------------------------------------
// XXX Convenience methods accessing the underlying Connection
// -------------------------------------------------------------------------
@Override
@Deprecated
public Parser parser() {
return new ParserImpl(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 schemas = new ArrayList();
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.>asList(table));
}
@Override
public InformationSchema informationSchema(Table>... tables) {
return InformationSchemaExport.exportTables(configuration(), Arrays.>asList(tables));
}
// -------------------------------------------------------------------------
// XXX APIs for creating scope for transactions, mocking, batching, etc.
// -------------------------------------------------------------------------
@Override
public T transactionResult(final ContextTransactionalCallable 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() {
@Override
public T run(Configuration c) throws Exception {
return transactional.run();
}
}, ((ThreadLocalTransactionProvider) tp).configuration(configuration()), true);
}
@Override
public T transactionResult(TransactionalCallable transactional) {
return transactionResult0(transactional, configuration(), false);
}
private static T transactionResult0(TransactionalCallable 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() {
@Override
public Void run() throws Exception {
transactional.run();
return null;
}
});
}
@Override
public void transaction(final TransactionalRunnable transactional) {
transactionResult(new TransactionalCallable() {
@Override
public Void run(Configuration c) throws Exception {
transactional.run(c);
return null;
}
});
}
@Override
public CompletionStage transactionAsync(TransactionalRunnable transactional) {
return transactionAsync(Tools.configuration(configuration()).executorProvider().provide(), transactional);
}
@Override
public CompletionStage 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 CompletionStage transactionResultAsync(TransactionalCallable transactional) {
return transactionResultAsync(Tools.configuration(configuration()).executorProvider().provide(), transactional);
}
@Override
public CompletionStage transactionResultAsync(Executor executor, TransactionalCallable 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 connectionResult(ConnectionCallable 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() {
@Override
public Void run(Connection connection) throws Exception {
runnable.run(connection);
return null;
}
});
}
@Override
public T mockResult(MockDataProvider provider, MockCallable 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() {
@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 extractBindValues(QueryPart part) {
List result = new ArrayList();
ParamCollector collector = new ParamCollector(configuration(), false);
collector.visit(part);
for (Entry> entry : collector.resultList)
result.add(entry.getValue().getValue());
return Collections.unmodifiableList(result);
}
@Override
public Map> extractParams(QueryPart part) {
return extractParams0(part, true);
}
final Map> 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 LoaderOptionsStep loadInto(Table table) {
return new LoaderImpl(configuration(), table);
}
// -------------------------------------------------------------------------
// 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 fetch(SQL sql) {
return resultQuery(sql).fetch();
}
@Override
public Result fetch(String sql) {
return resultQuery(sql).fetch();
}
@Override
public Result fetch(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetch();
}
@Override
public Result fetch(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetch();
}
@Override
public Cursor fetchLazy(SQL sql) {
return resultQuery(sql).fetchLazy();
}
@Override
public Cursor fetchLazy(String sql) {
return resultQuery(sql).fetchLazy();
}
@Override
public Cursor fetchLazy(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchLazy();
}
@Override
public Cursor fetchLazy(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchLazy();
}
@Override
public CompletionStage> fetchAsync(SQL sql) {
return resultQuery(sql).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(String sql) {
return resultQuery(sql).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(Executor executor, SQL sql) {
return resultQuery(sql).fetchAsync(executor);
}
@Override
public CompletionStage> fetchAsync(Executor executor, String sql) {
return resultQuery(sql).fetchAsync(executor);
}
@Override
public CompletionStage> fetchAsync(Executor executor, String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchAsync(executor);
}
@Override
public CompletionStage> fetchAsync(Executor executor, String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchAsync(executor);
}
@Override
public Stream fetchStream(SQL sql) {
return resultQuery(sql).stream();
}
@Override
public Stream fetchStream(String sql) {
return resultQuery(sql).stream();
}
@Override
public Stream fetchStream(String sql, Object... bindings) {
return resultQuery(sql, bindings).stream();
}
@Override
public Stream 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 fetchOptional(SQL sql) {
return Optional.ofNullable(fetchOne(sql));
}
@Override
public Optional fetchOptional(String sql) {
return Optional.ofNullable(fetchOne(sql));
}
@Override
public Optional fetchOptional(String sql, Object... bindings) {
return Optional.ofNullable(fetchOne(sql, bindings));
}
@Override
public Optional 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 resultQuery(SQL sql) {
return new SQLResultQuery(configuration(), sql);
}
@Override
public ResultQuery resultQuery(String sql) {
return resultQuery(sql, new Object[0]);
}
@Override
public ResultQuery resultQuery(String sql, Object... bindings) {
return resultQuery(sql(sql, bindings));
}
@Override
public ResultQuery resultQuery(String sql, QueryPart... parts) {
return resultQuery(sql, (Object[]) parts);
}
// -------------------------------------------------------------------------
// XXX JDBC convenience methods
// -------------------------------------------------------------------------
@Override
public Result fetch(ResultSet rs) {
return fetchLazy(rs).fetch();
}
@Override
public Result fetch(ResultSet rs, Field>... fields) {
return fetchLazy(rs, fields).fetch();
}
@Override
public Result fetch(ResultSet rs, DataType>... types) {
return fetchLazy(rs, types).fetch();
}
@Override
public Result 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 fetchOptional(ResultSet rs) {
return Optional.ofNullable(fetchOne(rs));
}
@Override
public Optional fetchOptional(ResultSet rs, Field>... fields) {
return Optional.ofNullable(fetchOne(rs, fields));
}
@Override
public Optional fetchOptional(ResultSet rs, DataType>... types) {
return Optional.ofNullable(fetchOne(rs, types));
}
@Override
public Optional 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 fetchValue(ResultSet rs, Field field) {
return (T) value1((Record1) fetchOne(rs, field));
}
@Override
public T fetchValue(ResultSet rs, DataType type) {
return (T) value1((Record1) fetchOne(rs, type));
}
@Override
public T fetchValue(ResultSet rs, Class type) {
return (T) value1((Record1) fetchOne(rs, type));
}
@Override
public Optional> fetchOptionalValue(ResultSet rs) {
return Optional.ofNullable(fetchValue(rs));
}
@Override
public Optional fetchOptionalValue(ResultSet rs, Field field) {
return Optional.ofNullable(fetchValue(rs, field));
}
@Override
public Optional fetchOptionalValue(ResultSet rs, DataType type) {
return Optional.ofNullable(fetchValue(rs, type));
}
@Override
public Optional fetchOptionalValue(ResultSet rs, Class type) {
return Optional.ofNullable(fetchValue(rs, type));
}
@Override
public List> fetchValues(ResultSet rs) {
return fetch(rs).getValues(0);
}
@Override
public List fetchValues(ResultSet rs, Field field) {
return fetch(rs).getValues(field);
}
@Override
public List fetchValues(ResultSet rs, DataType type) {
return fetch(rs).getValues(0, type.getType());
}
@Override
public List fetchValues(ResultSet rs, Class type) {
return fetch(rs).getValues(0, type);
}
@Override
public Cursor 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 fetchLazy(ResultSet rs, Field>... fields) {
ExecuteContext ctx = new DefaultExecuteContext(configuration());
ExecuteListener listener = new ExecuteListeners(ctx);
ctx.resultSet(rs);
return new CursorImpl(ctx, listener, fields, null, false, true);
}
@Override
public Cursor 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 fetchLazy(ResultSet rs, Class>... types) {
return fetchLazy(rs, Tools.dataTypes(types));
}
@Override
public CompletionStage> fetchAsync(ResultSet rs) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs);
}
@Override
public CompletionStage> fetchAsync(ResultSet rs, Field>... fields) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, fields);
}
@Override
public CompletionStage> fetchAsync(ResultSet rs, DataType>... types) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, types);
}
@Override
public CompletionStage> fetchAsync(ResultSet rs, Class>... types) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, types);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs)), executor),
() -> executor
);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs, Field>... fields) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs, fields)), executor),
() -> executor
);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs, DataType>... types) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs, types)), executor),
() -> executor
);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs, Class>... types) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs, types)), executor),
() -> executor
);
}
@Override
public Stream fetchStream(ResultSet rs) {
return fetchLazy(rs).stream();
}
@Override
public Stream fetchStream(ResultSet rs, Field>... fields) {
return fetchLazy(rs, fields).stream();
}
@Override
public Stream fetchStream(ResultSet rs, DataType>... types) {
return fetchLazy(rs, types).stream();
}
@Override
public Stream fetchStream(ResultSet rs, Class>... types) {
return fetchLazy(rs, types).stream();
}
@Override
public Result fetchFromTXT(String string) {
return fetchFromTXT(string, "{null}");
}
@Override
public Result fetchFromTXT(String string, String nullLiteral) {
return fetchFromStringData(Tools.parseTXT(string, nullLiteral));
}
@Override
public Result fetchFromHTML(String string) {
return fetchFromStringData(Tools.parseHTML(string));
}
@Override
public Result fetchFromCSV(String string) {
return fetchFromCSV(string, true, ',');
}
@Override
public Result fetchFromCSV(String string, char delimiter) {
return fetchFromCSV(string, true, delimiter);
}
@Override
public Result fetchFromCSV(String string, boolean header) {
return fetchFromCSV(string, header, ',');
}
@Override
public Result fetchFromCSV(String string, boolean header, char delimiter) {
CSVReader reader = new CSVReader(new StringReader(string), delimiter);
List 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 fetchFromJSON(String string) {
List list = new LinkedList();
JSONReader reader = null;
try {
reader = new JSONReader(new StringReader(string));
List 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 fetchFromStringData(String[]... strings) {
return fetchFromStringData(list(strings), true);
}
@Override
public Result fetchFromStringData(List strings) {
return fetchFromStringData(strings, true);
}
@Override
public Result fetchFromStringData(List strings, boolean header) {
if (strings.size() == 0) {
return new ResultImpl(configuration());
}
else {
List> fields = new ArrayList>();
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 result = new ResultImpl(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 SelectWhereStep selectFrom(Table table) {
SelectWhereStep result = DSL.selectFrom(table);
result.attach(configuration());
return result;
}
@Override
public SelectSelectStep select(Collection extends SelectField>> fields) {
SelectSelectStep result = DSL.select(fields);
result.attach(configuration());
return result;
}
@Override
public SelectSelectStep select(SelectField>... fields) {
SelectSelectStep result = DSL.select(fields);
result.attach(configuration());
return result;
}
// [jooq-tools] START [select]
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1) {
return (SelectSelectStep) select(new SelectField[] { field1 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2) {
return (SelectSelectStep) select(new SelectField[] { field1, field2 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8 });
}
@Generated("This method was generated using jOOQ-tools")
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField 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 SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField 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 SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField 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 SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12) {
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 SelectSelectStep