Commit bc68cd7d authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0

into sanja.is.com.ua:/home/bell/mysql/bk/work-qc-4.0
parents ded12c82 6b6692dc
...@@ -1186,7 +1186,7 @@ os_file_pread( ...@@ -1186,7 +1186,7 @@ os_file_pread(
os_file_n_pending_preads++; os_file_n_pending_preads++;
os_mutex_exit(os_file_count_mutex); os_mutex_exit(os_file_count_mutex);
n_bytes = pread(file, buf, n, offs); n_bytes = pread(file, buf, (ssize_t)n, offs);
os_mutex_enter(os_file_count_mutex); os_mutex_enter(os_file_count_mutex);
os_file_n_pending_preads--; os_file_n_pending_preads--;
...@@ -1211,7 +1211,7 @@ os_file_pread( ...@@ -1211,7 +1211,7 @@ os_file_pread(
return(ret); return(ret);
} }
ret = read(file, buf, n); ret = read(file, buf, (ssize_t)n);
os_mutex_exit(os_file_seek_mutexes[i]); os_mutex_exit(os_file_seek_mutexes[i]);
...@@ -1261,7 +1261,7 @@ os_file_pwrite( ...@@ -1261,7 +1261,7 @@ os_file_pwrite(
os_file_n_pending_pwrites++; os_file_n_pending_pwrites++;
os_mutex_exit(os_file_count_mutex); os_mutex_exit(os_file_count_mutex);
ret = pwrite(file, buf, n, offs); ret = pwrite(file, buf, (ssize_t)n, offs);
os_mutex_enter(os_file_count_mutex); os_mutex_enter(os_file_count_mutex);
os_file_n_pending_pwrites--; os_file_n_pending_pwrites--;
...@@ -1296,7 +1296,7 @@ os_file_pwrite( ...@@ -1296,7 +1296,7 @@ os_file_pwrite(
return(ret); return(ret);
} }
ret = write(file, buf, n); ret = write(file, buf, (ssize_t)n);
if (srv_unix_file_flush_method != SRV_UNIX_LITTLESYNC if (srv_unix_file_flush_method != SRV_UNIX_LITTLESYNC
&& srv_unix_file_flush_method != SRV_UNIX_NOSYNC && srv_unix_file_flush_method != SRV_UNIX_NOSYNC
......
...@@ -966,6 +966,23 @@ row_ins_foreign_check_on_constraint( ...@@ -966,6 +966,23 @@ row_ins_foreign_check_on_constraint(
err = row_update_cascade_for_mysql(thr, cascade, err = row_update_cascade_for_mysql(thr, cascade,
foreign->foreign_table); foreign->foreign_table);
if (foreign->foreign_table->n_foreign_key_checks_running == 0) {
fprintf(stderr,
"InnoDB: error: table %s has the counter 0 though there is\n"
"InnoDB: a FOREIGN KEY check running on it.\n",
foreign->foreign_table->name);
}
/* Release the data dictionary latch for a while, so that we do not
starve other threads from doing CREATE TABLE etc. if we have a huge
cascaded operation running. The counter n_foreign_key_checks_running
will prevent other users from dropping or ALTERing the table when we
release the latch. */
row_mysql_unfreeze_data_dictionary(thr_get_trx(thr));
row_mysql_freeze_data_dictionary(thr_get_trx(thr));
mtr_start(mtr); mtr_start(mtr);
/* Restore pcur position */ /* Restore pcur position */
......
...@@ -2156,8 +2156,8 @@ row_drop_table_for_mysql( ...@@ -2156,8 +2156,8 @@ row_drop_table_for_mysql(
fputs(" InnoDB: You are trying to drop table ", stderr); fputs(" InnoDB: You are trying to drop table ", stderr);
ut_print_name(stderr, table->name); ut_print_name(stderr, table->name);
fputs("\n" fputs("\n"
"InnoDB: though there are foreign key check running on it.\n" "InnoDB: though there is a foreign key check running on it.\n"
"InnoDB: Adding the table to the background drop queue.\n", "InnoDB: Adding the table to the background drop queue.\n",
stderr); stderr);
row_add_table_to_background_drop_list(table); row_add_table_to_background_drop_list(table);
......
...@@ -1142,7 +1142,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd, ...@@ -1142,7 +1142,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
if (check_access(thd,CREATE_ACL,db,0,1)) if (check_access(thd,CREATE_ACL,db,0,1))
break; break;
mysql_log.write(thd,command,packet); mysql_log.write(thd,command,packet);
mysql_create_db(thd,(lower_case_table_names == 2 ? alias : db),0,0); if (mysql_create_db(thd, (lower_case_table_names == 2 ? alias : db),
0, 0) < 0)
send_error(&thd->net, thd->killed ? ER_SERVER_SHUTDOWN : 0);
break; break;
} }
case COM_DROP_DB: // QQ: To be removed case COM_DROP_DB: // QQ: To be removed
...@@ -1163,7 +1165,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd, ...@@ -1163,7 +1165,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
break; break;
} }
mysql_log.write(thd,command,db); mysql_log.write(thd,command,db);
mysql_rm_db(thd, (lower_case_table_names == 2 ? alias : db), 0, 0); if (mysql_rm_db(thd, (lower_case_table_names == 2 ? alias : db),
0, 0) < 0)
send_error(&thd->net, thd->killed ? ER_SERVER_SHUTDOWN : 0);
break; break;
} }
case COM_BINLOG_DUMP: case COM_BINLOG_DUMP:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment