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

Merge with 3.23.53

parents c7b6854f ff993695
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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 −6
Original line number Diff line number Diff line
@@ -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 @@ os_file_create(
		}
#endif			
#ifdef UNIV_NON_BUFFERED_IO
		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;
+13 −2
Original line number Diff line number Diff line
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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