private void primaryKeyColumns(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getPrimaryKeys(null, null, table.getId()); final TableChildMutator<PrimaryKeyColumn> mutator = (pkc, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); pkc.mutator().setId(columnName); pkc.mutator().setName(columnName); pkc.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds( table, PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, rsChild -> rsChild.getString("COLUMN_NAME"), mutator ); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn(format("Table '%s' does not have any primary key.", table.getId())); } }
protected void primaryKeyColumns(Connection connection, Table table, ProgressMeasure progressListener) { requireNonNulls(connection, table); final Schema schema = table.getParentOrThrow(); final SqlSupplier<ResultSet> supplier = () -> connection.getMetaData().getPrimaryKeys(jdbcCatalogLookupName(schema), jdbcSchemaLookupName(schema), metaDataTableNameForPrimaryKeys(table) ); final AbstractDbmsOperationHandler.TableChildMutator<PrimaryKeyColumn, ResultSet> mutator = (primaryKeyColumn, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); primaryKeyColumn.mutator().setId(columnName); primaryKeyColumn.mutator().setName(columnName); primaryKeyColumn.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds(PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, mutator, progressListener); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn("Table '" + table.getId() + "' does not have any primary key."); } }
table, ForeignKey.class, table.mutator()::addNewForeignKey, supplier, rsChild -> rsChild.getInt("KEY_SEQ") == 1 ? ""
private void indexes(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); if (table.isView() && IGNORE_VIEW_INDEXES) return; final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getIndexInfo(null, null, table.getId(), false, APPROXIMATE_INDEX); final TableChildMutator<Index> mutator = (index, rs) -> { final String indexName = rs.getString("INDEX_NAME"); index.mutator().setId(indexName); index.mutator().setName(indexName); index.mutator().setUnique(!rs.getBoolean("NON_UNIQUE")); final IndexColumn indexColumn = index.mutator().addNewIndexColumn(); final String columnName = rs.getString("COLUMN_NAME"); indexColumn.mutator().setId(columnName); indexColumn.mutator().setName(columnName); indexColumn.mutator().setOrdinalPosition(rs.getInt("ORDINAL_POSITION")); indexColumn.mutator().setOrderType(getOrderType(rs)); }; final SqlPredicate<ResultSet> filter = rs -> rs.getString("INDEX_NAME") != null; tableChilds( table, Index.class, table.mutator()::addNewIndex, supplier, rsChild -> rsChild.getString("INDEX_NAME"), mutator, filter ); }
}; tableChilds(ForeignKey.class, table.mutator()::addNewForeignKey, supplier, mutator, progressListener);
}; tableChilds(Index.class, table.mutator()::addNewIndex, supplier, mutator, filter, progressListener);
final String tableName = rsTable.getString("TABLE_NAME"); final String tableType = rsTable.getString("TABLE_TYPE"); table.mutator().setId(tableName); table.mutator().setName(tableName); table.mutator().setView("VIEW".equals(tableType)); .noneMatch(col -> table.primaryKeyColumns().anyMatch(pkc -> DocumentDbUtil.isSame(pkc.findColumn().get(), col))) && table.columns().map(Column::getId).noneMatch("rowid"::equalsIgnoreCase)) { final Column column = table.mutator().addNewColumn(); ))) { final Index pkReplacement = table.mutator().addNewIndex(); final String idxName = md5(oldPks.toString()); final PrimaryKeyColumn pkc = table.mutator().addNewPrimaryKeyColumn(); pkc.mutator().setId("rowid"); pkc.mutator().setName("rowid");
tableChilds(Column.class, table.mutator()::addNewColumn, supplier, mutator, progressListener);
private void primaryKeyColumns(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getPrimaryKeys(null, null, table.getId()); final TableChildMutator<PrimaryKeyColumn> mutator = (pkc, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); pkc.mutator().setId(columnName); pkc.mutator().setName(columnName); pkc.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds( table, PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, rsChild -> rsChild.getString("COLUMN_NAME"), mutator ); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn(format("Table '%s' does not have any primary key.", table.getId())); } }
protected void primaryKeyColumns(Connection connection, Table table, ProgressMeasure progressListener) { requireNonNulls(connection, table); final Schema schema = table.getParentOrThrow(); final SqlSupplier<ResultSet> supplier = () -> connection.getMetaData().getPrimaryKeys(jdbcCatalogLookupName(schema), jdbcSchemaLookupName(schema), metaDataTableNameForPrimaryKeys(table) ); final AbstractDbmsOperationHandler.TableChildMutator<PrimaryKeyColumn, ResultSet> mutator = (primaryKeyColumn, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); primaryKeyColumn.mutator().setId(columnName); primaryKeyColumn.mutator().setName(columnName); primaryKeyColumn.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds(PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, mutator, progressListener); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn("Table '" + table.getId() + "' does not have any primary key."); } }
table, ForeignKey.class, table.mutator()::addNewForeignKey, supplier, rsChild -> rsChild.getInt("KEY_SEQ") == 1 ? ""
}; tableChilds(ForeignKey.class, table.mutator()::addNewForeignKey, supplier, mutator, progressListener);
private void indexes(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); if (table.isView() && IGNORE_VIEW_INDEXES) return; final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getIndexInfo(null, null, table.getId(), false, APPROXIMATE_INDEX); final TableChildMutator<Index> mutator = (index, rs) -> { final String indexName = rs.getString("INDEX_NAME"); index.mutator().setId(indexName); index.mutator().setName(indexName); index.mutator().setUnique(!rs.getBoolean("NON_UNIQUE")); final IndexColumn indexColumn = index.mutator().addNewIndexColumn(); final String columnName = rs.getString("COLUMN_NAME"); indexColumn.mutator().setId(columnName); indexColumn.mutator().setName(columnName); indexColumn.mutator().setOrdinalPosition(rs.getInt("ORDINAL_POSITION")); indexColumn.mutator().setOrderType(getOrderType(rs)); }; final SqlPredicate<ResultSet> filter = rs -> rs.getString("INDEX_NAME") != null; tableChilds( table, Index.class, table.mutator()::addNewIndex, supplier, rsChild -> rsChild.getString("INDEX_NAME"), mutator, filter ); }
}; tableChilds(Index.class, table.mutator()::addNewIndex, supplier, mutator, filter, progressListener);
final String tableName = rsTable.getString("TABLE_NAME"); final String tableType = rsTable.getString("TABLE_TYPE"); table.mutator().setId(tableName); table.mutator().setName(tableName); table.mutator().setView("VIEW".equals(tableType)); .noneMatch(col -> table.primaryKeyColumns().anyMatch(pkc -> DocumentDbUtil.isSame(pkc.findColumn().get(), col))) && table.columns().map(Column::getId).noneMatch("rowid"::equalsIgnoreCase)) { final Column column = table.mutator().addNewColumn(); ))) { final Index pkReplacement = table.mutator().addNewIndex(); final String idxName = md5(oldPks.toString()); final PrimaryKeyColumn pkc = table.mutator().addNewPrimaryKeyColumn(); pkc.mutator().setId("rowid"); pkc.mutator().setName("rowid");
tableChilds(Column.class, table.mutator()::addNewColumn, supplier, mutator, progressListener);