diff --git a/jOOQ/src/main/java/org/jooq/impl/DDLInterpreter.java b/jOOQ/src/main/java/org/jooq/impl/DDLInterpreter.java index cd4b74ca70..7d2e87b0ea 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DDLInterpreter.java +++ b/jOOQ/src/main/java/org/jooq/impl/DDLInterpreter.java @@ -531,6 +531,7 @@ final class DDLInterpreter { private final void accept0(DropTableImpl query) { Table table = query.$table(); + MutableSchema schema = getSchema(table.getSchema()); // TODO schema == null @@ -543,6 +544,8 @@ final class DDLInterpreter { } else if (!table(existing.type)) throw objectNotTable(table); + else if (query.$temporary() && existing.type != TableType.TEMPORARY) + throw objectNotTemporaryTable(table); drop(schema.tables, existing, query.$cascade()); } @@ -756,6 +759,10 @@ final class DDLInterpreter { return new DataDefinitionException("Object is not a table: " + table.getQualifiedName()); } + private static final DataDefinitionException objectNotTemporaryTable(Table table) { + return new DataDefinitionException("Object is not a temporary table: " + table.getQualifiedName()); + } + private static final DataDefinitionException objectNotView(Table table) { return new DataDefinitionException("Object is not a view: " + table.getQualifiedName()); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java index e42a59accc..b36e14da52 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java @@ -106,9 +106,10 @@ final class DropTableImpl extends AbstractRowCountQuery implements this.temporary = temporary; } - final Table $table() { return table; } - final boolean $ifExists() { return ifExists; } - final Cascade $cascade() { return cascade; } + final Table $table() { return table; } + final boolean $temporary() { return temporary; } + final boolean $ifExists() { return ifExists; } + final Cascade $cascade() { return cascade; } // ------------------------------------------------------------------------ // XXX: DSL API