summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2010-02-26 17:40:01 +0400
committerSergey Glukhov <Sergey.Glukhov@sun.com>2010-02-26 17:40:01 +0400
commit5d9a74f22dfefd27d0bb62a1829a2484741bbf8a (patch)
treef0ae736e5674de5566766cbec76784fcfad888f9 /sql/item.cc
parent3fcb25d806c84c41f85f3bb6b27275a42b3cb8b5 (diff)
downloadmariadb-git-5d9a74f22dfefd27d0bb62a1829a2484741bbf8a.tar.gz
Bug#47669 Query showed by EXPLAIN EXTENDED gives different result from original query
Item_field::print method does not take into account fields whose values may be null. The fix is to print 'NULL' if field value is null.
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 934e897f923..04496338b8f 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -5690,9 +5690,14 @@ void Item_field::print(String *str, enum_query_type query_type)
char buff[MAX_FIELD_WIDTH];
String tmp(buff,sizeof(buff),str->charset());
field->val_str(&tmp);
- str->append('\'');
- str->append(tmp);
- str->append('\'');
+ if (field->is_null())
+ str->append("NULL");
+ else
+ {
+ str->append('\'');
+ str->append(tmp);
+ str->append('\'');
+ }
return;
}
Item_ident::print(str, query_type);