1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

Bug#24158 SET PASSWORD in binary log fails under ANSI_QUOTES

Problem: ``SET PASSWORD FOR foo@localhost'' was written into
binary log using double quites: ``SET PASSWORD FOR "foo"@"localhost"...''.
If sql_mode was set to ANSI_QUOTES, parser on slave considered
"foo" and "localhost" as identifiers instead of strigns constants,
so it failed to parse, generated syntax error and slave then stopped.
Fix: changing binary log entries to use single quotes:
``SET PASSWORD FOR 'foo'@'localhost'...'' not to depend on ANSI_QUOTES.


mysql-test/r/rpl_do_grant.result:
  Adding test case
mysql-test/t/rpl_do_grant.test:
  Adding test case
sql/sql_acl.cc:
  Using single quotes instead of double quotes,
  not to fails when sql_mode=ANSI_QUOTES.
This commit is contained in:
unknown
2006-11-30 11:08:23 +04:00
parent d553728bfb
commit fa46c80340
3 changed files with 28 additions and 1 deletions

View File

@@ -1498,7 +1498,7 @@ bool change_password(THD *thd, const char *host, const char *user,
{
query_length=
my_sprintf(buff,
(buff,"SET PASSWORD FOR \"%-.120s\"@\"%-.120s\"=\"%-.120s\"",
(buff,"SET PASSWORD FOR '%-.120s'@'%-.120s'='%-.120s'",
acl_user->user ? acl_user->user : "",
acl_user->host.hostname ? acl_user->host.hostname : "",
new_password));