|
|
@ -1938,15 +1938,13 @@ err_exit: |
|
|
|
|
|
|
|
|
err = trx->error_state; |
|
|
err = trx->error_state; |
|
|
|
|
|
|
|
|
if (UNIV_UNLIKELY(err != DB_SUCCESS)) { |
|
|
|
|
|
|
|
|
switch (err) { |
|
|
|
|
|
case DB_SUCCESS: |
|
|
|
|
|
break; |
|
|
|
|
|
case DB_OUT_OF_FILE_SPACE: |
|
|
trx->error_state = DB_SUCCESS; |
|
|
trx->error_state = DB_SUCCESS; |
|
|
trx_general_rollback_for_mysql(trx, NULL); |
|
|
trx_general_rollback_for_mysql(trx, NULL); |
|
|
/* TO DO: free table? The code below will dereference |
|
|
|
|
|
table->name, though. */ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
switch (err) { |
|
|
|
|
|
case DB_OUT_OF_FILE_SPACE: |
|
|
|
|
|
ut_print_timestamp(stderr); |
|
|
ut_print_timestamp(stderr); |
|
|
fputs(" InnoDB: Warning: cannot create table ", |
|
|
fputs(" InnoDB: Warning: cannot create table ", |
|
|
stderr); |
|
|
stderr); |
|
|
@ -1961,9 +1959,13 @@ err_exit: |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case DB_DUPLICATE_KEY: |
|
|
case DB_DUPLICATE_KEY: |
|
|
|
|
|
default: |
|
|
/* We may also get err == DB_ERROR if the .ibd file for the |
|
|
/* We may also get err == DB_ERROR if the .ibd file for the |
|
|
table already exists */ |
|
|
table already exists */ |
|
|
|
|
|
|
|
|
|
|
|
trx->error_state = DB_SUCCESS; |
|
|
|
|
|
trx_general_rollback_for_mysql(trx, NULL); |
|
|
|
|
|
dict_mem_table_free(table); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|