bug #1989281 [export] Export fails if one table is marked as crashed

This commit is contained in:
Marc Delisle
2008-06-26 15:37:15 +00:00
parent 3663492378
commit 152a8baa70
2 changed files with 18 additions and 5 deletions

View File

@@ -493,7 +493,14 @@ function PMA_getTableDef($db, $table, $crlf, $error_url, $show_dates = false)
// Note: SHOW CREATE TABLE, at least in MySQL 5.1.23, does not
// produce a displayable result for the default value of a BIT
// field, nor does the mysqldump command. See MySQL bug 35796
$result = PMA_DBI_query('SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table));
$result = PMA_DBI_try_query('SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table));
// an error can happen, for example the table is crashed
$tmp_error = PMA_DBI_getError();
if ($tmp_error) {
return PMA_exportComment($GLOBALS['strInUse'] . '(' . $tmp_error . ')');
}
if ($result != FALSE && ($row = PMA_DBI_fetch_row($result))) {
$create_query = $row[1];
unset($row);
@@ -593,7 +600,7 @@ function PMA_getTableDef($db, $table, $crlf, $error_url, $show_dates = false)
$schema_create .= $auto_increment;
PMA_DBI_free_result($result);
return $schema_create;
return $schema_create . ';' . $crlf;
} // end of the 'PMA_getTableDef()' function
@@ -717,7 +724,7 @@ function PMA_exportStructure($db, $table, $crlf, $error_url, $relation = FALSE,
case 'create_table':
$dump .= PMA_exportComment($GLOBALS['strTableStructure'] . ' ' . $formatted_table_name)
. PMA_exportComment();
$dump .= PMA_getTableDef($db, $table, $crlf, $error_url, $dates) . ';' . $crlf;
$dump .= PMA_getTableDef($db, $table, $crlf, $error_url, $dates);
$triggers = PMA_DBI_get_triggers($db, $table);
if ($triggers) {
$dump .= $crlf
@@ -740,7 +747,7 @@ function PMA_exportStructure($db, $table, $crlf, $error_url, $relation = FALSE,
if ($export_type != 'table') {
$dump .= 'DROP TABLE IF EXISTS ' . PMA_backquote($table) . ';' . $crlf;
}
$dump .= PMA_getTableDef($db, $table, $crlf, $error_url, $dates) . ';' . $crlf;
$dump .= PMA_getTableDef($db, $table, $crlf, $error_url, $dates);
break;
case 'stand_in':
$dump .= PMA_exportComment($GLOBALS['strStandInStructureForView'] . ' ' . $formatted_table_name)
@@ -824,7 +831,12 @@ function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
// are used, we did not get the true column name in case of aliases)
$analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($sql_query));
$result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
$result = PMA_DBI_try_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
// a possible error: the table has crashed
$tmp_error = PMA_DBI_getError();
if ($tmp_error) {
return PMA_exportOutputHandler(PMA_exportComment($GLOBALS['strInUse'] . ' (' . $tmp_error . ')'));
}
if ($result != FALSE) {
$fields_cnt = PMA_DBI_num_fields($result);