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

merge with 3.23.52

parents 8be1cdeb 3f48e036
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -50810,6 +50810,23 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.52
@itemize @bullet
@item
Fixed  a security bug with empty db column in db table
@item
Changed initialisation of @code{RND()} to make it less predicatable.
@item
Fixed problem with @code{GROUP BY} on result with expression that created a
@code{BLOB} field.
@item
Fixed problem with privilege tables when downgrading from 4.0.2 to 3.23.
@item
Fixed thread bug in @code{SLAVE START}, @code{SLAVE STOP} and automatic repair
of MyISAM tables that could cause table cache to be corrupted.
@item
Fixed possible thread related key-cache-corruption problem with
@code{OPTIMIZE TABLE} and @code{REPAIR TABLE}.
@item
Added name of 'administrator command' logs.
@item
Fixed bug with creating an auto-increment value on second part of a
@code{UNIQUE()} key where first part could contain NULL values.
@item
@@ -50817,7 +50834,9 @@ Don't write slave-timeout reconnects to the error log.
@item
Fixed bug with slave net read timeouting
@item
Fixed bug in ALTERing  TABLE of BDB type.
Fixed a core-dump bug with @code{MERGE} tables and @code{MAX()} function.
@item
Fixed bug in @code{ALTER TABLE} with BDB tables.
@item
Fixed bug when logging @code{LOAD DATA INFILE} to binary log with no 
active database.
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#define MYSQL_VERSION_ID		@MYSQL_VERSION_ID@
#define MYSQL_PORT			@MYSQL_TCP_PORT@
#define MYSQL_UNIX_ADDR			"@MYSQL_UNIX_ADDR@"
#define MYSQL_CONFIG_NAME		"my"

/* mysqld compile time options */
#ifndef MYSQL_CHARSET
+7 −1
Original line number Diff line number Diff line
@@ -808,7 +808,7 @@ btr_cur_optimistic_insert(

	if (!dtuple_check_typed_no_assert(entry)) {
		fprintf(stderr,
"InnoDB: Error in a tuple to insert into table %lu index %lu\n",
"InnoDB: Error in a tuple to insert into table %lu index %s\n",
					index->table_name, index->name);
	}
	
@@ -1213,6 +1213,8 @@ btr_cur_parse_update_in_place(
	rec_offset = mach_read_from_2(ptr);
	ptr += 2;

	ut_a(rec_offset <= UNIV_PAGE_SIZE);

	heap = mem_heap_create(256);
	
	ptr = row_upd_index_parse(ptr, end_ptr, heap, &update);
@@ -1977,6 +1979,8 @@ btr_cur_parse_del_mark_set_clust_rec(
	offset = mach_read_from_2(ptr);
	ptr += 2;

	ut_a(offset <= UNIV_PAGE_SIZE);

	if (page) {
		rec = page + offset;
	
@@ -2127,6 +2131,8 @@ btr_cur_parse_del_mark_set_sec_rec(
	offset = mach_read_from_2(ptr);
	ptr += 2;

	ut_a(offset <= UNIV_PAGE_SIZE);

	if (page) {
		rec = page + offset;
	
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ Created 2/17/1996 Heikki Tuuri
#include "btr0cur.h"
#include "btr0pcur.h"
#include "btr0btr.h"
#include "ha0ha.h"

ulint	btr_search_n_succ	= 0;
ulint	btr_search_n_hash_fail	= 0;
+32 −10
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ buf_page_print(
	ut_print_timestamp(stderr);
	fprintf(stderr,
	"  InnoDB: Page dump in ascii and hex (%u bytes):\n%s",
					UNIV_PAGE_SIZE, buf);
					(ulint)UNIV_PAGE_SIZE, buf);
	fprintf(stderr, "InnoDB: End of page dump\n");

	mem_free(buf);
@@ -1707,10 +1707,11 @@ buf_print(void)

	mutex_enter(&(buf_pool->mutex));
	
	printf("LRU len %lu \n", UT_LIST_GET_LEN(buf_pool->LRU));
	printf("free len %lu \n", UT_LIST_GET_LEN(buf_pool->free));
	printf("flush len %lu \n", UT_LIST_GET_LEN(buf_pool->flush_list));
	printf("buf_pool size %lu \n", size);
	printf("database pages %lu \n", UT_LIST_GET_LEN(buf_pool->LRU));
	printf("free pages %lu \n", UT_LIST_GET_LEN(buf_pool->free));
	printf("modified database pages %lu \n",
				UT_LIST_GET_LEN(buf_pool->flush_list));

	printf("n pending reads %lu \n", buf_pool->n_pend_reads);

@@ -1819,13 +1820,20 @@ buf_print_io(
	mutex_enter(&(buf_pool->mutex));
	
	buf += sprintf(buf,
		"Free list length  %lu \n", UT_LIST_GET_LEN(buf_pool->free));
		"Buffer pool size   %lu\n", size);
	buf += sprintf(buf,
		"Free buffers       %lu\n", UT_LIST_GET_LEN(buf_pool->free));
	buf += sprintf(buf,
		"LRU list length   %lu \n", UT_LIST_GET_LEN(buf_pool->LRU));
		"Database pages     %lu\n", UT_LIST_GET_LEN(buf_pool->LRU));
/*
	buf += sprintf(buf,
		"Flush list length %lu \n",
		"Lock heap buffers  %lu\n", buf_pool->n_lock_heap_pages);
	buf += sprintf(buf,
		"Hash index buffers %lu\n", buf_pool->n_adaptive_hash_pages);
*/
	buf += sprintf(buf,
		"Modified db pages  %lu\n",
				UT_LIST_GET_LEN(buf_pool->flush_list));
	buf += sprintf(buf, "Buffer pool size  %lu\n", size);

	buf += sprintf(buf, "Pending reads %lu \n", buf_pool->n_pend_reads);

@@ -1836,8 +1844,8 @@ buf_print_io(
		buf_pool->n_flush[BUF_FLUSH_SINGLE_PAGE]);

	current_time = time(NULL);
	time_elapsed = difftime(current_time, buf_pool->last_printout_time);

	time_elapsed = 0.001 + difftime(current_time,
						buf_pool->last_printout_time);
	buf_pool->last_printout_time = current_time;

	buf += sprintf(buf, "Pages read %lu, created %lu, written %lu\n",
@@ -1870,6 +1878,20 @@ buf_print_io(
	mutex_exit(&(buf_pool->mutex));
}

/**************************************************************************
Refreshes the statistics used to print per-second averages. */

void
buf_refresh_io_stats(void)
/*======================*/
{
        buf_pool->last_printout_time = time(NULL);
	buf_pool->n_page_gets_old = buf_pool->n_page_gets;
	buf_pool->n_pages_read_old = buf_pool->n_pages_read;
	buf_pool->n_pages_created_old = buf_pool->n_pages_created;
	buf_pool->n_pages_written_old = buf_pool->n_pages_written;
}

/*************************************************************************
Checks that all file pages in the buffer are in a replaceable state. */

Loading