示例#1
0
  @Override
  protected void loadUniqueKeys(DefaultRelations r) throws SQLException {
    for (Record record :
        create()
            .select(
                concat(SYSTABLE.TABLE_NAME, val("__"), SYSIDX.INDEX_NAME).as("indexName"),
                SYSTABLE.TABLE_NAME,
                SYSTABCOL.COLUMN_NAME)
            .from(SYSIDX)
            .join(SYSIDXCOL)
            .on(SYSIDX.TABLE_ID.equal(SYSIDXCOL.TABLE_ID))
            .and(SYSIDX.INDEX_ID.equal(SYSIDXCOL.INDEX_ID))
            .join(SYSTABLE)
            .on(SYSIDXCOL.TABLE_ID.equal(SYSTABLE.TABLE_ID))
            .join(SYSTABCOL)
            .on(SYSIDXCOL.TABLE_ID.equal(SYSTABCOL.TABLE_ID))
            .and(SYSIDXCOL.COLUMN_ID.equal(SYSTABCOL.COLUMN_ID))
            .where(SYSIDX.INDEX_CATEGORY.equal((byte) 3))
            .and(SYSIDX.UNIQUE.equal((byte) 2))
            .orderBy(SYSIDXCOL.SEQUENCE)
            .fetch()) {

      String key = record.getValue("indexName", String.class);
      String tableName = record.getValue(SYSTABLE.TABLE_NAME);
      String columnName = record.getValue(SYSTABCOL.COLUMN_NAME);

      TableDefinition table = getTable(getSchema(), tableName);
      if (table != null) {
        r.addUniqueKey(key, table.getColumn(columnName));
      }
    }
  }
示例#2
0
  @Override
  protected void loadUniqueKeys(DefaultRelations relations) throws SQLException {
    for (Record record : fetchKeys("UNIQUE")) {
      SchemaDefinition schema = getSchema(record.getValue(KeyColumnUsage.TABLE_SCHEMA));
      String constraintName = record.getValue(KeyColumnUsage.CONSTRAINT_NAME);
      String tableName = record.getValue(KeyColumnUsage.TABLE_NAME);
      String columnName = record.getValue(KeyColumnUsage.COLUMN_NAME);

      String key = getKeyName(tableName, constraintName);
      TableDefinition table = getTable(schema, tableName);

      if (table != null) {
        relations.addUniqueKey(key, table.getColumn(columnName));
      }
    }
  }
示例#3
0
  @Override
  protected void loadUniqueKeys(DefaultRelations relations) throws SQLException {
    for (Record record : fetchKeys(false)) {
      SchemaDefinition schema = getSchema(record.get(Statistics.TABLE_SCHEMA));
      String constraintName = record.get(Statistics.INDEX_NAME);
      String tableName = record.get(Statistics.TABLE_NAME);
      String columnName = record.get(Statistics.COLUMN_NAME);

      String key = getKeyName(tableName, constraintName);
      TableDefinition table = getTable(schema, tableName);

      if (table != null) {
        relations.addUniqueKey(key, table.getColumn(columnName));
      }
    }
  }