24
24
#include <drizzled/current_session.h>
25
25
#include <drizzled/item/ident.h>
27
29
const uint32_t NO_CACHED_FIELD_INDEX= UINT32_MAX;
29
31
Item_ident::Item_ident(Name_resolution_context *context_arg,
112
114
void Item_ident::print(String *str,
115
char d_name_buff[MAX_ALIAS_NAME], t_name_buff[MAX_ALIAS_NAME];
116
const char *d_name= db_name, *t_name= table_name;
117
if (lower_case_table_names== 1 ||
118
(lower_case_table_names == 2 && !alias_name_used))
120
if (table_name && table_name[0])
122
strcpy(t_name_buff, table_name);
123
my_casedn_str(files_charset_info, t_name_buff);
126
if (db_name && db_name[0])
128
strcpy(d_name_buff, db_name);
129
my_casedn_str(files_charset_info, d_name_buff);
117
string d_name, t_name;
119
if (table_name && table_name[0])
121
t_name.assign(table_name);
122
if (lower_case_table_names== 1 ||
123
(lower_case_table_names == 2 && !alias_name_used))
124
// Keeping the std:: here, since Item_ident has a transform method
125
std::transform(t_name.begin(), t_name.end(),
126
t_name.begin(), ::tolower);
129
if (db_name && db_name[0])
131
d_name.assign(db_name);
132
if (lower_case_table_names== 1 ||
133
(lower_case_table_names == 2 && !alias_name_used))
134
// Keeping the std:: prefix here, since Item_ident has a transform method
135
std::transform(d_name.begin(), d_name.end(),
136
d_name.begin(), ::tolower);
134
139
if (!table_name || !field_name || !field_name[0])
142
147
if (db_name && db_name[0] && !alias_name_used)
145
str->append_identifier(d_name, (uint)strlen(d_name));
150
str->append_identifier(d_name.c_str(), d_name.length());
146
151
str->append('.');
148
str->append_identifier(t_name, (uint)strlen(t_name));
153
str->append_identifier(t_name.c_str(), t_name.length());
149
154
str->append('.');
150
155
str->append_identifier(field_name, (uint)strlen(field_name));
154
159
if (table_name[0])
156
str->append_identifier(t_name, (uint) strlen(t_name));
161
str->append_identifier(t_name.c_str(), t_name.length());
157
162
str->append('.');
158
163
str->append_identifier(field_name, (uint) strlen(field_name));