changeset 22524:c5a2743428a0

dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sat, 26 Aug 2017 23:27:21 +0300
parents e7d2548700b9
children 7c8bf126fd39
files src/lib-dict/dict-sql.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-dict/dict-sql.c	Sat Aug 26 23:17:45 2017 +0300
+++ b/src/lib-dict/dict-sql.c	Sat Aug 26 23:27:21 2017 +0300
@@ -1333,6 +1333,9 @@
 	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 @@
 	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);