diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.11.txt b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.11.txt
index 6b165b96f7..933d817117 100644
--- a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.11.txt
+++ b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.11.txt
@@ -124,7 +124,7 @@ createViewStatement = 'CREATE VIEW' [ 'IF NOT EXISTS' ] tableName
[ '(' fieldNames ')' ] 'AS' select
;
-dropTableStatement = 'DROP TABLE' [ 'IF EXISTS' ] tableName [ 'CASCADE' | 'RESTRICT' ]
+dropTableStatement = 'DROP' [ 'TEMPORARY' ] 'TABLE' [ 'IF EXISTS' ] tableName [ 'CASCADE' | 'RESTRICT' ]
;
dropIndexStatement = 'DROP INDEX' [ 'IF EXISTS' ] indexName [ 'ON' tableName ]
diff --git a/jOOQ/src/main/java/org/jooq/DSLContext.java b/jOOQ/src/main/java/org/jooq/DSLContext.java
index 2afb8e55c8..afc7017545 100644
--- a/jOOQ/src/main/java/org/jooq/DSLContext.java
+++ b/jOOQ/src/main/java/org/jooq/DSLContext.java
@@ -9321,6 +9321,30 @@ public interface DSLContext extends Scope , AutoCloseable {
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
DropTableStep dropTableIfExists(Table> table);
+ /**
+ * Create a new DSL DROP TEMPORARY TABLE statement.
+ *
+ * @see DSL#dropTemporaryTable(String)
+ */
+ @Support
+ DropTableStep dropTemporaryTable(String table);
+
+ /**
+ * Create a new DSL DROP TEMPORARY TABLE statement.
+ *
+ * @see DSL#dropTemporaryTable(Name)
+ */
+ @Support
+ DropTableStep dropTemporaryTable(Name table);
+
+ /**
+ * Create a new DSL DROP TEMPORARY TABLE statement.
+ *
+ * @see DSL#dropTemporaryTable(Table)
+ */
+ @Support
+ DropTableStep dropTemporaryTable(Table> table);
+
/**
* Create a new DSL DROP INDEX statement.
*
diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java
index 0f6a5f4eae..fcbf0f5486 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DSL.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java
@@ -7479,6 +7479,36 @@ public class DSL {
return using(new DefaultConfiguration()).dropTable(table);
}
+ /**
+ * Create a new DSL DROP TEMPORARY TABLE statement.
+ *
+ * @see DSLContext#dropTemporaryTable(String)
+ */
+ @Support
+ public static DropTableStep dropTemporaryTable(String table) {
+ return using(new DefaultConfiguration()).dropTemporaryTable(table);
+ }
+
+ /**
+ * Create a new DSL DROP TEMPORARY TABLE statement.
+ *
+ * @see DSLContext#dropTemporaryTable(Name)
+ */
+ @Support
+ public static DropTableStep dropTemporaryTable(Name table) {
+ return using(new DefaultConfiguration()).dropTemporaryTable(table);
+ }
+
+ /**
+ * Create a new DSL DROP TEMPORARY TABLE statement.
+ *
+ * @see DSLContext#dropTemporaryTable(Table)
+ */
+ @Support
+ public static DropTableStep dropTemporaryTable(Table> table) {
+ return using(new DefaultConfiguration()).dropTemporaryTable(table);
+ }
+
/**
* Create a new DSL DROP TABLE IF EXISTS statement.
*
diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java
index 82ee56d48a..adf1e97ca0 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java
@@ -3352,6 +3352,21 @@ public class DefaultDSLContext extends AbstractScope implements DSLContext, Seri
return new DropTableImpl(configuration(), table);
}
+ @Override
+ public DropTableStep dropTemporaryTable(String table) {
+ return dropTable(name(table));
+ }
+
+ @Override
+ public DropTableStep dropTemporaryTable(Name table) {
+ return dropTable(table(table));
+ }
+
+ @Override
+ public DropTableStep dropTemporaryTable(Table> table) {
+ return new DropTableImpl(configuration(), table);
+ }
+
@Override
public DropTableStep dropTableIfExists(String table) {
return dropTableIfExists(name(table));
diff --git a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java
index 664c31dcce..508e421246 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java
@@ -76,18 +76,24 @@ final class DropTableImpl extends AbstractQuery implements
private static final EnumSet