[#5244] Add support for CREATE SCHEMA
This commit is contained in:
parent
40e8e246e9
commit
0d7d85a286
@ -869,6 +869,21 @@ public enum Clause {
|
||||
*/
|
||||
CREATE_TABLE_CONSTRAINTS,
|
||||
|
||||
/**
|
||||
* A complete <code>CREATE SCHEMA</code> statement.
|
||||
*/
|
||||
CREATE_SCHEMA,
|
||||
|
||||
/**
|
||||
* A view name clause within a {@link #CREATE_SCHEMA} statement.
|
||||
* <p>
|
||||
* This clause surrounds
|
||||
* <ul>
|
||||
* <li>The schema name</li>
|
||||
* </ul>
|
||||
*/
|
||||
CREATE_SCHEMA_NAME,
|
||||
|
||||
/**
|
||||
* A complete <code>CREATE VIEW</code> statement.
|
||||
*/
|
||||
|
||||
50
jOOQ/src/main/java/org/jooq/CreateSchemaFinalStep.java
Normal file
50
jOOQ/src/main/java/org/jooq/CreateSchemaFinalStep.java
Normal file
@ -0,0 +1,50 @@
|
||||
/**
|
||||
* 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;
|
||||
|
||||
/**
|
||||
* A {@link Query} that can create schemas.
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
public interface CreateSchemaFinalStep extends DDLQuery {
|
||||
|
||||
}
|
||||
@ -6929,6 +6929,30 @@ public interface DSLContext extends Scope , AutoCloseable {
|
||||
// XXX DDL Statements
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SCHEMA</code> statement.
|
||||
*
|
||||
* @see DSL#createSchema(String)
|
||||
*/
|
||||
@Support({ POSTGRES })
|
||||
CreateSchemaFinalStep createSchema(String schema);
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SCHEMA</code> statement.
|
||||
*
|
||||
* @see DSL#createSchema(Name)
|
||||
*/
|
||||
@Support({ POSTGRES })
|
||||
CreateSchemaFinalStep createSchema(Name schema);
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SCHEMA</code> statement.
|
||||
*
|
||||
* @see DSL#createSchema(Schema)
|
||||
*/
|
||||
@Support({ POSTGRES })
|
||||
CreateSchemaFinalStep createSchema(Schema schema);
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE TABLE</code> statement.
|
||||
*
|
||||
|
||||
96
jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java
Normal file
96
jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java
Normal file
@ -0,0 +1,96 @@
|
||||
/**
|
||||
* 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.Clause.CREATE_SCHEMA;
|
||||
import static org.jooq.Clause.CREATE_SCHEMA_NAME;
|
||||
|
||||
import org.jooq.Clause;
|
||||
import org.jooq.Configuration;
|
||||
import org.jooq.Context;
|
||||
import org.jooq.CreateSchemaFinalStep;
|
||||
import org.jooq.Record;
|
||||
import org.jooq.Schema;
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
final class CreateSchemaImpl<R extends Record> extends AbstractQuery implements
|
||||
|
||||
// Cascading interface implementations for CREATE SCHEMA behaviour
|
||||
CreateSchemaFinalStep {
|
||||
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = 8904572826501186329L;
|
||||
private static final Clause[] CLAUSES = { CREATE_SCHEMA };
|
||||
|
||||
private final Schema schema;
|
||||
|
||||
CreateSchemaImpl(Configuration configuration, Schema schema) {
|
||||
super(configuration);
|
||||
|
||||
this.schema = schema;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: DSL API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: QueryPart API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
ctx.start(CREATE_SCHEMA_NAME)
|
||||
.keyword("create schema")
|
||||
.sql(' ').visit(schema)
|
||||
.end(CREATE_SCHEMA_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Clause[] clauses(Context<?> ctx) {
|
||||
return CLAUSES;
|
||||
}
|
||||
}
|
||||
@ -115,6 +115,7 @@ import org.jooq.Configuration;
|
||||
import org.jooq.ConnectionProvider;
|
||||
import org.jooq.ConstraintTypeStep;
|
||||
import org.jooq.CreateIndexStep;
|
||||
import org.jooq.CreateSchemaFinalStep;
|
||||
import org.jooq.CreateSequenceFinalStep;
|
||||
import org.jooq.CreateTableAsStep;
|
||||
import org.jooq.CreateViewAsStep;
|
||||
@ -4797,6 +4798,37 @@ public class DSL {
|
||||
// XXX DDL Statements
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SCHEMA</code> statement.
|
||||
*
|
||||
* @see DSLContext#createSchema(String)
|
||||
*/
|
||||
@Support({ POSTGRES })
|
||||
public static CreateSchemaFinalStep createSchema(String schema) {
|
||||
return using(new DefaultConfiguration()).createSchema(schema);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SCHEMA</code> statement.
|
||||
*
|
||||
* @see DSLContext#createSchema(Name)
|
||||
*/
|
||||
@Support({ POSTGRES })
|
||||
public static CreateSchemaFinalStep createSchema(Name table) {
|
||||
return using(new DefaultConfiguration()).createSchema(table);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SCHEMA</code> statement.
|
||||
*
|
||||
* @see DSLContext#createSchema(Schema)
|
||||
*/
|
||||
@Support({ POSTGRES })
|
||||
public static CreateSchemaFinalStep createSchema(Schema schema) {
|
||||
return using(new DefaultConfiguration()).createSchema(schema);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE TABLE</code> statement.
|
||||
*
|
||||
|
||||
@ -45,6 +45,7 @@ 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;
|
||||
@ -94,6 +95,7 @@ import org.jooq.ConnectionCallable;
|
||||
import org.jooq.ConnectionProvider;
|
||||
import org.jooq.ConnectionRunnable;
|
||||
import org.jooq.CreateIndexStep;
|
||||
import org.jooq.CreateSchemaFinalStep;
|
||||
import org.jooq.CreateSequenceFinalStep;
|
||||
import org.jooq.CreateTableAsStep;
|
||||
import org.jooq.CreateViewAsStep;
|
||||
@ -2381,6 +2383,21 @@ public class DefaultDSLContext extends AbstractScope implements DSLContext, Seri
|
||||
return new CreateViewImpl<Record>(configuration(), view, fields, 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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CreateTableAsStep<Record> createTable(String table) {
|
||||
return createTable(name(table));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user