summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-03-21 23:41:28 +0200
committerunknown <monty@mysql.com>2005-03-21 23:41:28 +0200
commit802c41e04d0b4bb193abfff1b7084d3a6c971df6 (patch)
tree0dc25c2b0b090f45da0eec51acfbcb6d42180cd6 /sql/handler.cc
parent2ba3544f0e053d95e82b9a899fd9b86cbb19b9ce (diff)
downloadmariadb-git-802c41e04d0b4bb193abfff1b7084d3a6c971df6.tar.gz
Cleanups during review of code
Fixed newly introduced bug in rollup client/mysqldump.c: Safer buffer allocation Removed wrong assert mysql-test/r/olap.result: more tests mysql-test/t/olap.test: more tests sql/handler.cc: Simple cleanup Fixed wrong check for next digit (wrong debug output) sql/item.cc: Replace shrink_to_length() with mark_as_const() as the former allowed one to do changes to the string sql/item_sum.cc: Change reference to pointer Trivial optimzation of testing 'allways_null' sql/mysqld.cc: Proper indentation of comment sql/sql_select.cc: Fixed newly introduced bug in rollup sql/sql_string.h: Remove not needed 'shrink_to_length()' Added 'mark_as_const()' to be used when one want to ensure that a string is not changed
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index df0d7704163..98fc2be2f8a 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -762,14 +762,13 @@ static char* xid_to_str(char *buf, XID *xid)
for (i=0; i < xid->gtrid_length+xid->bqual_length; i++)
{
uchar c=(uchar)xid->data[i];
- bool is_next_dig;
+ /* is_next_dig is set if next character is a number */
+ bool is_next_dig= FALSE;
if (i < XIDDATASIZE)
{
- char ch=xid->data[i+1];
- is_next_dig=(c >= '0' && c <='9');
+ char ch= xid->data[i+1];
+ is_next_dig= (ch >= '0' && ch <='9');
}
- else
- is_next_dig=FALSE;
if (i == xid->gtrid_length)
{
*s++='\'';
@@ -782,6 +781,11 @@ static char* xid_to_str(char *buf, XID *xid)
if (c < 32 || c > 126)
{
*s++='\\';
+ /*
+ If next character is a number, write current character with
+ 3 octal numbers to ensure that the next number is not seen
+ as part of the octal number
+ */
if (c > 077 || is_next_dig)
*s++=_dig_vec_lower[c >> 6];
if (c > 007 || is_next_dig)