diff options
Diffstat (limited to 'sql-common')
-rw-r--r-- | sql-common/client.c | 3 | ||||
-rw-r--r-- | sql-common/mysql_async.c | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/sql-common/client.c b/sql-common/client.c index 184d7983a00..78c5426367c 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -3644,7 +3644,8 @@ error: /* Free alloced memory */ end_server(mysql); mysql_close_free(mysql); - if (!(client_flag & CLIENT_REMEMBER_OPTIONS)) + if (!(client_flag & CLIENT_REMEMBER_OPTIONS) && + !mysql->options.extension->async_context) mysql_close_free_options(mysql); } DBUG_RETURN(0); diff --git a/sql-common/mysql_async.c b/sql-common/mysql_async.c index 80b4f390641..decf48e0e69 100644 --- a/sql-common/mysql_async.c +++ b/sql-common/mysql_async.c @@ -455,7 +455,11 @@ MK_ASYNC_START_BODY( parms.db= db; parms.port= port; parms.unix_socket= unix_socket; - parms.client_flags= client_flags; + /* + async wrapper enforce the CLIENT_REMEMBER_OPTIONS flag to be + functional (otherwise it can't operate) + */ + parms.client_flags= client_flags | CLIENT_REMEMBER_OPTIONS; }, NULL, r_ptr, |