6865
6865
while (tmp_buff[i] != '/')
6867
6867
tmp_buff+= i + 1;
6868
f_key_info.forein_id = session_make_lex_string(session, 0,
6869
tmp_buff, (uint) strlen(tmp_buff), 1);
6868
f_key_info.forein_id = session->make_lex_string(NULL, tmp_buff, strlen(tmp_buff), true);
6870
6869
tmp_buff= foreign->referenced_table_name;
6872
6871
/* Database name */
6880
6879
ulen= filename_to_tablename(db_name, uname, sizeof(uname));
6881
f_key_info.referenced_db = session_make_lex_string(session, 0,
6880
f_key_info.referenced_db = session->make_lex_string(NULL, uname, ulen, true);
6884
6882
/* Table name */
6885
6883
tmp_buff+= i + 1;
6886
6884
ulen= filename_to_tablename(tmp_buff, uname, sizeof(uname));
6887
f_key_info.referenced_table = session_make_lex_string(session, 0,
6885
f_key_info.referenced_table = session->make_lex_string(NULL, uname, ulen, true);
6891
6888
tmp_buff= foreign->foreign_col_names[i];
6892
name = session_make_lex_string(session, name,
6893
tmp_buff, (uint) strlen(tmp_buff), 1);
6889
name = session->make_lex_string(name, tmp_buff, strlen(tmp_buff), true);
6894
6890
f_key_info.foreign_fields.push_back(name);
6895
6891
tmp_buff= foreign->referenced_col_names[i];
6896
name = session_make_lex_string(session, name,
6897
tmp_buff, (uint) strlen(tmp_buff), 1);
6892
name = session->make_lex_string(name, tmp_buff, strlen(tmp_buff), true);
6898
6893
f_key_info.referenced_fields.push_back(name);
6899
6894
if (++i >= foreign->n_fields)
6922
6917
tmp_buff= "RESTRICT";
6924
f_key_info.delete_method = session_make_lex_string(
6925
session, f_key_info.delete_method, tmp_buff, length, 1);
6919
f_key_info.delete_method = session->make_lex_string(
6920
f_key_info.delete_method, tmp_buff, length, true);
6928
6923
if (foreign->type & DICT_FOREIGN_ON_UPDATE_CASCADE)
6946
6941
tmp_buff= "RESTRICT";
6948
f_key_info.update_method = session_make_lex_string(
6949
session, f_key_info.update_method, tmp_buff, length, 1);
6943
f_key_info.update_method = session->make_lex_string(
6944
f_key_info.update_method, tmp_buff, length, true);
6950
6945
if (foreign->referenced_index &&
6951
6946
foreign->referenced_index->name)
6953
f_key_info.referenced_key_name = session_make_lex_string(
6954
session, f_key_info.referenced_key_name,
6948
f_key_info.referenced_key_name = session->make_lex_string(
6949
f_key_info.referenced_key_name,
6955
6950
foreign->referenced_index->name,
6956
(uint) strlen(foreign->referenced_index->name), 1);
6951
strlen(foreign->referenced_index->name), true);
6959
6954
f_key_info.referenced_key_name= 0;