private <T extends Document> void readChild(Supplier<T> childSupplier, TableChildMutator<T, ResultSet> resultSetMutator, SqlPredicate<ResultSet> filter, ResultSet rsChild) throws SQLException {
        if (SHOW_METADATA) {
            final ResultSetMetaData rsmd = rsChild.getMetaData();
            final int numberOfColumns = rsmd.getColumnCount();
            for (int x = 1; x <= numberOfColumns; x++) {
                final int columnType = rsmd.getColumnType(x);
                LOGGER.info(x + ":" + rsmd.getColumnName(x) + ", " + rsmd.getColumnClassName(x) + ", " + columnType);
            }
        }

        while (rsChild.next()) {
            if (SHOW_METADATA) {
                final ResultSetMetaData rsmd = rsChild.getMetaData();
                final int numberOfColumns = rsmd.getColumnCount();
                for (int x = 1; x <= numberOfColumns; x++) {
                    final Object val = rsChild.getObject(x);
                    LOGGER.info(x + ":" + rsmd.getColumnName(x) + ":'" + val + "'");
                }
            }
            if (filter.test(rsChild)) {
                resultSetMutator.mutate(childSupplier.get(), rsChild);
            } else {
                LOGGER.info("Skipped due to RS filtering. This is normal for some DBMS types.");
            }
        }
    }
@author  Emil Forslund
@author  Per Minborg
@since   3.0.0
runtime-parent/runtime-core/src/main/java/com/speedment/runtime/core/abstracts/AbstractDbmsMetadataHandler.java