~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to drizzled/foreign_key.cc

  • Committer: Package Import Robot
  • Author(s): Clint Byrum
  • Date: 2012-06-19 10:46:49 UTC
  • mfrom: (1.1.6)
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20120619104649-e2l0ggd4oz3um0f4
Tags: upstream-7.1.36-stable
ImportĀ upstreamĀ versionĀ 7.1.36-stable

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
#include <drizzled/internal/my_sys.h>
28
28
#include <drizzled/table_ident.h>
29
29
 
30
 
namespace drizzled
31
 
{
 
30
namespace drizzled {
32
31
 
33
 
extern const CHARSET_INFO *system_charset_info;
 
32
extern const charset_info_st *system_charset_info;
34
33
 
35
34
void add_foreign_key_to_table_message(
36
35
    message::Table *table_message,
60
59
  pfkey->set_match(match_opt_arg);
61
60
  pfkey->set_update_option(update_opt_arg);
62
61
  pfkey->set_delete_option(delete_opt_arg);
63
 
 
64
 
  pfkey->set_references_table_name(table->table.str);
65
 
 
66
 
  Key_part_spec *keypart;
 
62
  pfkey->set_references_table_name(table->table.data());
 
63
 
67
64
  List<Key_part_spec>::iterator col_it(cols.begin());
68
 
  while ((keypart= col_it++))
 
65
  while (Key_part_spec* keypart= col_it++)
69
66
  {
70
 
    pfkey->add_column_names(keypart->field_name.str);
 
67
    pfkey->add_column_names(keypart->field_name.data());
71
68
  }
72
69
 
73
70
  List<Key_part_spec>::iterator ref_it(ref_cols.begin());
74
 
  while ((keypart= ref_it++))
 
71
  while (Key_part_spec* keypart= ref_it++)
75
72
  {
76
 
    pfkey->add_references_columns(keypart->field_name.str);
 
73
    pfkey->add_references_columns(keypart->field_name.data());
77
74
  }
78
75
 
79
76
}
98
95
{
99
96
  /* Make a deep copy of each element */
100
97
  typename List<T>::iterator it(list.begin());
101
 
  T *el;
102
 
  while ((el= it++))
 
98
  while (T* el= it++)
103
99
    it.replace(el->clone(mem_root));
104
100
}
105
101
 
189
185
*/
190
186
bool Foreign_key::validate(List<CreateField> &table_fields)
191
187
{
192
 
  CreateField  *sql_field;
193
 
  Key_part_spec *column;
194
188
  List<Key_part_spec>::iterator cols(columns.begin());
195
 
  List<CreateField>::iterator it(table_fields.begin());
196
 
  while ((column= cols++))
 
189
  while (Key_part_spec* column= cols++)
197
190
  {
198
 
    it= table_fields.begin();
199
 
    while ((sql_field= it++) &&
200
 
           my_strcasecmp(system_charset_info,
201
 
                         column->field_name.str,
202
 
                         sql_field->field_name)) {}
 
191
    List<CreateField>::iterator it= table_fields.begin();
 
192
    CreateField* sql_field;
 
193
    while ((sql_field= it++) 
 
194
      && system_charset_info->strcasecmp(column->field_name.data(), sql_field->field_name))
 
195
    {
 
196
    }
203
197
    if (!sql_field)
204
198
    {
205
 
      my_error(ER_KEY_COLUMN_DOES_NOT_EXITS, MYF(0), column->field_name.str);
 
199
      my_error(ER_KEY_COLUMN_DOES_NOT_EXITS, MYF(0), column->field_name.data());
206
200
      return true;
207
201
    }
208
202
  }