613
614
fprintf(f_result, ", Records list: %s", is_page_valid? "Valid": "Invalid");
614
615
expected_records_inheader = mach_read_from_2(page + PAGE_HEADER + PAGE_N_RECS);
615
fprintf(f_result, ", Expected records: (%u %lu)", expected_records, expected_records_inheader);
616
fprintf(f_result, ", Expected records: (%u %u)", expected_records, expected_records_inheader);
616
617
fprintf(f_result, "\n");
617
618
if (debug) printf("Starting offset: %lu (%lX). Checking %d table definitions.\n", offset, offset, table_definitions_cnt);
692
693
while ((read_bytes = read(fn, page, UNIV_PAGE_SIZE)) == UNIV_PAGE_SIZE) {
693
694
pos = lseek(fn, 0, SEEK_CUR);
695
if (pos % (UNIV_PAGE_SIZE * 10) == 0) {
696
fprintf(stderr, "-- %.2f%% done\n", 100.0 * pos / st.st_size);
696
if (pos % (UNIV_PAGE_SIZE * 512) == 0) {
697
fprintf(f_sql, "-- %.2f%% done\n", 100.0 * pos / st.st_size);
699
700
if (deleted_pages_only) {
884
895
table_def_t *table = &(table_definitions[0]);
885
fprintf(stderr, "SET FOREIGN_KEY_CHECKS=0;\n");
886
fprintf(stderr, "LOAD DATA LOCAL INFILE '");
896
fprintf(f_sql, "SET FOREIGN_KEY_CHECKS=0;\n");
897
fprintf(f_sql, "LOAD DATA LOCAL INFILE '");
887
898
if(f_result == stdout){
888
fprintf(stderr, "%s/dumps/%s/%s", getenv("PWD"), dump_prefix, table->name);
899
fprintf(f_sql, "%s/dumps/%s/%s", getenv("PWD"), dump_prefix, table->name);
891
fprintf(stderr, "%s", result_file);
902
fprintf(f_sql, "%s", result_file);
893
fprintf(stderr, "' REPLACE INTO TABLE `%s` FIELDS TERMINATED BY '\\t' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '%s\\t' ", table->name, table->name);
904
fprintf(f_sql, "' REPLACE INTO TABLE `%s` FIELDS TERMINATED BY '\\t' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '%s\\t' ", table->name, table->name);
897
fprintf(stderr, "(");
898
909
for(i = 0; i < table->fields_count; i++) {
899
910
if(table->fields[i].type == FT_INTERNAL) continue;
900
if(comma) fprintf(stderr, ", ");
911
if(comma) fprintf(f_sql, ", ");
901
912
switch(table->fields[i].type){
904
fprintf(stderr, "@var_%s", table->fields[i].name);
915
fprintf(f_sql, "@var_%s", table->fields[i].name);
908
fprintf(stderr, "@var_%s", table->fields[i].name);
919
fprintf(f_sql, "@var_%s", table->fields[i].name);
912
fprintf(stderr, "`%s`", table->fields[i].name);
923
fprintf(f_sql, "`%s`", table->fields[i].name);
916
fprintf(stderr, ")");
919
fprintf(stderr, "\nSET\n");
930
fprintf(f_sql, "\nSET\n");
920
931
for(i = 0; i < table->fields_count; i++) {
921
932
if(table->fields[i].type == FT_INTERNAL) continue;
922
933
switch(table->fields[i].type){
925
if(comma) fprintf(stderr, ",\n");
926
fprintf(stderr, " %s = UNHEX(@var_%s)", table->fields[i].name, table->fields[i].name);
936
if(comma) fprintf(f_sql, ",\n");
937
fprintf(f_sql, " %s = UNHEX(@var_%s)", table->fields[i].name, table->fields[i].name);
930
if(comma) fprintf(stderr, ",\n");
931
fprintf(stderr, " %s = CAST(@var_%s AS UNSIGNED)", table->fields[i].name, table->fields[i].name);
941
if(comma) fprintf(f_sql, ",\n");
942
fprintf(f_sql, " %s = CAST(@var_%s AS UNSIGNED)", table->fields[i].name, table->fields[i].name);
938
fprintf(stderr, ";\n");
949
fprintf(f_sql, ";\n");
939
950
if (!process_compact && !process_redundant) {
940
printf("Error: Please, specify what format your datafile in. Use -4 for mysql 4.1 and below and -5 for 5.X+\n");
951
fprintf(stderr,"Error: Please, specify what format your datafile in. Use -4 for mysql 4.1 and below and -5 for 5.X+\n");