From 4e0fedd5a40870faa9114a0e2faab67694fd9d20 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 31 Oct 2019 16:25:42 +0100 Subject: [PATCH] [jOOQ/jOOQ#2370] [jOOQ/jOOQ#8528] Interpret DROP TEMP TABLE --- jOOQ/src/main/java/org/jooq/impl/DDLInterpreter.java | 7 +++++++ jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) 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