Skip to content

Commit

Permalink
0002497 - AS400 fix to not build indexes each time SDS starts up.
Browse files Browse the repository at this point in the history
  • Loading branch information
Hicks, Josh committed Feb 17, 2016
1 parent a2bb2f3 commit 9885569
Showing 1 changed file with 21 additions and 3 deletions.
Expand Up @@ -122,17 +122,35 @@ protected Collection<IIndex> readIndices(Connection connection, DatabaseMetaData
ResultSet indexData = null;

try {
indexData = metaData.getIndices(getTableNamePatternForConstraints(tableName), true, false);

indexData = metaData.getIndices(getTableNamePatternForConstraints(tableName), false, false);

Collection<Column> columns = readColumns(metaData, tableName);

while (indexData.next()) {
Map<String, Object> values = readMetaData(indexData, getColumnsForIndex());

readIndex(metaData, values, indices);
String columnName = (String) values.get("COLUMN_NAME");
if (hasColumn(columns, columnName)) {
readIndex(metaData, values, indices);
}
}
} finally {
close(indexData);
}
}
return indices.values();
}

private boolean hasColumn(Collection<Column> columns, String targetColumn) {
if (targetColumn == null || columns == null || columns.size() == 0) {
return false;
}
boolean found = false;
for(Column column : columns) {
if (targetColumn.equals(column.getName())) {
found = true;
}
}
return found;
}
}

0 comments on commit 9885569

Please sign in to comment.