Mercurial > dovecot > core-2.2
changeset 19202:59e4fcaa0f76
lib-sql: sqlpool needs to change transaction queries' transaction pointer
Otherwise query->trans points to the sqlpool's transaction, while our
backends want it to point to the backend's transaction.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 24 Sep 2015 01:00:45 +0300 |
parents | b8d2cbd6583b |
children | 9ceeb1a5c492 |
files | src/lib-sql/driver-sqlpool.c |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-sql/driver-sqlpool.c Wed Sep 23 23:01:27 2015 +0300 +++ b/src/lib-sql/driver-sqlpool.c Thu Sep 24 01:00:45 2015 +0300 @@ -126,12 +126,15 @@ struct sql_db *conndb) { struct sql_transaction_context *conn_trans; + struct sql_transaction_query *query; conn_trans = sql_transaction_begin(conndb); /* backend will use our queries list (we might still append more queries to the list) */ conn_trans->head = trans->ctx.head; conn_trans->tail = trans->ctx.tail; + for (query = conn_trans->head; query != NULL; query = query->next) + query->trans = conn_trans; return conn_trans; }