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;
 }