/**
  * @param databaseTableDescription - table for columns actually in the database
  * @param configColumns - column names of configurated columns
  */
 private void checkUnknownColumns(
     TableDescription databaseTableDescription, String[] configColumns) {
   Collection<String> c = getUnmappedColumns(databaseTableDescription.getTableName());
   String[] unmappedColumns = c.toArray(new String[0]);
   // check that unmapped columns exist in database
   for (String unmapped : c) {
     assertTrue(
         "Column: "
             + databaseTableDescription.getTableName()
             + "."
             + unmapped
             + " [declared as unknown, but] not in database",
         databaseTableDescription.getColumn(unmapped) != null);
   }
   String[] dbColumns = databaseTableDescription.getColumnNames();
   for (String theDbColumn : dbColumns) {
     if (!containsIgnoreCase(unmappedColumns, theDbColumn)) {
       assertTrue(
           "Table "
               + databaseTableDescription.getTableName()
               + " contains unknown column: '"
               + theDbColumn
               + "'",
           containsIgnoreCase(configColumns, theDbColumn));
     }
   }
 }
 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();
 }