static void do_delete(struct Trans_arg &trans_arg, NdbEventOperation *pOp) { if (!trans_arg.trans) return; NdbOperation *op = trans_arg.trans->getNdbOperation(pOp->getEvent()->getTableName()); op->deleteTuple(); do_equal(op, pOp); trans_arg.bytes_batched++; if (trans_arg.bytes_batched > BATCH_SIZE) { trans_arg.trans->execute(NdbTransaction::NoCommit); trans_arg.bytes_batched = 0; } }
void run_cmp_operation(machinecode *program, int *pc, int *convert, union bit *reg) { switch(program[*pc].opcode) { case 0: /* = reg */ reg_set(reg, program[*pc].dr, do_equal(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (0 + IMD_SIZE): /* = imd */ reg_set(reg, program[*pc].dr, do_equal(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 1: /* =. reg */ reg_set(reg, program[*pc].dr, do_equal_dot(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (1 + IMD_SIZE): /* =. imd */ reg_set(reg, program[*pc].dr, do_equal_dot(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 2: /* > reg */ reg_set(reg, program[*pc].dr, do_greater(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (2 + IMD_SIZE): /* > imd */ reg_set(reg, program[*pc].dr, do_greater(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 3: /* >. reg */ reg_set(reg, program[*pc].dr, do_greater_dot(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (3 + IMD_SIZE): /* >. imd */ reg_set(reg, program[*pc].dr, do_greater_dot(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 4: /* < reg */ reg_set(reg, program[*pc].dr, do_less(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (4 + IMD_SIZE): /* < imd */ reg_set(reg, program[*pc].dr, do_less(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 5: /* <. reg */ reg_set(reg, program[*pc].dr, do_less_dot(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (5 + IMD_SIZE): /* <. imd */ reg_set(reg, program[*pc].dr, do_less_dot(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 6: /* >= reg */ reg_set(reg, program[*pc].dr, do_greater_equal(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (6 + IMD_SIZE): /* >= imd */ reg_set(reg, program[*pc].dr, do_greater_equal(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 7: /* >=. reg */ reg_set(reg, program[*pc].dr, do_greater_equal_dot(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (7 + IMD_SIZE): /* >=. imd */ reg_set(reg, program[*pc].dr, do_greater_equal_dot(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 8: /* <= reg */ reg_set(reg, program[*pc].dr, do_less_equal(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (8 + IMD_SIZE): /* <= imd */ reg_set(reg, program[*pc].dr, do_less_equal(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; case 9: /* <=. reg */ reg_set(reg, program[*pc].dr, do_less_equal_dot(reg_ref(reg,program[*pc].sr1,convert),reg_ref(reg,program[*pc].sr2,convert)), convert); (*pc)++; break; case (9 + IMD_SIZE): /* <=. imd */ reg_set(reg, program[*pc].dr, do_less_equal_dot(reg_ref(reg,program[*pc].sr1,convert),program[*pc].imd), convert); (*pc)++; break; default: fprintf(stderr, "%2x : unknown instruction\n", (program[*pc].info+program[*pc].opcode)); exit(EXIT_FAILURE); } }