Commit 352593ec authored by unknown's avatar unknown
Browse files

Merge heikki@bk-internal.mysql.com:/home/bk/mysql-4.1

into hundin.mysql.fi:/home/heikki/mysql-4.1

parents aea5775c a5faeb1b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -81,6 +81,17 @@ dict_create_sys_tables_tuple(

	dfield_set_data(dfield, ptr, 8);
	/* 7: MIX_LEN --------------------------*/

	/* Track corruption reported on mailing list Jan 14, 2005 */
	if (table->mix_len != 0 && table->mix_len != 0x80000000) {
		fprintf(stderr,
"InnoDB: Error: mix_len is %lu in table %s\n", (ulong)table->mix_len,
							table->name);
		mem_analyze_corruption((byte*)&(table->mix_len));
	
		ut_error;
	}

	dfield = dtuple_get_nth_field(entry, 5);

	ptr = mem_heap_alloc(heap, 4);
+17 −0
Original line number Diff line number Diff line
@@ -729,6 +729,7 @@ dict_load_table(
	ulint		space;
	ulint		n_cols;
	ulint		err;
	ulint		mix_len;
	mtr_t		mtr;
	
#ifdef UNIV_SYNC_DEBUG
@@ -775,6 +776,22 @@ dict_load_table(
		return(NULL);
	}

	/* Track a corruption bug reported on the MySQL mailing list Jan 14,
	2005: mix_len had a value different from 0 */

	field = rec_get_nth_field(rec, 7, &len);
	ut_a(len == 4);

	mix_len = mach_read_from_4(field);

	if (mix_len != 0 && mix_len != 0x80000000) {
		ut_print_timestamp(stderr);
		
		fprintf(stderr,
			"  InnoDB: table %s has a nonsensical mix len %lu\n",
			name, (ulong)mix_len);
	}

#if MYSQL_VERSION_ID < 50300
	/* Starting from MySQL 5.0.3, the high-order bit of MIX_LEN is the
	"compact format" flag. */