Ok. I see what you mean now - edit the source code of MySQL itself. No thanks
I'm going to do what you say and modularize my code - in fact I would anyway, even without this issue.
The specific difficulty I've been having is as follows. When I so a query like
SELECT * FROM TAB01 WHERE NAME = 'BOB'
I expected it to return only rows in which the NAME column contains the value 'BOB' (i.e. case sensitive - this is what the other SQL databases I've used do) whereas in fact it returns rows with values such as 'Bob' and 'bob' as well. One solution I've found to this is to use
SELECT * FROM TAB01 WHERE BINARY NAME = 'BOB'
(is this the best way? Are there any alternatives?)
But, of course, this produces an error on other database systems because the use of the BINARY keyword in this way is not allowed.
I've also found that if I use BINARY in the CREATE TABLE statement which originally creates the table then the original SELECT does what I want.