From: Timo Sirainen Date: Sat, 26 Aug 2017 20:27:21 +0000 (+0300) Subject: dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc X-Git-Tag: 2.2.33.rc1~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=727f9016919f6793b86315cd164c6febb09bf2d8;p=thirdparty%2Fdovecot%2Fcore.git dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc --- diff --git a/src/lib-dict/dict-sql.c b/src/lib-dict/dict-sql.c index 1195c03785..ddeeb6cbe2 100644 --- a/src/lib-dict/dict-sql.c +++ b/src/lib-dict/dict-sql.c @@ -1333,6 +1333,9 @@ static void sql_dict_set(struct dict_transaction_context *_ctx, if (ctx->failed) 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->failed = TRUE; @@ -1393,6 +1396,9 @@ static void sql_dict_atomic_inc(struct dict_transaction_context *_ctx, const struct dict_sql_map *map; ARRAY_TYPE(const_string) values; + if (ctx->prev_set_map != NULL) + sql_dict_prev_set_flush(ctx); + map = sql_dict_find_map(dict, key, &values); if (map == NULL) { i_error("sql dict atomic inc: Invalid/unmapped key: %s", key);