From 8a642ecd806c867d6016744a0193f055b9ef071c Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 27 Sep 2019 11:32:31 +0200 Subject: [PATCH] [jOOQ/jOOQ#7004] Added code generation support for MariaDB sequences --- .../jooq/meta/mariadb/MariaDBDatabase.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/mariadb/MariaDBDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/mariadb/MariaDBDatabase.java index 5fea73c98d..6d0167aa5e 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/mariadb/MariaDBDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/mariadb/MariaDBDatabase.java @@ -38,10 +38,21 @@ package org.jooq.meta.mariadb; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + import org.jooq.DSLContext; +import org.jooq.Record; import org.jooq.SQLDialect; import org.jooq.impl.DSL; +import org.jooq.meta.DefaultDataTypeDefinition; +import org.jooq.meta.DefaultSequenceDefinition; +import org.jooq.meta.SchemaDefinition; +import org.jooq.meta.SequenceDefinition; import org.jooq.meta.mysql.MySQLDatabase; +import org.jooq.meta.mysql.information_schema.tables.Tables; +import org.jooq.util.mariadb.MariaDBDataType; /** * @author Lukas Eder @@ -52,4 +63,30 @@ public class MariaDBDatabase extends MySQLDatabase { protected DSLContext create0() { return DSL.using(getConnection(), SQLDialect.MARIADB); } + + @Override + protected List getSequences0() throws SQLException { + List result = new ArrayList<>(); + + for (Record record : create() + .select(Tables.TABLE_SCHEMA, Tables.TABLE_NAME) + .from(Tables.TABLES) + .where(Tables.TABLE_TYPE.eq("SEQUENCE"))) { + + SchemaDefinition schema = getSchema(record.get(Tables.TABLE_SCHEMA)); + if (schema != null) { + String name = record.get(Tables.TABLE_NAME); + + DefaultDataTypeDefinition type = new DefaultDataTypeDefinition( + this, + schema, + MariaDBDataType.BIGINT.getTypeName() + ); + + result.add(new DefaultSequenceDefinition(schema, name, type)); + } + } + + return result; + } }