mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge with 3.23.53
Docs/manual.texi: Auto merged innobase/include/srv0srv.h: Auto merged innobase/os/os0file.c: Auto merged innobase/row/row0mysql.c: Auto merged innobase/srv/srv0srv.c: Auto merged sql/sql_table.cc: Auto merged sql/filesort.cc: merge
This commit is contained in:
@ -51223,8 +51223,14 @@ not yet 100% confident in this code.
|
||||
@appendixsubsec Changes in release 3.23.53
|
||||
@itemize @bullet
|
||||
@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
|
||||
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}.
|
||||
@item
|
||||
Fixed a bug that @code{OPTIMIZE} of locked and modified MyISAM table,
|
||||
|
@ -53,7 +53,7 @@ extern ulint srv_n_log_files;
|
||||
extern ulint srv_log_file_size;
|
||||
extern ibool srv_log_archive_on;
|
||||
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
|
||||
character set */
|
||||
|
@ -15,8 +15,6 @@ Created 10/21/1995 Heikki Tuuri
|
||||
|
||||
#undef HAVE_FDATASYNC
|
||||
|
||||
#undef UNIV_NON_BUFFERED_IO
|
||||
|
||||
#ifdef POSIX_ASYNC_IO
|
||||
/* 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) */
|
||||
@ -500,14 +498,25 @@ try_again:
|
||||
}
|
||||
#endif
|
||||
#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
|
||||
} else if (purpose == OS_FILE_NORMAL) {
|
||||
attributes = 0
|
||||
attributes = 0;
|
||||
#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
|
||||
;
|
||||
} else {
|
||||
attributes = 0;
|
||||
ut_error;
|
||||
|
@ -1186,7 +1186,12 @@ row_create_table_for_mysql(
|
||||
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
|
||||
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,
|
||||
"InnoDB: A new raw disk partition was initialized or\n"
|
||||
"InnoDB: innodb_force_recovery is on: we do not allow\n"
|
||||
@ -1707,7 +1712,13 @@ row_drop_table_for_mysql(
|
||||
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
|
||||
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,
|
||||
"InnoDB: A new raw disk partition was initialized or\n"
|
||||
"InnoDB: innodb_force_recovery is on: we do not allow\n"
|
||||
|
@ -96,7 +96,7 @@ ulint srv_n_log_files = ULINT_MAX;
|
||||
ulint srv_log_file_size = ULINT_MAX; /* size in database pages */
|
||||
ibool srv_log_archive_on = TRUE;
|
||||
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
|
||||
character set. The following table is
|
||||
|
Reference in New Issue
Block a user