Skip to content

Commit

Permalink
[#4936] [#4967] Fix for Oracle
Browse files Browse the repository at this point in the history
  • Loading branch information
lukaseder committed Jan 21, 2016
1 parent 9601267 commit 0d5034c
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 28 deletions.
7 changes: 3 additions & 4 deletions jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java
Expand Up @@ -58,7 +58,6 @@
// ... // ...
import static org.jooq.impl.DSL.field; import static org.jooq.impl.DSL.field;
import static org.jooq.impl.DSL.name; import static org.jooq.impl.DSL.name;
import static org.jooq.impl.DropStatementType.TABLE;
import static org.jooq.impl.Utils.DataKey.DATA_SELECT_INTO_TABLE; import static org.jooq.impl.Utils.DataKey.DATA_SELECT_INTO_TABLE;


import java.util.ArrayList; import java.util.ArrayList;
Expand Down Expand Up @@ -180,9 +179,9 @@ private final boolean supportsIfNotExists(Context<?> ctx) {
@Override @Override
public final void accept(Context<?> ctx) { public final void accept(Context<?> ctx) {
if (ifNotExists && !supportsIfNotExists(ctx)) { if (ifNotExists && !supportsIfNotExists(ctx)) {
Utils.executeImmediateBegin(ctx, TABLE); Utils.executeImmediateBegin(ctx, DDLStatementType.CREATE_TABLE);
accept0(ctx); accept0(ctx);
Utils.executeImmediateEnd(ctx, TABLE); Utils.executeImmediateEnd(ctx, DDLStatementType.CREATE_TABLE);
} }
else { else {
accept0(ctx); accept0(ctx);
Expand Down Expand Up @@ -303,7 +302,7 @@ private final void toSQLCreateTableName(Context<?> ctx) {
ctx.keyword("table") ctx.keyword("table")
.sql(' '); .sql(' ');


if (ifNotExists) if (ifNotExists && supportsIfNotExists(ctx))
ctx.keyword("if not exists") ctx.keyword("if not exists")
.sql(' '); .sql(' ');


Expand Down
7 changes: 3 additions & 4 deletions jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java
Expand Up @@ -56,7 +56,6 @@
import static org.jooq.conf.ParamType.INLINED; import static org.jooq.conf.ParamType.INLINED;
import static org.jooq.impl.DSL.selectFrom; import static org.jooq.impl.DSL.selectFrom;
import static org.jooq.impl.DSL.table; import static org.jooq.impl.DSL.table;
import static org.jooq.impl.DropStatementType.VIEW;


import org.jooq.Clause; import org.jooq.Clause;
import org.jooq.Configuration; import org.jooq.Configuration;
Expand Down Expand Up @@ -119,9 +118,9 @@ private final boolean supportsIfNotExists(Context<?> ctx) {
@Override @Override
public final void accept(Context<?> ctx) { public final void accept(Context<?> ctx) {
if (ifNotExists && !supportsIfNotExists(ctx)) { if (ifNotExists && !supportsIfNotExists(ctx)) {
Utils.executeImmediateBegin(ctx, VIEW); Utils.executeImmediateBegin(ctx, DDLStatementType.CREATE_VIEW);
accept0(ctx); accept0(ctx);
Utils.executeImmediateEnd(ctx, VIEW); Utils.executeImmediateEnd(ctx, DDLStatementType.CREATE_VIEW);
} }
else { else {
accept0(ctx); accept0(ctx);
Expand All @@ -141,7 +140,7 @@ private final void accept0(Context<?> ctx) {
.keyword("create view") .keyword("create view")
.sql(' '); .sql(' ');


if (ifNotExists) if (ifNotExists && supportsIfNotExists(ctx))
ctx.keyword("if not exists") ctx.keyword("if not exists")
.sql(' '); .sql(' ');


Expand Down
Expand Up @@ -43,6 +43,14 @@
/** /**
* @author Lukas Eder * @author Lukas Eder
*/ */
enum DropStatementType { enum DDLStatementType {
INDEX, SEQUENCE, TABLE, VIEW CREATE_INDEX,
CREATE_SEQUENCE,
CREATE_TABLE,
CREATE_VIEW,

DROP_INDEX,
DROP_SEQUENCE,
DROP_TABLE,
DROP_VIEW
} }
5 changes: 2 additions & 3 deletions jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java
Expand Up @@ -52,7 +52,6 @@
// ... // ...
import static org.jooq.impl.DSL.name; import static org.jooq.impl.DSL.name;
import static org.jooq.impl.DSL.table; import static org.jooq.impl.DSL.table;
import static org.jooq.impl.DropStatementType.INDEX;


import org.jooq.Clause; import org.jooq.Clause;
import org.jooq.Configuration; import org.jooq.Configuration;
Expand Down Expand Up @@ -122,9 +121,9 @@ private final boolean supportsIfExists(Context<?> ctx) {
@Override @Override
public final void accept(Context<?> ctx) { public final void accept(Context<?> ctx) {
if (ifExists && !supportsIfExists(ctx)) { if (ifExists && !supportsIfExists(ctx)) {
Utils.executeImmediateBegin(ctx, INDEX); Utils.executeImmediateBegin(ctx, DDLStatementType.DROP_INDEX);
accept0(ctx); accept0(ctx);
Utils.executeImmediateEnd(ctx, INDEX); Utils.executeImmediateEnd(ctx, DDLStatementType.DROP_INDEX);
} }
else { else {
accept0(ctx); accept0(ctx);
Expand Down
5 changes: 2 additions & 3 deletions jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java
Expand Up @@ -52,7 +52,6 @@
// ... // ...
// ... // ...
// ... // ...
import static org.jooq.impl.DropStatementType.SEQUENCE;


import org.jooq.Clause; import org.jooq.Clause;
import org.jooq.Configuration; import org.jooq.Configuration;
Expand Down Expand Up @@ -99,9 +98,9 @@ private final boolean supportsIfExists(Context<?> ctx) {
@Override @Override
public final void accept(Context<?> ctx) { public final void accept(Context<?> ctx) {
if (ifExists && !supportsIfExists(ctx)) { if (ifExists && !supportsIfExists(ctx)) {
Utils.executeImmediateBegin(ctx, SEQUENCE); Utils.executeImmediateBegin(ctx, DDLStatementType.DROP_SEQUENCE);
accept0(ctx); accept0(ctx);
Utils.executeImmediateEnd(ctx, SEQUENCE); Utils.executeImmediateEnd(ctx, DDLStatementType.DROP_SEQUENCE);
} }
else { else {
accept0(ctx); accept0(ctx);
Expand Down
5 changes: 2 additions & 3 deletions jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java
Expand Up @@ -50,7 +50,6 @@
import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.FIREBIRD;
// ... // ...
// ... // ...
import static org.jooq.impl.DropStatementType.TABLE;


import org.jooq.Clause; import org.jooq.Clause;
import org.jooq.Configuration; import org.jooq.Configuration;
Expand Down Expand Up @@ -115,9 +114,9 @@ private final boolean supportsIfExists(Context<?> ctx) {
@Override @Override
public final void accept(Context<?> ctx) { public final void accept(Context<?> ctx) {
if (ifExists && !supportsIfExists(ctx)) { if (ifExists && !supportsIfExists(ctx)) {
Utils.executeImmediateBegin(ctx, TABLE); Utils.executeImmediateBegin(ctx, DDLStatementType.DROP_TABLE);
accept0(ctx); accept0(ctx);
Utils.executeImmediateEnd(ctx, TABLE); Utils.executeImmediateEnd(ctx, DDLStatementType.DROP_TABLE);
} }
else { else {
accept0(ctx); accept0(ctx);
Expand Down
5 changes: 2 additions & 3 deletions jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java
Expand Up @@ -51,7 +51,6 @@
// ... // ...
// ... // ...
// ... // ...
import static org.jooq.impl.DropStatementType.VIEW;


import org.jooq.Clause; import org.jooq.Clause;
import org.jooq.Configuration; import org.jooq.Configuration;
Expand Down Expand Up @@ -99,9 +98,9 @@ private final boolean supportsIfExists(Context<?> ctx) {
@Override @Override
public final void accept(Context<?> ctx) { public final void accept(Context<?> ctx) {
if (ifExists && !supportsIfExists(ctx)) { if (ifExists && !supportsIfExists(ctx)) {
Utils.executeImmediateBegin(ctx, VIEW); Utils.executeImmediateBegin(ctx, DDLStatementType.DROP_VIEW);
accept0(ctx); accept0(ctx);
Utils.executeImmediateEnd(ctx, VIEW); Utils.executeImmediateEnd(ctx, DDLStatementType.DROP_VIEW);
} }
else { else {
accept0(ctx); accept0(ctx);
Expand Down
20 changes: 14 additions & 6 deletions jOOQ/src/main/java/org/jooq/impl/Utils.java
Expand Up @@ -54,17 +54,21 @@
import static org.jooq.conf.SettingsTools.getBackslashEscaping; import static org.jooq.conf.SettingsTools.getBackslashEscaping;
import static org.jooq.conf.SettingsTools.reflectionCaching; import static org.jooq.conf.SettingsTools.reflectionCaching;
import static org.jooq.conf.SettingsTools.updatablePrimaryKeys; import static org.jooq.conf.SettingsTools.updatablePrimaryKeys;
import static org.jooq.impl.DDLStatementType.CREATE_INDEX;
import static org.jooq.impl.DDLStatementType.CREATE_SEQUENCE;
import static org.jooq.impl.DDLStatementType.CREATE_TABLE;
import static org.jooq.impl.DDLStatementType.CREATE_VIEW;
import static org.jooq.impl.DDLStatementType.DROP_INDEX;
import static org.jooq.impl.DDLStatementType.DROP_SEQUENCE;
import static org.jooq.impl.DDLStatementType.DROP_TABLE;
import static org.jooq.impl.DDLStatementType.DROP_VIEW;
import static org.jooq.impl.DSL.concat; import static org.jooq.impl.DSL.concat;
import static org.jooq.impl.DSL.escape; import static org.jooq.impl.DSL.escape;
import static org.jooq.impl.DSL.getDataType; import static org.jooq.impl.DSL.getDataType;
import static org.jooq.impl.DSL.name; import static org.jooq.impl.DSL.name;
import static org.jooq.impl.DSL.nullSafe; import static org.jooq.impl.DSL.nullSafe;
import static org.jooq.impl.DSL.val; import static org.jooq.impl.DSL.val;
import static org.jooq.impl.DefaultExecuteContext.localConnection; import static org.jooq.impl.DefaultExecuteContext.localConnection;
import static org.jooq.impl.DropStatementType.INDEX;
import static org.jooq.impl.DropStatementType.SEQUENCE;
import static org.jooq.impl.DropStatementType.TABLE;
import static org.jooq.impl.DropStatementType.VIEW;
import static org.jooq.impl.Identifiers.QUOTES; import static org.jooq.impl.Identifiers.QUOTES;
import static org.jooq.impl.Identifiers.QUOTE_END_DELIMITER; import static org.jooq.impl.Identifiers.QUOTE_END_DELIMITER;
import static org.jooq.impl.Identifiers.QUOTE_END_DELIMITER_ESCAPED; import static org.jooq.impl.Identifiers.QUOTE_END_DELIMITER_ESCAPED;
Expand Down Expand Up @@ -2779,7 +2783,7 @@ static final List<String[]> parseHTML(String string) {
* <code>IF EXISTS</code> is not supported. * <code>IF EXISTS</code> is not supported.
*/ */
@SuppressWarnings("unused") @SuppressWarnings("unused")
static final void executeImmediateBegin(Context<?> ctx, DropStatementType type) { static final void executeImmediateBegin(Context<?> ctx, DDLStatementType type) {
switch (ctx.family()) { switch (ctx.family()) {




Expand Down Expand Up @@ -2840,7 +2844,7 @@ static final void executeImmediateBegin(Context<?> ctx, DropStatementType type)
* <code>BEGIN EXECUTE IMMEDIATE '...' EXCEPTION WHEN ... END;</code>, if * <code>BEGIN EXECUTE IMMEDIATE '...' EXCEPTION WHEN ... END;</code>, if
* <code>IF EXISTS</code> is not supported. * <code>IF EXISTS</code> is not supported.
*/ */
static final void executeImmediateEnd(Context<?> ctx, DropStatementType type) { static final void executeImmediateEnd(Context<?> ctx, DDLStatementType type) {
switch (ctx.family()) { switch (ctx.family()) {




Expand Down Expand Up @@ -2885,6 +2889,10 @@ static final void executeImmediateEnd(Context<?> ctx, DropStatementType type) {
















Expand Down

0 comments on commit 0d5034c

Please sign in to comment.