]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sat, 26 Aug 2017 20:27:21 +0000 (23:27 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 8 Sep 2017 10:18:32 +0000 (13:18 +0300)
src/lib-dict/dict-sql.c

index a47789aa759354b03c8ba672fc2bd8a0a8ed4435..c14425580fa48a10e0a2486410d777556bcea2cb 100644 (file)
@@ -1324,6 +1324,9 @@ static void sql_dict_set(struct dict_transaction_context *_ctx,
        if (ctx->error != NULL)
                return;
 
+       if (ctx->prev_inc_map != NULL)
+               sql_dict_prev_inc_flush(ctx);
+
        map = sql_dict_find_map(dict, key, &values);
        if (map == NULL) {
                ctx->error = i_strdup_printf(
@@ -1387,6 +1390,9 @@ static void sql_dict_atomic_inc(struct dict_transaction_context *_ctx,
        if (ctx->error != NULL)
                return;
 
+       if (ctx->prev_set_map != NULL)
+               sql_dict_prev_set_flush(ctx);
+
        map = sql_dict_find_map(dict, key, &values);
        if (map == NULL) {
                ctx->error = i_strdup_printf(