rollback,  DataFilter must accept different source type, override source() with different type throw ErrorException otherwise