From 88be6eb510f0e65f8e47f52f0920cd5d49d01159 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Thu, 24 Mar 2016 14:32:03 +0100 Subject: [PATCH] [#3852] Fix for Oracle. Switch NULL / DEFAULT order in DDL --- .../src/main/java/org/jooq/impl/CreateTableImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java index 4e0e617414..3b48c93698 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java @@ -253,6 +253,9 @@ final class CreateTableImpl extends AbstractQuery implements .sql(' '); Tools.toSQLDDLTypeDeclaration(ctx, type); + if (asList().contains(ctx.family())) + acceptDefault(ctx, type); + if (type.nullable()) { // [#4321] Not all dialects support explicit NULL type declarations @@ -263,8 +266,8 @@ final class CreateTableImpl extends AbstractQuery implements ctx.sql(' ').keyword("not null"); } - if (type.defaulted()) - ctx.sql(' ').keyword("default").sql(' ').visit(type.defaultValue()); + if (!asList().contains(ctx.family())) + acceptDefault(ctx, type); if (i < columnFields.size() - 1) ctx.sql(',').formatSeparator(); @@ -290,6 +293,11 @@ final class CreateTableImpl extends AbstractQuery implements } } + private void acceptDefault(Context ctx, DataType type) { + if (type.defaulted()) + ctx.sql(' ').keyword("default").sql(' ').visit(type.defaultValue()); + } + private final void acceptCreateTableAsSelect(Context ctx) { ctx.start(CREATE_TABLE); toSQLCreateTableName(ctx);