[MDEV-31807] START SLAVE ,,,,,, is accepted as valid syntax Created: 2023-07-31  Updated: 2023-11-28

Status: Open
Project: MariaDB Server
Component/s: Parser
Affects Version/s: 10.11.4
Fix Version/s: 10.4, 10.5, 10.6, 10.11, 11.0, 11.1

Type: Bug Priority: Minor
Reporter: markus makela Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   

MariaDB [test]> START SLAVE ,,,,,,;
Query OK, 0 rows affected, 1 warning (0.000 sec)

The same also seems to apply to STOP SLAVE.

Looking at the code, we see that the syntax for it is defined as follows:

slave_thread_opt_list:
          slave_thread_opt
	| slave_thread_opt_list ',' slave_thread_opt
	;
 
slave_thread_opt:
          /*empty*/ {}
        | SQL_THREAD   { Lex->slave_thd_opt|=SLAVE_SQL; }
        | RELAY_THREAD { Lex->slave_thd_opt|=SLAVE_IO; }
        ;

I believe the empty value should be in slave_thread_opt_list and not in slave_thread_opt; this way an empty value or a list of SQL or IO thread variables is accepted.



 Comments   
Comment by Kristian Nielsen [ 2023-07-31 ]

Agree that this was probably not intended. But I'd suggest to not change it. It doesn't seem to hurt anything, and it only risks breaking some odd script out there that accidentally ended up with an extra comma.

Comment by markus makela [ 2023-07-31 ]

Yes, this is the definition of a cosmetic issue. Perhaps mentioning it in the documentation for the START SLAVE command is enough as a fix.

Generated at Thu Feb 08 10:26:37 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.