[jOOQ/jOOQ#9574] Derby code generation support

This commit is contained in:
Lukas Eder 2024-09-26 16:00:33 +02:00
parent 14de50bb9b
commit 992b2b656a
16 changed files with 275 additions and 45 deletions

View File

@ -4355,6 +4355,16 @@ public abstract class AbstractDatabase implements Database {

View File

@ -48,13 +48,16 @@ import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.noCondition;
import static org.jooq.impl.DSL.not;
import static org.jooq.impl.DSL.nullif;
import static org.jooq.impl.DSL.position;
import static org.jooq.impl.DSL.replace;
import static org.jooq.impl.DSL.substring;
import static org.jooq.impl.DSL.when;
import static org.jooq.impl.SQLDataType.BIGINT;
import static org.jooq.impl.SQLDataType.INTEGER;
import static org.jooq.impl.SQLDataType.NUMERIC;
import static org.jooq.impl.SQLDataType.VARCHAR;
import static org.jooq.meta.derby.sys.Tables.SYSCHECKS;
import static org.jooq.meta.derby.sys.Tables.SYSCOLUMNS;
import static org.jooq.meta.derby.sys.Tables.*;
import static org.jooq.meta.derby.sys.Tables.SYSCONGLOMERATES;
import static org.jooq.meta.derby.sys.Tables.SYSCONSTRAINTS;
import static org.jooq.meta.derby.sys.Tables.SYSKEYS;
@ -113,8 +116,12 @@ import org.jooq.meta.SequenceDefinition;
import org.jooq.meta.TableDefinition;
import org.jooq.meta.UDTDefinition;
import org.jooq.meta.XMLSchemaCollectionDefinition;
import org.jooq.meta.derby.sys.tables.Sysaliases;
import org.jooq.meta.derby.sys.tables.Systables;
import org.jooq.meta.derby.sys.tables.Systriggers;
import org.jetbrains.annotations.NotNull;
/**
* @author Lukas Eder
*/
@ -538,6 +545,9 @@ public class DerbyDatabase extends AbstractDatabase implements ResultQueryDataba
// [#6797] The cast is necessary if a non-standard collation is used
.where(SYSSCHEMAS.SCHEMANAME.cast(VARCHAR(32672)).in(getInputSchemata()))
// [#9574] Exclude aliases
.and(SYSTABLES.TABLETYPE.ne(inline("A")))
.orderBy(
SYSSCHEMAS.SCHEMANAME,
SYSTABLES.TABLENAME)) {
@ -592,6 +602,20 @@ public class DerbyDatabase extends AbstractDatabase implements ResultQueryDataba

View File

@ -10,6 +10,7 @@ import org.jooq.TableField;
import org.jooq.UniqueKey;
import org.jooq.impl.DSL;
import org.jooq.impl.Internal;
import org.jooq.meta.derby.sys.tables.Sysaliases;
import org.jooq.meta.derby.sys.tables.Syschecks;
import org.jooq.meta.derby.sys.tables.Sysconglomerates;
import org.jooq.meta.derby.sys.tables.Sysconstraints;
@ -24,7 +25,7 @@ import org.jooq.meta.derby.sys.tables.Sysviews;
/**
* A class modelling foreign key relationships and constraints of tables in SYS.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Keys {
// -------------------------------------------------------------------------
@ -41,6 +42,7 @@ public class Keys {
// FOREIGN KEY definitions
// -------------------------------------------------------------------------
public static final ForeignKey<Record, Record> SYNTHETIC_FK_SYSALIASES__SYNTHETIC_PK_SYSSCHEMAS = Internal.createForeignKey(Sysaliases.SYSALIASES, DSL.name("SYNTHETIC_FK_SYSALIASES__SYNTHETIC_PK_SYSSCHEMAS"), new TableField[] { Sysaliases.SYSALIASES.SCHEMAID }, Keys.SYNTHETIC_PK_SYSSCHEMAS, new TableField[] { Sysschemas.SYSSCHEMAS.SCHEMAID }, true);
public static final ForeignKey<Record, Record> SYNTHETIC_FK_SYSCHECKS__SYNTHETIC_PK_SYSCONSTRAINTS = Internal.createForeignKey(Syschecks.SYSCHECKS, DSL.name("SYNTHETIC_FK_SYSCHECKS__SYNTHETIC_PK_SYSCONSTRAINTS"), new TableField[] { Syschecks.SYSCHECKS.CONSTRAINTID }, Keys.SYNTHETIC_PK_SYSCONSTRAINTS, new TableField[] { Sysconstraints.SYSCONSTRAINTS.CONSTRAINTID }, true);
public static final ForeignKey<Record, Record> SYNTHETIC_FK_SYSCONGLOMERATES__SYNTHETIC_PK_SYSTABLES = Internal.createForeignKey(Sysconglomerates.SYSCONGLOMERATES, DSL.name("SYNTHETIC_FK_SYSCONGLOMERATES__SYNTHETIC_PK_SYSTABLES"), new TableField[] { Sysconglomerates.SYSCONGLOMERATES.TABLEID }, Keys.SYNTHETIC_PK_SYSTABLES, new TableField[] { Systables.SYSTABLES.TABLEID }, true);
public static final ForeignKey<Record, Record> SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSSCHEMAS = Internal.createForeignKey(Sysconstraints.SYSCONSTRAINTS, DSL.name("SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSSCHEMAS"), new TableField[] { Sysconstraints.SYSCONSTRAINTS.SCHEMAID }, Keys.SYNTHETIC_PK_SYSSCHEMAS, new TableField[] { Sysschemas.SYSSCHEMAS.SCHEMAID }, true);

View File

@ -8,7 +8,9 @@ import java.util.Arrays;
import java.util.List;
import org.jooq.Table;
import org.jooq.impl.DSL;
import org.jooq.impl.SchemaImpl;
import org.jooq.meta.derby.sys.tables.Sysaliases;
import org.jooq.meta.derby.sys.tables.Syschecks;
import org.jooq.meta.derby.sys.tables.Syscolumns;
import org.jooq.meta.derby.sys.tables.Sysconglomerates;
@ -24,7 +26,7 @@ import org.jooq.meta.derby.sys.tables.Sysviews;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Sys extends SchemaImpl {
private static final long serialVersionUID = 1L;
@ -34,6 +36,11 @@ public class Sys extends SchemaImpl {
*/
public static final Sys SYS = new Sys();
/**
* The table <code>SYS.SYSALIASES</code>.
*/
public final Sysaliases SYSALIASES = Sysaliases.SYSALIASES;
/**
* The table <code>SYS.SYSCHECKS</code>.
*/
@ -88,12 +95,13 @@ public class Sys extends SchemaImpl {
* No further instances allowed
*/
private Sys() {
super("SYS", null);
super(DSL.name("SYS"), null, DSL.comment(""));
}
@Override
public final List<Table<?>> getTables() {
return Arrays.asList(
Sysaliases.SYSALIASES,
Syschecks.SYSCHECKS,
Syscolumns.SYSCOLUMNS,
Sysconglomerates.SYSCONGLOMERATES,

View File

@ -4,6 +4,7 @@
package org.jooq.meta.derby.sys;
import org.jooq.meta.derby.sys.tables.Sysaliases;
import org.jooq.meta.derby.sys.tables.Syschecks;
import org.jooq.meta.derby.sys.tables.Syscolumns;
import org.jooq.meta.derby.sys.tables.Sysconglomerates;
@ -19,9 +20,14 @@ import org.jooq.meta.derby.sys.tables.Sysviews;
/**
* Convenience access to all tables in SYS.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Tables {
/**
* The table <code>SYS.SYSALIASES</code>.
*/
public static final Sysaliases SYSALIASES = Sysaliases.SYSALIASES;
/**
* The table <code>SYS.SYSCHECKS</code>.
*/

View File

@ -0,0 +1,169 @@
/*
* This file is generated by jOOQ.
*/
package org.jooq.meta.derby.sys.tables;
import java.util.Arrays;
import java.util.List;
import org.jooq.Condition;
import org.jooq.Field;
import org.jooq.ForeignKey;
import org.jooq.InverseForeignKey;
import org.jooq.Name;
import org.jooq.Record;
import org.jooq.Schema;
import org.jooq.Table;
import org.jooq.TableField;
import org.jooq.TableOptions;
import org.jooq.impl.DSL;
import org.jooq.impl.DefaultDataType;
import org.jooq.impl.SQLDataType;
import org.jooq.impl.TableImpl;
import org.jooq.meta.derby.sys.Keys;
import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Sysaliases extends TableImpl<Record> {
private static final long serialVersionUID = 1L;
/**
* The reference instance of <code>SYS.SYSALIASES</code>
*/
public static final Sysaliases SYSALIASES = new Sysaliases();
/**
* The class holding records for this type
*/
@Override
public Class<Record> getRecordType() {
return Record.class;
}
/**
* The column <code>SYS.SYSALIASES.ALIASID</code>.
*/
public final TableField<Record, String> ALIASID = createField(DSL.name("ALIASID"), SQLDataType.CHAR(36).nullable(false), this, "");
/**
* The column <code>SYS.SYSALIASES.ALIAS</code>.
*/
public final TableField<Record, String> ALIAS = createField(DSL.name("ALIAS"), SQLDataType.VARCHAR(128).nullable(false), this, "");
/**
* The column <code>SYS.SYSALIASES.SCHEMAID</code>.
*/
public final TableField<Record, String> SCHEMAID = createField(DSL.name("SCHEMAID"), SQLDataType.CHAR(36), this, "");
/**
* The column <code>SYS.SYSALIASES.JAVACLASSNAME</code>.
*/
public final TableField<Record, String> JAVACLASSNAME = createField(DSL.name("JAVACLASSNAME"), SQLDataType.LONGVARCHAR.nullable(false), this, "");
/**
* The column <code>SYS.SYSALIASES.ALIASTYPE</code>.
*/
public final TableField<Record, String> ALIASTYPE = createField(DSL.name("ALIASTYPE"), SQLDataType.CHAR(1).nullable(false), this, "");
/**
* The column <code>SYS.SYSALIASES.NAMESPACE</code>.
*/
public final TableField<Record, String> NAMESPACE = createField(DSL.name("NAMESPACE"), SQLDataType.CHAR(1).nullable(false), this, "");
/**
* The column <code>SYS.SYSALIASES.SYSTEMALIAS</code>.
*/
public final TableField<Record, Boolean> SYSTEMALIAS = createField(DSL.name("SYSTEMALIAS"), SQLDataType.BOOLEAN.nullable(false), this, "");
/**
* @deprecated Unknown data type. If this is a qualified, user-defined type,
* it may have been excluded from code generation. If this is a built-in
* type, you can define an explicit {@link org.jooq.Binding} to specify how
* this type should be handled. Deprecation can be turned off using
* {@literal <deprecationOnUnknownTypes/>} in your code generator
* configuration.
*/
@Deprecated
public final TableField<Record, Object> ALIASINFO = createField(DSL.name("ALIASINFO"), DefaultDataType.getDefaultDataType("\"org.apache.derby.catalog.AliasInfo\""), this, "");
/**
* The column <code>SYS.SYSALIASES.SPECIFICNAME</code>.
*/
public final TableField<Record, String> SPECIFICNAME = createField(DSL.name("SPECIFICNAME"), SQLDataType.VARCHAR(128).nullable(false), this, "");
private Sysaliases(Name alias, Table<Record> aliased) {
this(alias, aliased, (Field<?>[]) null, null);
}
private Sysaliases(Name alias, Table<Record> aliased, Field<?>[] parameters, Condition where) {
super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where);
}
/**
* Create an aliased <code>SYS.SYSALIASES</code> table reference
*/
public Sysaliases(String alias) {
this(DSL.name(alias), SYSALIASES);
}
/**
* Create an aliased <code>SYS.SYSALIASES</code> table reference
*/
public Sysaliases(Name alias) {
this(alias, SYSALIASES);
}
/**
* Create a <code>SYS.SYSALIASES</code> table reference
*/
public Sysaliases() {
this(DSL.name("SYSALIASES"), null);
}
public <O extends Record> Sysaliases(Table<O> path, ForeignKey<O, Record> childPath, InverseForeignKey<O, Record> parentPath) {
super(path, childPath, parentPath, SYSALIASES);
}
@Override
public Schema getSchema() {
return aliased() ? null : Sys.SYS;
}
@Override
public List<ForeignKey<Record, ?>> getReferences() {
return Arrays.asList(Keys.SYNTHETIC_FK_SYSALIASES__SYNTHETIC_PK_SYSSCHEMAS);
}
private transient Sysschemas _sysschemas;
/**
* Get the implicit join path to the <code>SYS.SYSSCHEMAS</code> table.
*/
public Sysschemas sysschemas() {
if (_sysschemas == null)
_sysschemas = new Sysschemas(this, Keys.SYNTHETIC_FK_SYSALIASES__SYNTHETIC_PK_SYSSCHEMAS, null);
return _sysschemas;
}
@Override
public Sysaliases as(String alias) {
return new Sysaliases(DSL.name(alias), this);
}
@Override
public Sysaliases as(Name alias) {
return new Sysaliases(alias, this);
}
@Override
public Sysaliases as(Table<?> alias) {
return new Sysaliases(alias.getQualifiedName(), this);
}
}

View File

@ -18,7 +18,6 @@ import org.jooq.Table;
import org.jooq.TableField;
import org.jooq.TableOptions;
import org.jooq.impl.DSL;
import org.jooq.impl.DefaultDataType;
import org.jooq.impl.SQLDataType;
import org.jooq.impl.TableImpl;
import org.jooq.meta.derby.sys.Keys;
@ -28,7 +27,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Syschecks extends TableImpl<Record> {
private static final long serialVersionUID = 1L;
@ -65,7 +64,7 @@ public class Syschecks extends TableImpl<Record> {
* configuration.
*/
@Deprecated
public final TableField<Record, Object> REFERENCEDCOLUMNS = createField(DSL.name("REFERENCEDCOLUMNS"), DefaultDataType.getDefaultDataType("\"org.apache.derby.catalog.ReferencedColumns\"").nullable(false), this, "");
public final TableField<Record, Object> REFERENCEDCOLUMNS = createField(DSL.name("REFERENCEDCOLUMNS"), org.jooq.impl.SQLDataType.OTHER.nullable(false), this, "");
private Syschecks(Name alias, Table<Record> aliased) {
this(alias, aliased, (Field<?>[]) null, null);

View File

@ -21,7 +21,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Syscolumns extends TableImpl<Record> {
private static final long serialVersionUID = 1L;

View File

@ -28,7 +28,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Sysconglomerates extends TableImpl<Record> {
private static final long serialVersionUID = 1L;

View File

@ -28,7 +28,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Sysconstraints extends TableImpl<Record> {
private static final long serialVersionUID = 1L;
@ -126,19 +126,7 @@ public class Sysconstraints extends TableImpl<Record> {
@Override
public List<ForeignKey<Record, ?>> getReferences() {
return Arrays.asList(Keys.SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSTABLES, Keys.SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSSCHEMAS);
}
private transient Systables _systables;
/**
* Get the implicit join path to the <code>SYS.SYSTABLES</code> table.
*/
public Systables systables() {
if (_systables == null)
_systables = new Systables(this, Keys.SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSTABLES, null);
return _systables;
return Arrays.asList(Keys.SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSSCHEMAS, Keys.SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSTABLES);
}
private transient Sysschemas _sysschemas;
@ -153,6 +141,18 @@ public class Sysconstraints extends TableImpl<Record> {
return _sysschemas;
}
private transient Systables _systables;
/**
* Get the implicit join path to the <code>SYS.SYSTABLES</code> table.
*/
public Systables systables() {
if (_systables == null)
_systables = new Systables(this, Keys.SYNTHETIC_FK_SYSCONSTRAINTS__SYNTHETIC_PK_SYSTABLES, null);
return _systables;
}
private transient Syschecks _syschecks;
/**

View File

@ -27,7 +27,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Syskeys extends TableImpl<Record> {
private static final long serialVersionUID = 1L;
@ -95,19 +95,7 @@ public class Syskeys extends TableImpl<Record> {
@Override
public List<ForeignKey<Record, ?>> getReferences() {
return Arrays.asList(Keys.SYNTHETIC_FK_SYSKEYS__SYNTHETIC_PK_SYSCONSTRAINTS, Keys.SYNTHETIC_FK_SYSKEYS__SYNTHETIC_PK_SYSCONGLOMERATES);
}
private transient Sysconstraints _sysconstraints;
/**
* Get the implicit join path to the <code>SYS.SYSCONSTRAINTS</code> table.
*/
public Sysconstraints sysconstraints() {
if (_sysconstraints == null)
_sysconstraints = new Sysconstraints(this, Keys.SYNTHETIC_FK_SYSKEYS__SYNTHETIC_PK_SYSCONSTRAINTS, null);
return _sysconstraints;
return Arrays.asList(Keys.SYNTHETIC_FK_SYSKEYS__SYNTHETIC_PK_SYSCONGLOMERATES, Keys.SYNTHETIC_FK_SYSKEYS__SYNTHETIC_PK_SYSCONSTRAINTS);
}
private transient Sysconglomerates _sysconglomerates;
@ -123,6 +111,18 @@ public class Syskeys extends TableImpl<Record> {
return _sysconglomerates;
}
private transient Sysconstraints _sysconstraints;
/**
* Get the implicit join path to the <code>SYS.SYSCONSTRAINTS</code> table.
*/
public Sysconstraints sysconstraints() {
if (_sysconstraints == null)
_sysconstraints = new Sysconstraints(this, Keys.SYNTHETIC_FK_SYSKEYS__SYNTHETIC_PK_SYSCONSTRAINTS, null);
return _sysconstraints;
}
@Override
public Syskeys as(String alias) {
return new Syskeys(DSL.name(alias), this);

View File

@ -25,7 +25,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Sysschemas extends TableImpl<Record> {
private static final long serialVersionUID = 1L;
@ -101,6 +101,19 @@ public class Sysschemas extends TableImpl<Record> {
return Keys.SYNTHETIC_PK_SYSSCHEMAS;
}
private transient Sysaliases _sysaliases;
/**
* Get the implicit to-many join path to the <code>SYS.SYSALIASES</code>
* table
*/
public Sysaliases sysaliases() {
if (_sysaliases == null)
_sysaliases = new Sysaliases(this, null, Keys.SYNTHETIC_FK_SYSALIASES__SYNTHETIC_PK_SYSSCHEMAS.getInverseKey());
return _sysaliases;
}
private transient Sysconstraints _sysconstraints;
/**

View File

@ -27,7 +27,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Syssequences extends TableImpl<Record> {
private static final long serialVersionUID = 1L;

View File

@ -28,7 +28,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Systables extends TableImpl<Record> {
private static final long serialVersionUID = 1L;

View File

@ -20,7 +20,6 @@ import org.jooq.TableField;
import org.jooq.TableOptions;
import org.jooq.UniqueKey;
import org.jooq.impl.DSL;
import org.jooq.impl.DefaultDataType;
import org.jooq.impl.SQLDataType;
import org.jooq.impl.TableImpl;
import org.jooq.meta.derby.sys.Keys;
@ -30,7 +29,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Systriggers extends TableImpl<Record> {
private static final long serialVersionUID = 1L;
@ -112,7 +111,7 @@ public class Systriggers extends TableImpl<Record> {
* configuration.
*/
@Deprecated
public final TableField<Record, Object> REFERENCEDCOLUMNS = createField(DSL.name("REFERENCEDCOLUMNS"), DefaultDataType.getDefaultDataType("\"org.apache.derby.catalog.ReferencedColumns\""), this, "");
public final TableField<Record, Object> REFERENCEDCOLUMNS = createField(DSL.name("REFERENCEDCOLUMNS"), org.jooq.impl.SQLDataType.OTHER, this, "");
/**
* The column <code>SYS.SYSTRIGGERS.TRIGGERDEFINITION</code>.

View File

@ -27,7 +27,7 @@ import org.jooq.meta.derby.sys.Sys;
/**
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Sysviews extends TableImpl<Record> {
private static final long serialVersionUID = 1L;