Commit fd0459a5 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

merge with 3.23

parents 4b877e00 89f8ca05
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -48193,15 +48193,18 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.47
@itemize @bullet
@item
Fixed in when using the following construct:
@code{SELECT ... WHERE key=@@var_name OR $key=@@var_name2}
@item
Restrict InnoDB keys to 500 bytes.
@item
InnoDB now supports @code{NULL} in keys.
@item
Fixed shutdown problem on HPUX. (Introduced in 3.23.46)
@item
Added 'DO expression' command.
@item
Fixed core-dump bug in replication when using SELECT RELEASE_LOCK();
@item
Added new statement DO expression,[expression].
Added new command: @code{DO expression,[expression]}
@item
Added @code{slave-skip-errors} option
@item
+1 −1
Original line number Diff line number Diff line
@@ -452,7 +452,7 @@ btr_search_info_update_slow(
Checks if a guessed position for a tree cursor is right. Note that if
mode is PAGE_CUR_LE, which is used in inserts, and the function returns
TRUE, then cursor->up_match and cursor->low_match both have sensible values. */
UNIV_INLINE
static
ibool
btr_search_check_guess(
/*===================*/
+7 −4
Original line number Diff line number Diff line
@@ -107,14 +107,17 @@ dtype_get_pad_char(
				ULINT_UNDEFINED if no padding specified */
	dtype_t*	type)	/* in: type */
{
	if (type->mtype == DATA_CHAR) {
		/* space is the padding character for all char strings */
	if (type->mtype == DATA_CHAR
	    || type->mtype == DATA_VARCHAR
	    || type->mtype == DATA_BINARY
	    || type->mtype == DATA_FIXBINARY) {

		/* Space is the padding character for all char and binary
	        strings */

		return((ulint)' ');
	}

	ut_ad((type->mtype == DATA_BINARY) || (type->mtype == DATA_VARCHAR));

	/* No padding specified */

	return(ULINT_UNDEFINED);
+17 −1
Original line number Diff line number Diff line
@@ -1019,7 +1019,8 @@ recv_apply_hashed_log_recs(
			if (recv_addr->state == RECV_NOT_PROCESSED) {
				if (!has_printed) {
					fprintf(stderr, 
"InnoDB: Starting an apply batch of log records to the database...\n");
"InnoDB: Starting an apply batch of log records to the database...\n"
"InnoDB: Progress in percents:");
					has_printed = TRUE;
				}
				
@@ -1046,6 +1047,16 @@ recv_apply_hashed_log_recs(

			recv_addr = HASH_GET_NEXT(addr_hash, recv_addr);
		}

		if (has_printed
		    && (i * 100) / hash_get_n_cells(recv_sys->addr_hash)
		    != ((i + 1) * 100)
		             / hash_get_n_cells(recv_sys->addr_hash)) {

		        fprintf(stderr, "%lu ",
			  (i * 100) / hash_get_n_cells(recv_sys->addr_hash));

		}
	}

	/* Wait until all the pages have been processed */
@@ -1059,6 +1070,11 @@ recv_apply_hashed_log_recs(
		mutex_enter(&(recv_sys->mutex));
	}	

	if (has_printed) {

	        fprintf(stderr, "\n");
	}

	if (!allow_ibuf) {
		/* Flush all the file pages to disk and invalidate them in
		the buffer pool */
+7 −0
Original line number Diff line number Diff line
@@ -581,6 +581,13 @@ os_file_flush(
		return(TRUE);
	}
	
	/* Since Linux returns EINVAL if the 'file' is actually a raw device,
	we choose to ignore that error */

	if (errno == EINVAL) {
	        return(TRUE);
	}

	fprintf(stderr,
		"InnoDB: Error: the OS said file flush did not succeed\n");

Loading