Hi, Sanja! On Mar 17, sanja@mariadb.com wrote:
revision-id: 622611bc6a9371803f349d8cf4de6538ebbcdb37 parent(s): a21ef88d2a358904f0cdf9cadc701cb263b5e317 committer: Oleksandr Byelkin branch nick: server timestamp: 2015-03-17 14:40:25 +0100 message:
MDEV-7012: SET STATEMENT character_set_client, character_set_connection, character_set_filesystem, collation_connection have no effect
Variables of simple SET STATEMENT set just after assigning
(changes in test suite result checked)
While it's a neat innovative trick, I don't think we should execute statements (and setting variables is executing) from the parser. It's very fragile and breaks in various corner cases, resulting in unfixable gotchas. For example, how would the following work: CREATE PROCEDURE foo BEGIN SET STATEMENT CHARACTER_SET_CONNECTION = latin5 FOR SELECT 'фи'; END So, I'd prefer a simple rule "first - the statement is parsed, then it is executed", meaning no effects from the statement execution can affect how it was parsed. Regards, Sergei