From 7d2432dd2d010bc74e78908b94eb3d79d8755ddb Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 24 Sep 2024 10:59:10 +0200 Subject: [PATCH] [jOOQ/jOOQ#17344] MetaImpl and code generator should ignore MySQL's dummy REMARKS column on DatabaseMetaData::getTables for views --- .../java/org/jooq/meta/mysql/MySQLDatabase.java | 4 +++- jOOQ/src/main/java/org/jooq/impl/MetaImpl.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/mysql/MySQLDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/mysql/MySQLDatabase.java index d680d47d68..41f5aad614 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/mysql/MySQLDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/mysql/MySQLDatabase.java @@ -576,7 +576,9 @@ public class MySQLDatabase extends AbstractDatabase implements ResultQueryDataba for (Record record : create().select( TABLES.TABLE_SCHEMA, TABLES.TABLE_NAME, - TABLES.TABLE_COMMENT, + + // [#17344] MySQL's INFORMATION_SCHEMA.TABLES.TABLE_COMMENT just adds a dummy 'VIEW' REMARK to all views, which we should ignore + when(TABLES.TABLE_TYPE.ne(inline("VIEW")), TABLES.TABLE_COMMENT).as(TABLES.TABLE_COMMENT), when(TABLES.TABLE_TYPE.eq(inline("VIEW")), inline(TableType.VIEW.name())) .else_(inline(TableType.TABLE.name())).as("table_type")) .from(TABLES) diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index 2ab22d4679..e3f56db37f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -563,6 +563,20 @@ final class MetaImpl extends AbstractMeta { : TableType.TABLE; + switch (dsl().family()) { + + + case MYSQL: + case MARIADB: { + + // [#17344] MySQL's INFORMATION_SCHEMA.TABLES.TABLE_COMMENT just adds a dummy 'VIEW' REMARK to all views, which we should ignore + if (tableType == TableType.VIEW) + remarks = null; + + break; + } + } + return new MetaTable( name, this,