summaryrefslogtreecommitdiff
path: root/libmysql
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2005-06-23 18:29:56 -0700
committerunknown <jimw@mysql.com>2005-06-23 18:29:56 -0700
commit86d8abdb26e35a5920eea0e55fadd89295f05df6 (patch)
treeb5f6e8ddaa771fd03ce4b741cc2723ea99b358ca /libmysql
parentd34e2ccb3ea51811552f3e87ad68ee8673804da1 (diff)
downloadmariadb-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.c9
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);
+ }
}