From 52eafb79268c2be8432663faf0ba02a49c65731a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Tue, 3 Dec 2019 11:06:52 +0200 Subject: [PATCH] Fix binlogfilter capabilities The binlogfilter needs to read results one packet at a time but it needs resultsets to be collected into a single buffer. This behavior is guaranteed implicitly when the binlogrouter is used but is not present when it is used without it. To support the use of the binlogfilter with readconnroute, the filter must properly declare the capabilities. --- server/modules/filter/binlogfilter/binlogfilter.cc | 4 ++-- server/modules/filter/binlogfilter/binlogfiltersession.cc | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/server/modules/filter/binlogfilter/binlogfilter.cc b/server/modules/filter/binlogfilter/binlogfilter.cc index d25c24352..126909783 100644 --- a/server/modules/filter/binlogfilter/binlogfilter.cc +++ b/server/modules/filter/binlogfilter/binlogfilter.cc @@ -27,7 +27,7 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE() MXS_FILTER_VERSION, desc, "V1.0.0", - RCAP_TYPE_NONE, + RCAP_TYPE_STMT_OUTPUT, &BinlogFilter::s_object, NULL, NULL, @@ -81,5 +81,5 @@ json_t* BinlogFilter::diagnostics_json() const // static uint64_t BinlogFilter::getCapabilities() { - return RCAP_TYPE_NONE; + return RCAP_TYPE_STMT_OUTPUT; } diff --git a/server/modules/filter/binlogfilter/binlogfiltersession.cc b/server/modules/filter/binlogfilter/binlogfiltersession.cc index 31ebfaee2..6e13dd355 100644 --- a/server/modules/filter/binlogfilter/binlogfiltersession.cc +++ b/server/modules/filter/binlogfilter/binlogfiltersession.cc @@ -135,6 +135,7 @@ int BinlogFilterSession::routeQuery(GWBUF* pPacket) // Connected client is using SQL mode m_state = COMMAND_MODE; m_reading_checksum = is_master_binlog_checksum(pPacket); + gwbuf_set_type(pPacket, GWBUF_TYPE_COLLECT_RESULT); break; default: