MXS-1278: Change modes when 'set sql_mode=' is encountered.

The initial setting of sql_mode affects how MaxScale initially
behaves with respect to autocommit.

When 'set sql_mode=[default|oracle];" is encountered, the query
classifier and autocommit modes are adjusted accordingly.
This commit is contained in:
Johan Wikman
2017-06-13 15:27:41 +03:00
parent 8128c74341
commit bea551092d
3 changed files with 16 additions and 0 deletions

View File

@ -112,6 +112,12 @@ session_alloc(SERVICE *service, DCB *client_dcb)
session->stats.connect = time(0);
session->stmt.buffer = NULL;
session->stmt.target = NULL;
MXS_CONFIG *config = config_get_global_options();
// If MaxScale is running in Oracle mode, then autocommit needs to
// initially be off.
bool autocommit = (config->qc_sql_mode == QC_SQL_MODE_ORACLE) ? false : true;
session_set_autocommit(session, autocommit);
/*<
* Associate the session to the client DCB and set the reference count on
* the session to indicate that there is a single reference to the