protected function createIterator($reverse = FALSE)
{
$original_tables = $this->originalDataSet->getIterator($reverse);
$new_tables = array();
foreach ($original_tables as $table) {
/* @var $table PHPUnit_Extensions_Database_DataSet_ITable */
$tableName = $table->getTableMetaData()->getTableName();
if (!in_array($tableName, $this->includeTables) && !empty($this->includeTables) || in_array($tableName, $this->excludeTables)) {
continue;
} elseif (!empty($this->excludeColumns[$tableName]) || !empty($this->includeColumns[$tableName])) {
$new_table = new PHPUnit_Extensions_Database_DataSet_TableFilter($table);
if (!empty($this->includeColumns[$tableName])) {
$new_table->addIncludeColumns($this->includeColumns[$tableName]);
}
if (!empty($this->excludeColumns[$tableName])) {
$new_table->addExcludeColumns($this->excludeColumns[$tableName]);
}
$new_tables[] = $new_table;
} else {
$new_tables[] = $table;
}
}
return new PHPUnit_Extensions_Database_DataSet_DefaultTableIterator($new_tables);
}