| 1028 | } |
| 1029 | |
| 1030 | TABLE_SHARE *mrn_create_tmp_table_share(TABLE_LIST *table_list, const char *path, |
| 1031 | int *error) |
| 1032 | { |
| 1033 | uint key_length; |
| 1034 | TABLE_SHARE *share; |
| 1035 | THD *thd = current_thd; |
| 1036 | |
| 1037 | MRN_DBUG_ENTER_FUNCTION(); |
| 1038 | #ifdef MRN_HAVE_GET_TABLE_DEF_KEY |
| 1039 | const char *key; |
| 1040 | key_length = get_table_def_key(table_list, &key); |
| 1041 | #else |
| 1042 | char key[MAX_DBKEY_LENGTH]; |
| 1043 | key_length = create_table_def_key(thd, key, table_list, FALSE); |
| 1044 | #endif |
| 1045 | #if MYSQL_VERSION_ID >= 100002 && defined(MRN_MARIADB_P) |
| 1046 | share = alloc_table_share(table_list->db.str, table_list->table_name.str, key, |
| 1047 | key_length); |
| 1048 | #else |
| 1049 | share = alloc_table_share(table_list, key, key_length); |
| 1050 | #endif |
| 1051 | if (!share) |
| 1052 | { |
| 1053 | *error = ER_CANT_OPEN_FILE; |
| 1054 | DBUG_RETURN(NULL); |
| 1055 | } |
| 1056 | share->tmp_table = NO_TMP_TABLE; // TODO: is this right? |
| 1057 | share->path.str = (char *) path; |
| 1058 | share->path.length = strlen(share->path.str); |
| 1059 | share->normalized_path.str = mrn_my_strdup(path, MYF(MY_WME)); |
| 1060 | share->normalized_path.length = strlen(share->normalized_path.str); |
| 1061 | if (open_table_def(thd, share, GTS_TABLE)) |
| 1062 | { |
| 1063 | *error = ER_CANT_OPEN_FILE; |
| 1064 | mrn_free_tmp_table_share(share); |
| 1065 | DBUG_RETURN(NULL); |
| 1066 | } |
| 1067 | DBUG_RETURN(share); |
| 1068 | } |
| 1069 | |
| 1070 | void mrn_free_tmp_table_share(TABLE_SHARE *tmp_table_share) |
| 1071 | { |
no test coverage detected