summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@mysql.com>2006-05-24 14:12:19 +0200
committerunknown <serg@mysql.com>2006-05-24 14:12:19 +0200
commit80e7938736019853b1b66d5e4edaf36d9a7d522c (patch)
treec209e576f12c0f0f8ec7b5541596d7d1e2845fad
parent9cffcab4e671ff80003d19fddb9a99726b301069 (diff)
parentf02b0d8afd0aaf881b6a823d05ebd0f7fa0c1af3 (diff)
downloadmariadb-git-80e7938736019853b1b66d5e4edaf36d9a7d522c.tar.gz
Merge mysql.com:/data0/mysqldev/my/mysql-4.1.16a-release
into mysql.com:/data0/mysqldev/my/mysql-4.1.20-release tests/mysql_client_test.c: Auto merged configure.in: merged
-rw-r--r--configure.in2
-rw-r--r--mysql-test/r/ctype_sjis.result4
-rw-r--r--mysql-test/t/ctype_sjis.test2
-rw-r--r--sql/sql_lex.cc30
-rw-r--r--tests/mysql_client_test.c21
5 files changed, 23 insertions, 36 deletions
diff --git a/configure.in b/configure.in
index 4b8f30511c5..5cb0ee83a61 100644
--- a/configure.in
+++ b/configure.in
@@ -5,7 +5,7 @@ AC_INIT(sql/mysqld.cc)
AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line!
# remember to also change ndb version below and update version.c in ndb
-AM_INIT_AUTOMAKE(mysql, 4.1.19)
+AM_INIT_AUTOMAKE(mysql, 4.1.20)
AM_CONFIG_HEADER(config.h)
PROTOCOL_VERSION=10
diff --git a/mysql-test/r/ctype_sjis.result b/mysql-test/r/ctype_sjis.result
index d1976a516d2..dab5991b505 100644
--- a/mysql-test/r/ctype_sjis.result
+++ b/mysql-test/r/ctype_sjis.result
@@ -172,6 +172,6 @@ c2h
ab_def
drop table t1;
SET NAMES sjis;
-SELECT HEX('@\\') FROM DUAL;
-HEX('@_\')
+SELECT HEX('@\') FROM DUAL;
+HEX('@\')
8DB2939181408C5C
diff --git a/mysql-test/t/ctype_sjis.test b/mysql-test/t/ctype_sjis.test
index 1d807b5e9a8..01e0b334554 100644
--- a/mysql-test/t/ctype_sjis.test
+++ b/mysql-test/t/ctype_sjis.test
@@ -78,6 +78,6 @@ SET collation_connection='sjis_bin';
--character_set sjis
SET NAMES sjis;
-SELECT HEX('@\\') FROM DUAL;
+SELECT HEX('@\') FROM DUAL;
# End of 4.1 tests
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 16641ad6dd5..fbc8403cbbc 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -295,18 +295,7 @@ static char *get_text(LEX *lex)
found_escape=1;
if (lex->ptr == lex->end_of_query)
return 0;
-#ifdef USE_MB
- int l;
- if (use_mb(cs) &&
- (l = my_ismbchar(cs,
- (const char *)lex->ptr,
- (const char *)lex->end_of_query))) {
- lex->ptr += l;
- continue;
- }
- else
-#endif
- yySkip();
+ yySkip();
}
else if (c == sep)
{
@@ -335,9 +324,6 @@ static char *get_text(LEX *lex)
{
uchar *to;
- /* Re-use found_escape for tracking state of escapes */
- found_escape= 0;
-
for (to=start ; str != end ; str++)
{
#ifdef USE_MB
@@ -351,7 +337,7 @@ static char *get_text(LEX *lex)
continue;
}
#endif
- if (!found_escape && *str == '\\' && str+1 != end)
+ if (*str == '\\' && str+1 != end)
{
switch(*++str) {
case 'n':
@@ -377,20 +363,14 @@ static char *get_text(LEX *lex)
*to++= '\\'; // remember prefix for wildcard
/* Fall through */
default:
- found_escape= 1;
- str--;
+ *to++= *str;
break;
}
}
- else if (!found_escape && *str == sep)
- {
- found_escape= 1;
- }
+ else if (*str == sep)
+ *to++= *str++; // Two ' or "
else
- {
*to++ = *str;
- found_escape= 0;
- }
}
*to=0;
lex->yytoklen=(uint) (to-start);
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c
index 5133a9013d2..3c54bf50c15 100644
--- a/tests/mysql_client_test.c
+++ b/tests/mysql_client_test.c
@@ -11554,25 +11554,26 @@ static void test_bug7990()
static void test_bug8378()
{
#if defined(HAVE_CHARSET_gbk) && !defined(EMBEDDED_LIBRARY)
- MYSQL *lmysql;
+ MYSQL *old_mysql=mysql;
char out[9]; /* strlen(TEST_BUG8378)*2+1 */
- int len;
+ char buf[256];
+ int len, rc;
myheader("test_bug8378");
if (!opt_silent)
fprintf(stdout, "\n Establishing a test connection ...");
- if (!(lmysql= mysql_init(NULL)))
+ if (!(mysql= mysql_init(NULL)))
{
myerror("mysql_init() failed");
exit(1);
}
- if (mysql_options(lmysql, MYSQL_SET_CHARSET_NAME, "gbk"))
+ if (mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk"))
{
myerror("mysql_options() failed");
exit(1);
}
- if (!(mysql_real_connect(lmysql, opt_host, opt_user,
+ if (!(mysql_real_connect(mysql, opt_host, opt_user,
opt_password, current_db, opt_port,
opt_unix_socket, 0)))
{
@@ -11582,12 +11583,18 @@ static void test_bug8378()
if (!opt_silent)
fprintf(stdout, " OK");
- len= mysql_real_escape_string(lmysql, out, TEST_BUG8378_IN, 4);
+ len= mysql_real_escape_string(mysql, out, TEST_BUG8378_IN, 4);
/* No escaping should have actually happened. */
DIE_UNLESS(memcmp(out, TEST_BUG8378_OUT, len) == 0);
- mysql_close(lmysql);
+ sprintf(buf, "SELECT '%s'", out);
+ rc=mysql_real_query(mysql, buf, strlen(buf));
+ myquery(rc);
+
+ mysql_close(mysql);
+
+ mysql=old_mysql;
#endif
}