Search in sources :

Example 31 with SchemaDefinition

use of org.jooq.util.SchemaDefinition in project jOOQ by jOOQ.

the class PostgresUDTDefinition method getElements0.

@Override
protected List<AttributeDefinition> getElements0() throws SQLException {
    List<AttributeDefinition> result = new ArrayList<AttributeDefinition>();
    for (Record record : create().select(ATTRIBUTES.ATTRIBUTE_NAME, ATTRIBUTES.ORDINAL_POSITION, ATTRIBUTES.DATA_TYPE, ATTRIBUTES.CHARACTER_MAXIMUM_LENGTH, ATTRIBUTES.NUMERIC_PRECISION, ATTRIBUTES.NUMERIC_SCALE, ATTRIBUTES.IS_NULLABLE, ATTRIBUTES.ATTRIBUTE_DEFAULT, ATTRIBUTES.ATTRIBUTE_UDT_SCHEMA, ATTRIBUTES.ATTRIBUTE_UDT_NAME).from(ATTRIBUTES).where(ATTRIBUTES.UDT_SCHEMA.equal(getSchema().getName())).and(ATTRIBUTES.UDT_NAME.equal(getName())).orderBy(ATTRIBUTES.ORDINAL_POSITION).fetch()) {
        SchemaDefinition typeSchema = null;
        String schemaName = record.get(ATTRIBUTES.ATTRIBUTE_UDT_SCHEMA);
        if (schemaName != null)
            typeSchema = getDatabase().getSchema(schemaName);
        DataTypeDefinition type = new DefaultDataTypeDefinition(getDatabase(), typeSchema == null ? getSchema() : typeSchema, record.get(ATTRIBUTES.DATA_TYPE), record.get(ATTRIBUTES.CHARACTER_MAXIMUM_LENGTH), record.get(ATTRIBUTES.NUMERIC_PRECISION), record.get(ATTRIBUTES.NUMERIC_SCALE), record.get(ATTRIBUTES.IS_NULLABLE, boolean.class), record.get(ATTRIBUTES.ATTRIBUTE_DEFAULT), name(record.get(ATTRIBUTES.ATTRIBUTE_UDT_SCHEMA), record.get(ATTRIBUTES.ATTRIBUTE_UDT_NAME)));
        AttributeDefinition column = new DefaultAttributeDefinition(this, record.get(ATTRIBUTES.ATTRIBUTE_NAME), record.get(ATTRIBUTES.ORDINAL_POSITION), type);
        result.add(column);
    }
    return result;
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) DefaultDataTypeDefinition(org.jooq.util.DefaultDataTypeDefinition) ArrayList(java.util.ArrayList) DefaultAttributeDefinition(org.jooq.util.DefaultAttributeDefinition) AttributeDefinition(org.jooq.util.AttributeDefinition) Record(org.jooq.Record) DefaultAttributeDefinition(org.jooq.util.DefaultAttributeDefinition) DataTypeDefinition(org.jooq.util.DataTypeDefinition) DefaultDataTypeDefinition(org.jooq.util.DefaultDataTypeDefinition)

Example 32 with SchemaDefinition

use of org.jooq.util.SchemaDefinition in project jOOQ by jOOQ.

the class HSQLDBDatabase method loadForeignKeys.

@Override
protected void loadForeignKeys(DefaultRelations relations) throws SQLException {
    Result<?> result = create().select(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME, REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA, KEY_COLUMN_USAGE.CONSTRAINT_NAME, KEY_COLUMN_USAGE.TABLE_SCHEMA, KEY_COLUMN_USAGE.TABLE_NAME, KEY_COLUMN_USAGE.COLUMN_NAME).from(REFERENTIAL_CONSTRAINTS).join(KEY_COLUMN_USAGE).on(KEY_COLUMN_USAGE.CONSTRAINT_SCHEMA.equal(REFERENTIAL_CONSTRAINTS.CONSTRAINT_SCHEMA)).and(KEY_COLUMN_USAGE.CONSTRAINT_NAME.equal(REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME)).where(KEY_COLUMN_USAGE.TABLE_SCHEMA.in(getInputSchemata())).orderBy(KEY_COLUMN_USAGE.TABLE_SCHEMA.asc(), KEY_COLUMN_USAGE.TABLE_NAME.asc(), KEY_COLUMN_USAGE.CONSTRAINT_NAME.asc(), KEY_COLUMN_USAGE.ORDINAL_POSITION.asc()).fetch();
    for (Record record : result) {
        SchemaDefinition foreignKeySchema = getSchema(record.get(KEY_COLUMN_USAGE.TABLE_SCHEMA));
        SchemaDefinition uniqueKeySchema = getSchema(record.get(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA));
        String foreignKey = record.get(KEY_COLUMN_USAGE.CONSTRAINT_NAME);
        String foreignKeyTable = record.get(KEY_COLUMN_USAGE.TABLE_NAME);
        String foreignKeyColumn = record.get(KEY_COLUMN_USAGE.COLUMN_NAME);
        String uniqueKey = record.get(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME);
        TableDefinition referencingTable = getTable(foreignKeySchema, foreignKeyTable);
        if (referencingTable != null) {
            ColumnDefinition referencingColumn = referencingTable.getColumn(foreignKeyColumn);
            relations.addForeignKey(foreignKey, uniqueKey, referencingColumn, uniqueKeySchema);
        }
    }
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) TableDefinition(org.jooq.util.TableDefinition) Record(org.jooq.Record) ColumnDefinition(org.jooq.util.ColumnDefinition)

