[MXS-448] Better handling of queries in the binlog router Created: 2015-11-04 Updated: 2019-09-04 Resolved: 2019-09-04 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | binlogrouter |
| Affects Version/s: | 1.2.1 |
| Fix Version/s: | N/A |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Simon J Mudd | Assignee: | Todd Stoffel (Inactive) |
| Resolution: | Won't Do | Votes: | 2 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
This is a general comment and a known issue of the current code but I think it's worth making the issue more visible as it may cause some confusion. A colleague recently issued this query to a binlog server:
The result as you see gives a single column resultset whereas the query requested 3 columns of data. The parsing of the statements by the binlog router is rather basic at the moment. It would be good if this could be more complete, and at least in the case above, if the query does not match what the binlog router understands it should probably give an error rather than partially respond with an answer as that may confuse the client (in this case orchestrator). So please consider improving the parsing of the statements and reporting any issues appropriately. Note: the BLR is not a RDBMS so it's not expected that it can understand all SQL commands. All that we want is that it is able to parse enough commands to be able to provide the right responses to a slave and also some status output needed for monitoring or some commands needed to manage the BLR's state. |
| Comments |
| Comment by Adam Szkoda [ 2017-01-26 ] | |||
|
Coming here from https://groups.google.com/forum/#!topic/maxscale/P1tSEfi8eIk . One more reason why it would be desirable to extend the SQL parser is to support using binlog router along with Maxwell (a binlog to JSON to Kafka adapter, in a nutshell). It (more specifically, its dependency, mysql-connector-j ) expects MaxScale to handle a query for retrieving server variables:
and it currently (MaxScale 2.0.3) fails with:
because MaxScale does not know about these variables. | |||
| Comment by Todd Stoffel (Inactive) [ 2019-09-04 ] | |||
|
Will be eliminated by newer binlog utility. |