622
622
return my_delete(new_path.c_str(), MYF(0));
625
int create_table_proto_file(char *file_name,
626
const char *table_name,
627
HA_CREATE_INFO *create_info,
628
List<Create_field> &create_fields,
625
bool create_table_proto_file(const char *file_name,
626
const char *table_name,
627
HA_CREATE_INFO *create_info,
628
List<Create_field> &create_fields,
634
632
drizzle::Table table_proto;
635
633
string new_path(file_name);
636
634
string file_ext = ".tabledefinition";
675
674
const char *db, const char *table_name,
676
675
HA_CREATE_INFO *create_info,
677
676
List<Create_field> &create_fields,
678
uint32_t keys, KEY *key_info, handler *file)
677
uint32_t keys, KEY *key_info, handler *file,
680
680
char frm_name[FN_REFLEN];
681
sprintf(frm_name,"%s%s",path,reg_ext);
682
if (mysql_create_frm(session, frm_name, db, table_name, create_info,
683
create_fields, keys, key_info, file))
687
if (create_table_proto_file(frm_name, table_name, create_info,
688
create_fields, keys, key_info) != 0)
682
/* Proto will blow up unless we give a name */
685
/* For is_like we return once the file has been created */
688
if (mysql_create_frm(session, path, db, table_name, create_info,
689
create_fields, keys, key_info, file))
692
if (create_table_proto_file(path, table_name, create_info,
693
create_fields, keys, key_info))
698
/* Here we need to build the full frm from the path */
701
sprintf(frm_name,"%s%s", path, reg_ext);
703
if (mysql_create_frm(session, frm_name, db, table_name, create_info,
704
create_fields, keys, key_info, file))
707
if (create_table_proto_file(frm_name, table_name, create_info,
708
create_fields, keys, key_info))
691
712
// Make sure mysql_create_frm din't remove extension
692
713
assert(*fn_rext(frm_name));
694
715
create_info->options|= HA_CREATE_KEEP_FILES;
695
716
if (file->ha_create_handler_files(path, NULL, CHF_CREATE_FLAG, create_info))
696
717
goto err_handler;
697
if ( ha_create_table(session, path, db, table_name,
718
if (ha_create_table(session, path, db, table_name,
699
720
goto err_handler;
703
724
file->ha_create_handler_files(path, NULL, CHF_DELETE_FLAG, create_info);
704
725
my_delete(frm_name, MYF(0));
726
delete_table_proto_file(frm_name);
706
729
} /* rea_create_table */