1
0
mirror of https://github.com/MariaDB/server.git synced 2025-06-12 01:53:02 +03:00

Make status of NO_BACKSLASH_ESCAPES mode known to the client so

it can use it to switch to only quoting apostrophes by doubling
them when it is in effect. (Bug #10214)


include/my_sys.h:
  Add new escape_quotes_for_mysql() function
include/mysql_com.h:
  Add SERVER_STATUS_NO_BACKSLASH_ESCAPES
libmysql/libmysql.c:
  Use SERVER_STATUS_NO_BACKSLASH_ESCAPES in server_status to determine
  how mysql_real_escape_string() should do quoting.
mysys/charset.c:
  Add new escape_quotes_for_mysql() function that only quotes
  apostrophes by doubling them up.
sql/set_var.cc:
  Set SERVER_STATUS_NO_BACKSLASH_ESCAPES when MODE_NO_BACKSLASH_ESCAPES
  changes.
sql/sql_class.cc:
  Set SERVER_STATUS_NO_BACKSLASH_ESCAPES when necessary on thread creation.
tests/mysql_client_test.c:
  Add new test for sending NO_BACKSLASH_ESCAPES as part of server_status.
This commit is contained in:
unknown
2005-06-23 18:29:56 -07:00
parent d34e2ccb3e
commit 86d8abdb26
7 changed files with 117 additions and 1 deletions

View File

@ -1616,7 +1616,14 @@ ulong STDCALL
mysql_real_escape_string(MYSQL *mysql, char *to,const char *from,
ulong length)
{
return escape_string_for_mysql(mysql->charset, to, 0, from, length);
if (mysql->server_status & SERVER_STATUS_NO_BACKSLASH_ESCAPES)
{
return escape_quotes_for_mysql(mysql->charset, to, 0, from, length);
}
else
{
return escape_string_for_mysql(mysql->charset, to, 0, from, length);
}
}