'Generate batches of operations, batched by type of
operation, in arbitrary order.'

def gen_unordered(self):

    operations = [_Run(_INSERT), _Run(_UPDATE), _Run(_DELETE)]
    for (idx, (op_type, operation)) in enumerate(self.ops):
        operations[op_type].add(idx, operation)
    for run in operations:
        if run.ops:
            (yield run)
