~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/ident.cc

  • Committer: Mark Atwood
  • Date: 2011-07-13 22:28:29 UTC
  • mfrom: (2318.7.25 refactor1)
  • Revision ID: me@mark.atwood.name-20110713222829-sswp061b5ts7tc1k
mergeĀ lp:~olafvdspek/drizzle/refactor1

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
   alias_name_used(false), cached_field_index(NO_CACHED_FIELD_INDEX),
41
41
   cached_table(0), depended_from(0)
42
42
{
43
 
  name = (char*) field_name_arg;
 
43
  name = field_name_arg;
44
44
}
45
45
 
46
46
/**
69
69
  table_name= orig_table_name;
70
70
  field_name= orig_field_name;
71
71
  depended_from= 0;
72
 
  return;
73
72
}
74
73
 
75
74
bool Item_ident::remove_dependence_processor(unsigned char * arg)
81
80
 
82
81
const char *Item_ident::full_name() const
83
82
{
84
 
  char *tmp;
85
 
        size_t tmp_len;
86
83
  if (!table_name || !field_name)
87
84
    return field_name ? field_name : name ? name : "tmp_field";
88
85
  if (db_name && db_name[0])
89
86
  {
90
 
    tmp_len= strlen(db_name)+strlen(table_name)+strlen(field_name)+3;
91
 
    tmp= (char*) memory::sql_alloc(tmp_len);
 
87
    size_t tmp_len= strlen(db_name)+strlen(table_name)+strlen(field_name)+3;
 
88
    char* tmp= (char*) memory::sql_alloc(tmp_len);
92
89
    snprintf(tmp, tmp_len, "%s.%s.%s",db_name,table_name,field_name);
 
90
    return tmp;
93
91
  }
94
 
  else if (table_name[0])
 
92
  if (table_name[0])
95
93
  {
96
 
    tmp_len=strlen(table_name)+strlen(field_name)+2;
97
 
    tmp= (char*) memory::sql_alloc(tmp_len);
 
94
    size_t tmp_len= strlen(table_name)+strlen(field_name)+2;
 
95
    char* tmp= (char*) memory::sql_alloc(tmp_len);
98
96
    snprintf(tmp, tmp_len, "%s.%s", table_name, field_name);
 
97
    return tmp;
99
98
  }
100
 
  else
101
 
    return field_name;
102
 
  return tmp;
 
99
  return field_name;
103
100
}
104
101
 
105
102
 
109
106
 
110
107
  if (table_name && table_name[0])
111
108
  {
112
 
    t_name.assign(table_name);
113
 
    std::transform(t_name.begin(), t_name.end(), t_name.begin(), ::tolower);
 
109
    t_name= table_name;
 
110
    boost::to_lower(t_name);
114
111
  }
115
112
 
116
113
  if (db_name && db_name[0])
117
114
  {
118
 
    d_name.assign(db_name);
119
 
    // Keeping the std:: prefix here, since Item_ident has a transform
120
 
    // method
121
 
    std::transform(d_name.begin(), d_name.end(), d_name.begin(), ::tolower);
 
115
    d_name= db_name;
 
116
    boost::to_lower(d_name);
122
117
  }
123
118
 
124
119
  if (!table_name || !field_name || !field_name[0])
125
120
  {
126
121
    const char *nm= (field_name && field_name[0]) ? field_name : name ? name : "tmp_field";
127
122
    str->append_identifier(nm, (uint32_t) strlen(nm));
128
 
 
129
123
    return;
130
124
  }
131
125
  if (db_name && db_name[0] && !alias_name_used)
182
176
  tmp_field->charsetnr= field->charset()->number;
183
177
  tmp_field->length=field->field_length;
184
178
  tmp_field->type=field->type();
185
 
  tmp_field->flags= field->getTable()->maybe_null ?
186
 
    (field->flags & ~NOT_NULL_FLAG) : field->flags;
 
179
  tmp_field->flags= field->getTable()->maybe_null ? (field->flags & ~NOT_NULL_FLAG) : field->flags;
187
180
  tmp_field->decimals= field->decimals();
188
181
}
189
182