| 2742 | } |
| 2743 | |
| 2744 | static const char *db_commit_int(Lua L, int *rc) |
| 2745 | { |
| 2746 | SP sp = getsp(L); |
| 2747 | if (sp->clnt->ctrl_sqlengine != SQLENG_INTRANS_STATE && |
| 2748 | sp->clnt->ctrl_sqlengine != SQLENG_STRT_STATE) { |
| 2749 | sql_set_sqlengine_state(sp->clnt, __FILE__, __LINE__, SQLENG_WRONG_STATE); |
| 2750 | return no_transaction(); |
| 2751 | } |
| 2752 | reset_stmts(sp); |
| 2753 | sql_set_sqlengine_state(sp->clnt, __FILE__, __LINE__, SQLENG_FNSH_STATE); |
| 2754 | if ((*rc = handle_sql_commitrollback(sp->thd, sp->clnt, TRANS_CLNTCOMM_NOREPLY)) == 0) { |
| 2755 | free(sp->error); |
| 2756 | sp->error = NULL; |
| 2757 | } else { |
| 2758 | luabb_error(L, sp, errstat_get_str(&sp->clnt->osql.xerr)); |
| 2759 | } |
| 2760 | sp->clnt->ready_for_heartbeats = 1; /* Don't stop sending heartbeats. */ |
| 2761 | if ((sp->in_parent_trans == 0) && sp->make_parent_trans) { |
| 2762 | int tmp; |
| 2763 | if (db_begin_int(L, &tmp) == 0) sp->in_parent_trans = 1; |
| 2764 | } |
| 2765 | sp->clnt->osql.tran_ops = 0; |
| 2766 | return NULL; |
| 2767 | } |
| 2768 | |
| 2769 | static const char *db_rollback_int(Lua L, int *rc) |
| 2770 | { |
no test coverage detected