Example 33 with SchemaDefinition

use of org.jooq.util.SchemaDefinition in project jOOQ by jOOQ.

the class HSQLDBDatabase method loadCheckConstraints.

@Override
protected void loadCheckConstraints(DefaultRelations relations) throws SQLException {
    TableConstraints tc = TABLE_CONSTRAINTS.as("tc");
    CheckConstraints cc = CHECK_CONSTRAINTS.as("cc");
    // [#2808] [#3019] Workaround for bad handling of JOIN .. USING
    Field<String> constraintName = field(name(cc.CONSTRAINT_NAME.getName()), String.class);
    for (Record record : create().select(tc.TABLE_SCHEMA, tc.TABLE_NAME, constraintName, cc.CHECK_CLAUSE).from(tc).join(cc).using(tc.CONSTRAINT_CATALOG, tc.CONSTRAINT_SCHEMA, tc.CONSTRAINT_NAME).where(tc.TABLE_SCHEMA.in(getInputSchemata())).fetch()) {
        SchemaDefinition schema = getSchema(record.get(tc.TABLE_SCHEMA));
        TableDefinition table = getTable(schema, record.get(tc.TABLE_NAME));
        if (table != null) {
            relations.addCheckConstraint(table, new DefaultCheckConstraintDefinition(schema, table, record.get(constraintName), record.get(cc.CHECK_CLAUSE)));
        }
    }
}
Also used : TableConstraints(org.jooq.util.hsqldb.information_schema.tables.TableConstraints) SchemaDefinition(org.jooq.util.SchemaDefinition) TableDefinition(org.jooq.util.TableDefinition) Record(org.jooq.Record) DefaultCheckConstraintDefinition(org.jooq.util.DefaultCheckConstraintDefinition) CheckConstraints(org.jooq.util.hsqldb.information_schema.tables.CheckConstraints)

Example 34 with SchemaDefinition

use of org.jooq.util.SchemaDefinition in project jOOQ by jOOQ.

the class HSQLDBDatabase method getTables0.

@Override
protected List<TableDefinition> getTables0() throws SQLException {
    List<TableDefinition> result = new ArrayList<TableDefinition>();
    for (Record record : create().select(TABLES.TABLE_SCHEMA, TABLES.TABLE_NAME).from(TABLES).where(TABLES.TABLE_SCHEMA.in(getInputSchemata())).orderBy(TABLES.TABLE_SCHEMA, TABLES.TABLE_NAME).fetch()) {
        SchemaDefinition schema = getSchema(record.get(TABLES.TABLE_SCHEMA));
        String name = record.get(TABLES.TABLE_NAME);
        String comment = "";
        result.add(new HSQLDBTableDefinition(schema, name, comment));
    }
    return result;
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) ArrayList(java.util.ArrayList) TableDefinition(org.jooq.util.TableDefinition) Record(org.jooq.Record)

Example 35 with SchemaDefinition

use of org.jooq.util.SchemaDefinition in project jOOQ by jOOQ.

the class JDBCDatabase method loadUniqueKeys.

@Override
protected void loadUniqueKeys(DefaultRelations relations) throws SQLException {
    for (Schema schema : getSchemasFromMeta()) {
        SchemaDefinition s = getSchema(schema.getName());
        if (s != null) {
            for (Table<?> table : schema.getTables()) {
                TableDefinition t = getTable(s, table.getName());
                if (t != null) {
                    UniqueKey<?> key = table.getPrimaryKey();
                    if (key != null) {
                        for (Field<?> field : key.getFields()) {
                            ColumnDefinition c = t.getColumn(field.getName());
                            relations.addPrimaryKey("PK_" + key.getTable().getName(), c);
                        }
                    }
                }
            }
        }
    }
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) Schema(org.jooq.Schema) TableDefinition(org.jooq.util.TableDefinition) ColumnDefinition(org.jooq.util.ColumnDefinition)

Aggregations

SchemaDefinition (org.jooq.util.SchemaDefinition)51 Record (org.jooq.Record)36 ArrayList (java.util.ArrayList)29 TableDefinition (org.jooq.util.TableDefinition)28 DefaultDataTypeDefinition (org.jooq.util.DefaultDataTypeDefinition)14 DataTypeDefinition (org.jooq.util.DataTypeDefinition)13 ColumnDefinition (org.jooq.util.ColumnDefinition)12 DefaultSequenceDefinition (org.jooq.util.DefaultSequenceDefinition)7 SequenceDefinition (org.jooq.util.SequenceDefinition)7 DefaultColumnDefinition (org.jooq.util.DefaultColumnDefinition)4 PgNamespace (org.jooq.util.postgres.pg_catalog.tables.PgNamespace)4 StringUtils.defaultString (org.jooq.tools.StringUtils.defaultString)3 RoutineDefinition (org.jooq.util.RoutineDefinition)3 KeyColumnUsage (org.jooq.util.xml.jaxb.KeyColumnUsage)3 Record6 (org.jooq.Record6)2 Schema (org.jooq.Schema)2 DefaultCheckConstraintDefinition (org.jooq.util.DefaultCheckConstraintDefinition)2 DefaultEnumDefinition (org.jooq.util.DefaultEnumDefinition)2 EnumDefinition (org.jooq.util.EnumDefinition)2 Columns (org.jooq.util.postgres.information_schema.tables.Columns)2