From b84a45a2346eb8d0198ee113a113bf6236978e8d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sat, 18 Jan 2014 13:11:30 +0100 Subject: [PATCH] [#2958] Error when the code-generation database user has insufficient grants to read the "mysql" meta schema --- .../main/java/org/jooq/util/mysql/MySQLDatabase.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/jOOQ-meta/src/main/java/org/jooq/util/mysql/MySQLDatabase.java b/jOOQ-meta/src/main/java/org/jooq/util/mysql/MySQLDatabase.java index bf5d3923f2..df70c07c8d 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/mysql/MySQLDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/mysql/MySQLDatabase.java @@ -65,7 +65,9 @@ import org.jooq.Record5; import org.jooq.Record6; import org.jooq.Result; import org.jooq.SQLDialect; +import org.jooq.exception.DataAccessException; import org.jooq.impl.DSL; +import org.jooq.tools.JooqLogger; import org.jooq.tools.csv.CSVReader; import org.jooq.util.AbstractDatabase; import org.jooq.util.ArrayDefinition; @@ -93,6 +95,8 @@ import org.jooq.util.mysql.mysql.tables.Proc; */ public class MySQLDatabase extends AbstractDatabase { + private static final JooqLogger log = JooqLogger.getLogger(MySQLDatabase.class); + @Override protected void loadPrimaryKeys(DefaultRelations relations) throws SQLException { for (Record record : fetchKeys("PRIMARY KEY")) { @@ -323,6 +327,14 @@ public class MySQLDatabase extends AbstractDatabase { protected List getRoutines0() throws SQLException { List result = new ArrayList(); + try { + create().fetchCount(PROC); + } + catch (DataAccessException e) { + log.warn("Table unavailable", "The `mysql`.`proc` table is unavailable. Stored procedures cannot be loaded. Check if you have sufficient grants"); + return result; + } + Result> records = create().select( Proc.DB,