@Override public SchemaInfoLevel toOptions() { reduceMap(); return new SchemaInfoLevel(tag, schemaInfoRetrievals); }
@Override public SchemaInfoLevelBuilder fromOptions(final SchemaInfoLevel schemaInfoLevel) { if (schemaInfoLevel == null) { return this; } tag = schemaInfoLevel.getTag(); try { for (final SchemaInfoRetrieval schemaInfoRetrieval: SchemaInfoRetrieval .values()) { final boolean booleanValue = schemaInfoLevel.is(schemaInfoRetrieval); schemaInfoRetrievals.put(schemaInfoRetrieval, booleanValue); } } catch (final Exception e) { LOGGER .log(Level.WARNING, "Could not obtain schema info level settings", e); } return this; }
final boolean retrieveTables = infoLevel.isRetrieveTables(); if (!retrieveTables) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveForeignKeys()) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveForeignKeyDefinitions()) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveIndexes()) if (infoLevel.isRetrievePrimaryKeyDefinitions()) if (infoLevel.isRetrieveTableConstraintInformation()) }); stopWatch.time("isRetrieveTableConstraintDefinitions", () -> { if (infoLevel.isRetrieveTableConstraintDefinitions()) }); stopWatch.time("retrieveTriggerInformation", () -> { if (infoLevel.isRetrieveTriggerInformation()) }); stopWatch.time("retrieveViewInformation", () -> {
private SchemaInfoLevel toInfoLevel(DaSchemaInfoLevel schemaInfoLevel) { SchemaInfoLevel otherInfoLevel = new SchemaInfoLevel(); otherInfoLevel.setRetrieveDatabaseInfo(true); otherInfoLevel.setRetrieveAdditionalJdbcDriverInfo(false); // unneeded for our use cases and causes some problems w/ some JDBC drivers otherInfoLevel.setRetrieveTables(schemaInfoLevel.isRetrieveTables()); otherInfoLevel.setRetrieveAdditionalTableAttributes(schemaInfoLevel.isRetrieveTables()); otherInfoLevel.setRetrieveTableColumns(schemaInfoLevel.isRetrieveTableColumns()); otherInfoLevel.setRetrieveAdditionalColumnAttributes(schemaInfoLevel.isRetrieveTableColumns()); otherInfoLevel.setRetrieveTableConstraintDefinitions(schemaInfoLevel.isRetrieveTableCheckConstraints()); otherInfoLevel.setRetrieveTableConstraintInformation(schemaInfoLevel.isRetrieveTableCheckConstraints()); otherInfoLevel.setRetrieveIndexes(schemaInfoLevel.isRetrieveTableIndexes()); otherInfoLevel.setRetrieveForeignKeys(schemaInfoLevel.isRetrieveTableForeignKeys()); otherInfoLevel.setRetrieveViewInformation(schemaInfoLevel.isRetrieveViewDetails()); otherInfoLevel.setRetrieveRoutines(schemaInfoLevel.isRetrieveRoutines()); otherInfoLevel.setRetrieveRoutineInformation(schemaInfoLevel.isRetrieveRoutineDetails()); otherInfoLevel.setRetrieveRoutineColumns(schemaInfoLevel.isRetrieveRoutineDetails()); otherInfoLevel.setRetrieveSequenceInformation(schemaInfoLevel.isRetrieveSequences()); otherInfoLevel.setRetrieveUserDefinedColumnDataTypes(schemaInfoLevel.isRetrieveUserDefinedColumnDataTypes()); // TODO see if this takes care of domains otherInfoLevel.setRetrieveTriggerInformation(false); // will implement this later
final boolean retrieveTables = infoLevel.isRetrieveTables(); if (!retrieveTables) if (infoLevel.isRetrieveTableColumns()) if (!infoLevel.isRetrieveForeignKeys()) if (!isView && infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveIndices()) if (infoLevel.isRetrieveForeignKeys()) if (infoLevel.isRetrieveTableConstraintInformation()) if (infoLevel.isRetrieveTriggerInformation()) if (infoLevel.isRetrieveViewInformation()) if (infoLevel.isRetrieveTableDefinitionsInformation()) if (infoLevel.isRetrieveIndexInformation()) if (infoLevel.isRetrieveAdditionalTableAttributes()) if (infoLevel.isRetrieveTablePrivileges()) if (infoLevel.isRetrieveAdditionalColumnAttributes())
final boolean retrieveDatabaseInfo = infoLevel.isRetrieveDatabaseInfo(); if (!retrieveDatabaseInfo) if (infoLevel.isRetrieveAdditionalDatabaseInfo()) if (infoLevel.isRetrieveServerInfo()) if (infoLevel.isRetrieveAdditionalJdbcDriverInfo())
/** * Creates a new SchemaInfoLevel for minimum schema information. * * @return New SchemaInfoLevel */ public static SchemaInfoLevel minimum() { final SchemaInfoLevel minimum = new SchemaInfoLevel(); minimum.setRetrieveSchemaCrawlerInfo(true); minimum.setRetrieveDatabaseInfo(true); minimum.setRetrieveJdbcDriverInfo(true); minimum.setRetrieveTables(true); minimum.setRetrieveRoutines(true); minimum.setTag("minimum"); return minimum; }
database); if (infoLevel.isRetrieveSchemaCrawlerInfo()) if (infoLevel.isRetrieveAdditionalSchemaCrawlerInfo()) if (infoLevel.isRetrieveDatabaseInfo()) if (infoLevel.isRetrieveAdditionalDatabaseInfo()) if (infoLevel.isRetrieveJdbcDriverInfo()) if (infoLevel.isRetrieveAdditionalJdbcDriverInfo())
if (infoLevel.isRetrieveColumnDataTypes()) if (infoLevel.isRetrieveUserDefinedColumnDataTypes())
final boolean retrieveDatabaseInfo = infoLevel.isRetrieveDatabaseInfo(); if (!retrieveDatabaseInfo) if (infoLevel.isRetrieveAdditionalDatabaseInfo()) if (infoLevel.isRetrieveServerInfo()) if (infoLevel.isRetrieveAdditionalJdbcDriverInfo())
if (infoLevel.isRetrieveColumnDataTypes()) if (infoLevel.isRetrieveUserDefinedColumnDataTypes())
final boolean retrieveTables = infoLevel.isRetrieveTables(); if (!retrieveTables) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveForeignKeys()) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveForeignKeyDefinitions()) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveIndexes()) if (infoLevel.isRetrievePrimaryKeyDefinitions()) if (infoLevel.isRetrieveTableConstraintInformation()) }); stopWatch.time("isRetrieveTableConstraintDefinitions", () -> { if (infoLevel.isRetrieveTableConstraintDefinitions()) }); stopWatch.time("retrieveTriggerInformation", () -> { if (infoLevel.isRetrieveTriggerInformation()) }); stopWatch.time("retrieveViewInformation", () -> {
final boolean retrieveDatabaseInfo = infoLevel.isRetrieveDatabaseInfo(); if (!retrieveDatabaseInfo) if (infoLevel.isRetrieveAdditionalDatabaseInfo()) if (infoLevel.isRetrieveServerInfo()) if (infoLevel.isRetrieveAdditionalJdbcDriverInfo())
private static void crawlColumnDataTypes(final MutableDatabase database, final RetrieverConnection retrieverConnection, final SchemaCrawlerOptions options) throws SchemaCrawlerException { try { final SchemaInfoLevel infoLevel = options.getSchemaInfoLevel(); final DatabaseInfoRetriever retriever = new DatabaseInfoRetriever(retrieverConnection, database); if (infoLevel.isRetrieveColumnDataTypes()) { retriever.retrieveSystemColumnDataTypes(); } if (infoLevel.isRetrieveUserDefinedColumnDataTypes()) { for (final Schema schema: retriever.getSchemas()) { retriever.retrieveUserDefinedColumnDataTypes(schema.getCatalogName(), schema.getName()); } } } catch (final SQLException e) { throw new SchemaCrawlerException("Exception retrieving column data type information", e); } }
@Override public SchemaInfoLevelBuilder fromOptions(final SchemaInfoLevel schemaInfoLevel) { if (schemaInfoLevel == null) { return this; } tag = schemaInfoLevel.getTag(); try { for (final SchemaInfoRetrieval schemaInfoRetrieval: SchemaInfoRetrieval .values()) { final boolean booleanValue = schemaInfoLevel.is(schemaInfoRetrieval); schemaInfoRetrievals.put(schemaInfoRetrieval, booleanValue); } } catch (final Exception e) { LOGGER .log(Level.WARNING, "Could not obtain schema info level settings", e); } return this; }
@Override public SchemaInfoLevel toOptions() { reduceMap(); return new SchemaInfoLevel(tag, schemaInfoRetrievals); }
final boolean retrieveTables = infoLevel.isRetrieveTables(); if (!retrieveTables) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveForeignKeys()) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveForeignKeyDefinitions()) if (infoLevel.isRetrieveTableColumns()) if (infoLevel.isRetrieveIndexes()) if (infoLevel.isRetrievePrimaryKeyDefinitions()) if (infoLevel.isRetrieveTableConstraintInformation()) }); stopWatch.time("isRetrieveTableConstraintDefinitions", () -> { if (infoLevel.isRetrieveTableConstraintDefinitions()) }); stopWatch.time("retrieveTriggerInformation", () -> { if (infoLevel.isRetrieveTriggerInformation()) }); stopWatch.time("retrieveViewInformation", () -> {
final boolean retrieveDatabaseInfo = infoLevel.isRetrieveDatabaseInfo(); if (!retrieveDatabaseInfo) if (infoLevel.isRetrieveAdditionalDatabaseInfo()) if (infoLevel.isRetrieveServerInfo()) if (infoLevel.isRetrieveAdditionalJdbcDriverInfo())