Search in sources :

Example 16 with Record

use of org.jooq.Record in project jOOQ by jOOQ.

the class MySQLDatabase 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, Tables.TABLE_COMMENT).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 = record.get(Tables.TABLE_COMMENT);
        MySQLTableDefinition table = new MySQLTableDefinition(schema, name, comment);
        result.add(table);
    }
    return result;
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) ArrayList(java.util.ArrayList) TableDefinition(org.jooq.util.TableDefinition) Record(org.jooq.Record)

Example 17 with Record

use of org.jooq.Record in project jOOQ by jOOQ.

the class MySQLDatabase method loadForeignKeys.

@Override
protected void loadForeignKeys(DefaultRelations relations) throws SQLException {
    for (Record record : create().select(ReferentialConstraints.CONSTRAINT_SCHEMA, ReferentialConstraints.CONSTRAINT_NAME, ReferentialConstraints.TABLE_NAME, ReferentialConstraints.REFERENCED_TABLE_NAME, ReferentialConstraints.UNIQUE_CONSTRAINT_NAME, ReferentialConstraints.UNIQUE_CONSTRAINT_SCHEMA, KeyColumnUsage.COLUMN_NAME).from(REFERENTIAL_CONSTRAINTS).join(KEY_COLUMN_USAGE).on(ReferentialConstraints.CONSTRAINT_SCHEMA.equal(KeyColumnUsage.CONSTRAINT_SCHEMA)).and(ReferentialConstraints.CONSTRAINT_NAME.equal(KeyColumnUsage.CONSTRAINT_NAME)).where(ReferentialConstraints.CONSTRAINT_SCHEMA.in(getInputSchemata())).orderBy(KeyColumnUsage.CONSTRAINT_SCHEMA.asc(), KeyColumnUsage.CONSTRAINT_NAME.asc(), KeyColumnUsage.ORDINAL_POSITION.asc()).fetch()) {
        SchemaDefinition foreignKeySchema = getSchema(record.get(ReferentialConstraints.CONSTRAINT_SCHEMA));
        SchemaDefinition uniqueKeySchema = getSchema(record.get(ReferentialConstraints.UNIQUE_CONSTRAINT_SCHEMA));
        String foreignKey = record.get(ReferentialConstraints.CONSTRAINT_NAME);
        String foreignKeyColumn = record.get(KeyColumnUsage.COLUMN_NAME);
        String foreignKeyTableName = record.get(ReferentialConstraints.TABLE_NAME);
        String referencedKey = record.get(ReferentialConstraints.UNIQUE_CONSTRAINT_NAME);
        String referencedTableName = record.get(ReferentialConstraints.REFERENCED_TABLE_NAME);
        TableDefinition foreignKeyTable = getTable(foreignKeySchema, foreignKeyTableName);
        if (foreignKeyTable != null) {
            ColumnDefinition column = foreignKeyTable.getColumn(foreignKeyColumn);
            String key = getKeyName(referencedTableName, referencedKey);
            relations.addForeignKey(foreignKey, key, column, uniqueKeySchema);
        }
    }
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) TableDefinition(org.jooq.util.TableDefinition) Record(org.jooq.Record) ColumnDefinition(org.jooq.util.ColumnDefinition)

Example 18 with Record

use of org.jooq.Record in project jOOQ by jOOQ.

the class H2Database method loadUniqueKeys.

@Override
protected void loadUniqueKeys(DefaultRelations relations) throws SQLException {
    for (Record record : fetchKeys("UNIQUE")) {
        SchemaDefinition schema = getSchema(record.get(Constraints.TABLE_SCHEMA));
        if (schema != null) {
            String tableName = record.get(Constraints.TABLE_NAME);
            String primaryKey = record.get(Constraints.CONSTRAINT_NAME);
            String columnName = record.get(Indexes.COLUMN_NAME);
            TableDefinition table = getTable(schema, tableName);
            if (table != null) {
                relations.addUniqueKey(primaryKey, table.getColumn(columnName));
            }
        }
    }
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) TableDefinition(org.jooq.util.TableDefinition) Record(org.jooq.Record)

Example 19 with Record

