Merge branch '2.2' into develop
This commit is contained in:
@ -307,6 +307,7 @@ typedef enum
|
|||||||
MXS_COM_STMT_RESET = 26,
|
MXS_COM_STMT_RESET = 26,
|
||||||
MXS_COM_SET_OPTION = 27,
|
MXS_COM_SET_OPTION = 27,
|
||||||
MXS_COM_STMT_FETCH = 28,
|
MXS_COM_STMT_FETCH = 28,
|
||||||
|
MXS_COM_STMT_BULK_EXECUTE = 0xfa,
|
||||||
MXS_COM_DAEMON,
|
MXS_COM_DAEMON,
|
||||||
MXS_COM_END
|
MXS_COM_END
|
||||||
} mxs_mysql_cmd_t;
|
} mxs_mysql_cmd_t;
|
||||||
|
@ -703,6 +703,10 @@ add_test_executable(mxs1828_double_local_infile.cpp mxs1828_double_local_infile
|
|||||||
# https://jira.mariadb.org/browse/MXS-1831
|
# https://jira.mariadb.org/browse/MXS-1831
|
||||||
add_test_executable(mxs1831_unknown_param.cpp mxs1831_unknown_param replication LABELS REPL_BACKEND)
|
add_test_executable(mxs1831_unknown_param.cpp mxs1831_unknown_param replication LABELS REPL_BACKEND)
|
||||||
|
|
||||||
|
# MXS-1873: Large session commands cause errors
|
||||||
|
# https://jira.mariadb.org/browse/MXS-1873
|
||||||
|
add_test_executable(mxs1873_large_sescmd.cpp mxs1873_large_sescmd replication LABELS readwritesplit REPL_BACKEND)
|
||||||
|
|
||||||
# 'namedserverfilter' test
|
# 'namedserverfilter' test
|
||||||
add_test_executable(namedserverfilter.cpp namedserverfilter namedserverfilter LABELS namedserverfilter LIGHT REPL_BACKEND)
|
add_test_executable(namedserverfilter.cpp namedserverfilter namedserverfilter LABELS namedserverfilter LIGHT REPL_BACKEND)
|
||||||
|
|
||||||
|
20
maxscale-system-test/mxs1873_large_sescmd.cpp
Normal file
20
maxscale-system-test/mxs1873_large_sescmd.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* MXS-1873: Large session commands cause errors
|
||||||
|
*
|
||||||
|
* https://jira.mariadb.org/browse/MXS-1873
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "testconnections.h"
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
TestConnections test(argc, argv);
|
||||||
|
|
||||||
|
test.maxscales->connect();
|
||||||
|
test.try_query(test.maxscales->conn_rwsplit[0],
|
||||||
|
"SET STATEMENT max_statement_time=30 FOR SELECT seq FROM seq_0_to_100000");
|
||||||
|
test.try_query(test.maxscales->conn_rwsplit[0], "SELECT 1");
|
||||||
|
test.maxscales->disconnect();
|
||||||
|
|
||||||
|
return test.global_result;
|
||||||
|
}
|
@ -38,6 +38,7 @@ const char* qc_mysql_get_current_db(MXS_SESSION* session)
|
|||||||
bool qc_mysql_is_ps_command(uint8_t cmd)
|
bool qc_mysql_is_ps_command(uint8_t cmd)
|
||||||
{
|
{
|
||||||
return cmd == MXS_COM_STMT_EXECUTE ||
|
return cmd == MXS_COM_STMT_EXECUTE ||
|
||||||
|
cmd == MXS_COM_STMT_BULK_EXECUTE ||
|
||||||
cmd == MXS_COM_STMT_SEND_LONG_DATA ||
|
cmd == MXS_COM_STMT_SEND_LONG_DATA ||
|
||||||
cmd == MXS_COM_STMT_CLOSE ||
|
cmd == MXS_COM_STMT_CLOSE ||
|
||||||
cmd == MXS_COM_STMT_FETCH ||
|
cmd == MXS_COM_STMT_FETCH ||
|
||||||
|
@ -1606,6 +1606,7 @@ bool mxs_mysql_is_prep_stmt_ok(GWBUF *buffer)
|
|||||||
bool mxs_mysql_is_ps_command(uint8_t cmd)
|
bool mxs_mysql_is_ps_command(uint8_t cmd)
|
||||||
{
|
{
|
||||||
return cmd == MXS_COM_STMT_EXECUTE ||
|
return cmd == MXS_COM_STMT_EXECUTE ||
|
||||||
|
cmd == MXS_COM_STMT_BULK_EXECUTE ||
|
||||||
cmd == MXS_COM_STMT_SEND_LONG_DATA ||
|
cmd == MXS_COM_STMT_SEND_LONG_DATA ||
|
||||||
cmd == MXS_COM_STMT_CLOSE ||
|
cmd == MXS_COM_STMT_CLOSE ||
|
||||||
cmd == MXS_COM_STMT_FETCH ||
|
cmd == MXS_COM_STMT_FETCH ||
|
||||||
|
@ -349,11 +349,11 @@ bool RWSplitSession::route_session_write(GWBUF *querybuf, uint8_t command, uint3
|
|||||||
bool expecting_response = mxs_mysql_command_will_respond(command);
|
bool expecting_response = mxs_mysql_command_will_respond(command);
|
||||||
int nsucc = 0;
|
int nsucc = 0;
|
||||||
uint64_t lowest_pos = id;
|
uint64_t lowest_pos = id;
|
||||||
|
gwbuf_set_type(querybuf, GWBUF_TYPE_COLLECT_RESULT);
|
||||||
|
|
||||||
if (qc_query_is_type(type, QUERY_TYPE_PREPARE_NAMED_STMT) ||
|
if (qc_query_is_type(type, QUERY_TYPE_PREPARE_NAMED_STMT) ||
|
||||||
qc_query_is_type(type, QUERY_TYPE_PREPARE_STMT))
|
qc_query_is_type(type, QUERY_TYPE_PREPARE_STMT))
|
||||||
{
|
{
|
||||||
gwbuf_set_type(querybuf, GWBUF_TYPE_COLLECT_RESULT);
|
|
||||||
m_qc.ps_store(querybuf, id);
|
m_qc.ps_store(querybuf, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user