[MXS-648] The MaxScale parser should be more flexible when it comes to system variables. Created: 2016-03-24  Updated: 2017-12-01  Resolved: 2016-12-14

Status: Closed
Project: MariaDB MaxScale
Component/s: Core
Affects Version/s: 1.4.1
Fix Version/s: 2.0.0

Type: New Feature Priority: Major
Reporter: Johan Wikman Assignee: Johan Wikman
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MXS-15 Galera system variables are not parse... Closed

 Description   

Currently MaxScale uses the SQL parser from the embedded library. That means that it will not recognize Galera variables, such as @@wsrep_node_name, but will at that point abort the parsing.

The implication is that, for instance, select @@hostname, @@wsrep_node_name and select @@wsrep_node_name, @@hostname are routed differently. The former is routed to a slave, but the latter to master.

The parser should be more relaxed so that it would not abort the parsing when it encounters an unknown system variable, as long as it looks like one. Then, what impact on the routing decision an unrecognized variable has, should be configurable via a configuration file.

That way the behaviour of MaxScale would not be strictly dependent on it having exactly the same parser as the one in the backend.



 Comments   
Comment by Dipti Joshi (Inactive) [ 2016-07-21 ]

johan.wikmanHow is this impacted by the pluggable parser now (MXS-634)?

Comment by Johan Wikman [ 2016-12-14 ]

The sqlite based parser does not have this problem.

Generated at Thu Feb 08 04:00:53 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.