diff options
author | unknown <jimw@mysql.com> | 2005-06-23 18:29:56 -0700 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-06-23 18:29:56 -0700 |
commit | 86d8abdb26e35a5920eea0e55fadd89295f05df6 (patch) | |
tree | b5f6e8ddaa771fd03ce4b741cc2723ea99b358ca /libmysql | |
parent | d34e2ccb3ea51811552f3e87ad68ee8673804da1 (diff) | |
download | mariadb-git-86d8abdb26e35a5920eea0e55fadd89295f05df6.tar.gz |
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.
Diffstat (limited to 'libmysql')
-rw-r--r-- | libmysql/libmysql.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 8ee11519615..ce47ea21485 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -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); + } } |