summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-09-07 19:58:02 +0300
committerunknown <bell@sanja.is.com.ua>2004-09-07 19:58:02 +0300
commit38404d90bec8810e664505678b039d8de8a10fb9 (patch)
tree178859a256acafc30321602eb355b2dc4b4ee972 /sql/item.cc
parent3db980958a8edc994d6e41d0c0f9d72225826162 (diff)
downloadmariadb-git-38404d90bec8810e664505678b039d8de8a10fb9.tar.gz
ixed table and db name of fields incase of lower_case_table_names (BUG#5154)
sql/item.cc: fixed table and db name of fields incase of lower_case_table_names
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc24
1 files changed, 21 insertions, 3 deletions
diff --git a/sql/item.cc b/sql/item.cc
index efd94716dc7..a1b308483ab 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -421,6 +421,24 @@ const char *Item_ident::full_name() const
void Item_ident::print(String *str)
{
THD *thd= current_thd;
+ char d_name_buff[MAX_ALIAS_NAME], t_name_buff[MAX_ALIAS_NAME];
+ const char *d_name= db_name, *t_name= table_name;
+ if (lower_case_table_names)
+ {
+ if (table_name && table_name[0])
+ {
+ strmov(t_name_buff, table_name);
+ my_casedn_str(files_charset_info, t_name_buff);
+ t_name= t_name_buff;
+ }
+ if (db_name && db_name[0])
+ {
+ strmov(d_name_buff, db_name);
+ my_casedn_str(files_charset_info, d_name_buff);
+ d_name= d_name_buff;
+ }
+ }
+
if (!table_name || !field_name)
{
const char *nm= field_name ? field_name : name ? name : "tmp_field";
@@ -429,9 +447,9 @@ void Item_ident::print(String *str)
}
if (db_name && db_name[0])
{
- append_identifier(thd, str, db_name, strlen(db_name));
+ append_identifier(thd, str, d_name, strlen(d_name));
str->append('.');
- append_identifier(thd, str, table_name, strlen(table_name));
+ append_identifier(thd, str, t_name, strlen(t_name));
str->append('.');
append_identifier(thd, str, field_name, strlen(field_name));
}
@@ -439,7 +457,7 @@ void Item_ident::print(String *str)
{
if (table_name[0])
{
- append_identifier(thd, str, table_name, strlen(table_name));
+ append_identifier(thd, str, t_name, strlen(t_name));
str->append('.');
append_identifier(thd, str, field_name, strlen(field_name));
}