use of org.jooq.Record in project jOOQ by jOOQ.

the class H2Database method getRoutines0.

@Override
protected List<RoutineDefinition> getRoutines0() throws SQLException {
    List<RoutineDefinition> result = new ArrayList<RoutineDefinition>();
    for (Record record : create().select(FunctionAliases.ALIAS_SCHEMA, FunctionAliases.ALIAS_NAME, FunctionAliases.REMARKS, FunctionAliases.DATA_TYPE, FunctionAliases.RETURNS_RESULT, TypeInfo.TYPE_NAME, TypeInfo.PRECISION, TypeInfo.MAXIMUM_SCALE).from(FUNCTION_ALIASES).leftOuterJoin(TYPE_INFO).on(FunctionAliases.DATA_TYPE.equal(TypeInfo.DATA_TYPE)).and(TypeInfo.POS.equal(0)).where(FunctionAliases.ALIAS_SCHEMA.in(getInputSchemata())).and(FunctionAliases.RETURNS_RESULT.in((short) 1, (short) 2)).orderBy(FunctionAliases.ALIAS_NAME).fetch()) {
        SchemaDefinition schema = getSchema(record.get(FunctionAliases.ALIAS_SCHEMA));
        if (schema != null) {
            String name = record.get(FunctionAliases.ALIAS_NAME);
            String comment = record.get(FunctionAliases.REMARKS);
            String typeName = record.get(TypeInfo.TYPE_NAME);
            Integer precision = record.get(TypeInfo.PRECISION);
            Short scale = record.get(TypeInfo.MAXIMUM_SCALE);
            result.add(new H2RoutineDefinition(schema, name, comment, typeName, precision, scale));
        }
    }
    return result;
}
Also used : RoutineDefinition(org.jooq.util.RoutineDefinition) SchemaDefinition(org.jooq.util.SchemaDefinition) ArrayList(java.util.ArrayList) Record(org.jooq.Record)

Example 20 with Record

use of org.jooq.Record in project jOOQ by jOOQ.

the class H2Database 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, Tables.REMARKS).from(TABLES).where(Tables.TABLE_SCHEMA.in(getInputSchemata())).orderBy(Tables.TABLE_SCHEMA, Tables.TABLE_NAME).fetch()) {
        SchemaDefinition schema = getSchema(record.get(Tables.TABLE_SCHEMA));
        if (schema != null) {
            String name = record.get(Tables.TABLE_NAME);
            String comment = record.get(Tables.REMARKS);
            H2TableDefinition table = new H2TableDefinition(schema, name, comment);
            result.add(table);
        }
    }
    return result;
}
Also used : SchemaDefinition(org.jooq.util.SchemaDefinition) ArrayList(java.util.ArrayList) TableDefinition(org.jooq.util.TableDefinition) Record(org.jooq.Record)

Aggregations

Record (org.jooq.Record)91 ArrayList (java.util.ArrayList)40 SchemaDefinition (org.jooq.util.SchemaDefinition)36 TableDefinition (org.jooq.util.TableDefinition)32 ColumnDefinition (org.jooq.util.ColumnDefinition)23 DefaultDataTypeDefinition (org.jooq.util.DefaultDataTypeDefinition)22 DataTypeDefinition (org.jooq.util.DataTypeDefinition)19 DefaultColumnDefinition (org.jooq.util.DefaultColumnDefinition)11 TableField (org.jooq.TableField)9 UpdatableRecord (org.jooq.UpdatableRecord)9 TableRecord (org.jooq.TableRecord)7 Connection (java.sql.Connection)5 StringUtils.defaultString (org.jooq.tools.StringUtils.defaultString)5 DefaultParameterDefinition (org.jooq.util.DefaultParameterDefinition)5 DefaultSequenceDefinition (org.jooq.util.DefaultSequenceDefinition)5 ParameterDefinition (org.jooq.util.ParameterDefinition)5 SequenceDefinition (org.jooq.util.SequenceDefinition)5 Schema (org.jooq.Schema)4 IOException (org.jooq.exception.IOException)4 PgNamespace (org.jooq.util.postgres.pg_catalog.tables.PgNamespace)4