Commit 3bb2660d authored by monty@mashka.mysql.fi's avatar monty@mashka.mysql.fi

Merge with 3.23.53

parents c7b6854f ff993695
...@@ -51223,8 +51223,14 @@ not yet 100% confident in this code. ...@@ -51223,8 +51223,14 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.53 @appendixsubsec Changes in release 3.23.53
@itemize @bullet @itemize @bullet
@item @item
Fixed bug in @code{ALTER TABLE} and @code{RENAME TABLE} when running with
@code{-O lower_case_table_names=1} (typically on windows) when giving the
table name in uppercase.
@item
Fixed unlikely core dump with @code{SELECT ... ORDER BY ... LIMIT}.
@item
Changed @code{AND/OR} to report that they can return NULL. This fixes a Changed @code{AND/OR} to report that they can return NULL. This fixes a
bug in @code{GROUP BY} on @code{AND/OR} expression that return bug in @code{GROUP BY} on @code{AND/OR} expressions that return
@code{NULL}. @code{NULL}.
@item @item
Fixed a bug that @code{OPTIMIZE} of locked and modified MyISAM table, Fixed a bug that @code{OPTIMIZE} of locked and modified MyISAM table,
...@@ -53,7 +53,7 @@ extern ulint srv_n_log_files; ...@@ -53,7 +53,7 @@ extern ulint srv_n_log_files;
extern ulint srv_log_file_size; extern ulint srv_log_file_size;
extern ibool srv_log_archive_on; extern ibool srv_log_archive_on;
extern ulint srv_log_buffer_size; extern ulint srv_log_buffer_size;
extern ibool srv_flush_log_at_trx_commit; extern ulint srv_flush_log_at_trx_commit;
extern byte srv_latin1_ordering[256];/* The sort order table of the latin1 extern byte srv_latin1_ordering[256];/* The sort order table of the latin1
character set */ character set */
......
...@@ -15,8 +15,6 @@ Created 10/21/1995 Heikki Tuuri ...@@ -15,8 +15,6 @@ Created 10/21/1995 Heikki Tuuri
#undef HAVE_FDATASYNC #undef HAVE_FDATASYNC
#undef UNIV_NON_BUFFERED_IO
#ifdef POSIX_ASYNC_IO #ifdef POSIX_ASYNC_IO
/* We assume in this case that the OS has standard Posix aio (at least SunOS /* We assume in this case that the OS has standard Posix aio (at least SunOS
2.6, HP-UX 11i and AIX 4.3 have) */ 2.6, HP-UX 11i and AIX 4.3 have) */
...@@ -500,14 +498,25 @@ os_file_create( ...@@ -500,14 +498,25 @@ os_file_create(
} }
#endif #endif
#ifdef UNIV_NON_BUFFERED_IO #ifdef UNIV_NON_BUFFERED_IO
attributes = attributes | FILE_FLAG_NO_BUFFERING; if (type == OS_LOG_FILE && srv_flush_log_at_trx_commit == 2) {
/* Do not use unbuffered i/o to log files because
value 2 denotes that we do not flush the log at every
commit, but only once per second */
} else {
attributes = attributes | FILE_FLAG_NO_BUFFERING;
}
#endif #endif
} else if (purpose == OS_FILE_NORMAL) { } else if (purpose == OS_FILE_NORMAL) {
attributes = 0 attributes = 0;
#ifdef UNIV_NON_BUFFERED_IO #ifdef UNIV_NON_BUFFERED_IO
| FILE_FLAG_NO_BUFFERING if (type == OS_LOG_FILE && srv_flush_log_at_trx_commit == 2) {
/* Do not use unbuffered i/o to log files because
value 2 denotes that we do not flush the log at every
commit, but only once per second */
} else {
attributes = attributes | FILE_FLAG_NO_BUFFERING;
}
#endif #endif
;
} else { } else {
attributes = 0; attributes = 0;
ut_error; ut_error;
......
...@@ -1186,7 +1186,12 @@ row_create_table_for_mysql( ...@@ -1186,7 +1186,12 @@ row_create_table_for_mysql(
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id()); ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
if (srv_created_new_raw || srv_force_recovery) { /* We allow a create table also if innodb_force_recovery is used. This
enables the user to stop a runaway rollback or a crash caused by
a temporary table #sql... He can use the trick explained in the
manual to rename the temporary table to rsql..., and then drop it. */
if (srv_created_new_raw) {
fprintf(stderr, fprintf(stderr,
"InnoDB: A new raw disk partition was initialized or\n" "InnoDB: A new raw disk partition was initialized or\n"
"InnoDB: innodb_force_recovery is on: we do not allow\n" "InnoDB: innodb_force_recovery is on: we do not allow\n"
...@@ -1707,7 +1712,13 @@ row_drop_table_for_mysql( ...@@ -1707,7 +1712,13 @@ row_drop_table_for_mysql(
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id()); ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
ut_a(name != NULL); ut_a(name != NULL);
if (srv_created_new_raw || srv_force_recovery) { /* Note that we allow dropping of a table even if innodb_force_recovery
is used. If a rollback or purge would crash because of a corrupt
table, the user can try dropping it to avoid the crash. This is also
a nice way to stop a runaway rollback caused by a failing big
table import in a single transaction. */
if (srv_created_new_raw) {
fprintf(stderr, fprintf(stderr,
"InnoDB: A new raw disk partition was initialized or\n" "InnoDB: A new raw disk partition was initialized or\n"
"InnoDB: innodb_force_recovery is on: we do not allow\n" "InnoDB: innodb_force_recovery is on: we do not allow\n"
......
...@@ -96,7 +96,7 @@ ulint srv_n_log_files = ULINT_MAX; ...@@ -96,7 +96,7 @@ ulint srv_n_log_files = ULINT_MAX;
ulint srv_log_file_size = ULINT_MAX; /* size in database pages */ ulint srv_log_file_size = ULINT_MAX; /* size in database pages */
ibool srv_log_archive_on = TRUE; ibool srv_log_archive_on = TRUE;
ulint srv_log_buffer_size = ULINT_MAX; /* size in database pages */ ulint srv_log_buffer_size = ULINT_MAX; /* size in database pages */
ibool srv_flush_log_at_trx_commit = TRUE; ulint srv_flush_log_at_trx_commit = 1;
byte srv_latin1_ordering[256] /* The sort order table of the latin1 byte srv_latin1_ordering[256] /* The sort order table of the latin1
character set. The following table is character set. The following table is
......
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