public void assertCatalogsComplete(
     CatalogDescription schemaConfig, CatalogDescription databaseConfig) {
   myFoundErrors.clear();
   String[] tables = schemaConfig.getTableNames();
   for (String theTable : tables) {
     TableDescription xmlTableDescription = schemaConfig.getTable(theTable);
     TableDescription databaseTableDescription =
         databaseConfig.getTable(xmlTableDescription.getTableName().toUpperCase());
     if (databaseTableDescription != null) {
       log("Checking " + databaseTableDescription.getTableName() + "...");
       compareSingleIndexDescription(
           xmlTableDescription.getPrimaryKey(), databaseTableDescription.getPrimaryKey());
       compareColumnDescription(xmlTableDescription, databaseTableDescription);
       compareIndexDescription(xmlTableDescription, databaseTableDescription);
       compareForeignKeyDescription(xmlTableDescription, databaseTableDescription);
       checkUnknownColumns(databaseTableDescription, xmlTableDescription.getColumnNames());
     } else {
       assertTrue(
           "Table: " + xmlTableDescription.getTableName() + "... not found in databaseCatalog!",
           false);
     }
   }
   // TODO RSt - views checking not yet implemented
   // todo [RSt] sequences not yet implemented  -> requires DDLScriptSqlMetaFactory
   // todo [RSt] function based indices not yet implemented  -> requires DDLScriptSqlMetaFactory
   // todo [RSt] missing indexes/foreignkeys in schemaConfig not detected -> requires
   // DDLScriptSqlMetaFactory
   throwAssertions();
 }
 /**
  * API - check the database for compatibility with the given XML-DDL configuration. Additional add
  * all DDL in the scripts to the schema.
  *
  * @param options - list with options per script (may be empty) - corresponding to index in
  *     'scripts'
  * @param scripts - scripts for schema (Soll-Zustand) Der Ist-Zustand steht in der Datenbank und
  *     wird mit dem Soll-Zustand verglichen.
  * @throws Exception
  */
 public void checkDatabaseSchema(final List<Options> options, URL[] scripts) throws Exception {
   CatalogDescription expectedCatalog;
   DDLScriptSqlMetaFactory factory = getDDLScriptSqlMetaFactory();
   int idx = 0;
   for (URL script : scripts) {
     Options option = options != null && options.size() > idx ? options.get(idx++) : null;
     factory.fillCatalog(script, option == null ? null : option.format);
   }
   expectedCatalog = factory.getCatalog();
   if (expectedCatalog == null) {
     assertTrue("No expected Catalog: neither schemaconfig nor scripts given!", false);
     throwAssertions();
   } else {
     CatalogDescription databaseCatalog = readDatabaseCatalog(expectedCatalog.getTableNames());
     print("Checking Database Schema " + databaseCatalog.getSchemaName() + "..");
     assertCatalogsComplete(expectedCatalog, databaseCatalog);
     print("Schema : Check OK");
   }
 }