if (!t->num_disk_storage_columns)
return 1;
dsnc = t->disk_storage_name_column;
- ret = get_mapped_object(t, dsnc, i, &obj);
+ ret = get_mapped_object(t, dsnc, row_num, &obj);
if (ret < 0)
return ret;
hash_object(&obj, hash);
current_dir = make_message("%s/rows_%u-%u", dump_dir, i, i + 999);
PARA_NOTICE_LOG("dumping rows %u - %u\n", i, i + 999);
ret = para_mkdir(current_dir, 0777);
- if (ret < 0)
+ if (ret < 0 && ret != -E_EXIST)
goto out;
}
row_dir = make_message("%s/row_%03u", current_dir, i);
ret = para_mkdir(row_dir, 0777);
- if (ret < 0) {
+ if (ret < 0 && ret != -E_EXIST) {
free(row_dir);
goto out;
}
struct osl_table *t = NULL;
int fd, ret = fsck_init(desc, &t);
char *desc_file;
+ char *table_dump_dir = NULL;
if (ret < 0)
goto out;
ret = para_mkdir(dump_dir, 0777);
- if (ret < 0)
+ if (ret < 0 && ret != -E_EXIST)
+ goto out;
+ table_dump_dir = make_message("%s/%s", dump_dir, desc->name);
+ ret = para_mkdir(table_dump_dir, 0777);
+ if (ret < 0 && ret != -E_EXIST)
goto out;
- desc_file = make_message("%s/table_description.c", dump_dir);
+ desc_file = make_message("%s/table_description.c", table_dump_dir);
ret = para_open(desc_file, O_WRONLY | O_CREAT | O_EXCL, 0644);
free(desc_file);
if (ret < 0)
close(fd);
if (ret < 0)
goto out;
- ret = dump_rows(dump_dir, t);
+ ret = dump_rows(table_dump_dir, t);
out:
+ free(table_dump_dir);
fsck_cleanup(t);
return ret;
}
return ret;
}
-int main(__a_unused int argc, char **argv)
+int main(int argc, char **argv)
{
int i, ret;
char *base_dir = NULL;