Commit 46653276 authored by unknown's avatar unknown
Browse files

Merge gvanderkelen@bk-internal.mysql.com:/home/bk/mysql-5.0

into kriem.kemuri.org:/home/geert/MySQL/mysql-5.0

parents 29b6dccd de8b4991
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -2201,7 +2201,8 @@ ulint
dict_foreign_add_to_cache(
/*======================*/
					/* out: DB_SUCCESS or error code */
	dict_foreign_t*	foreign)	/* in, own: foreign key constraint */
	dict_foreign_t*	foreign,	/* in, own: foreign key constraint */
	ibool		check_types)	/* in: TRUE=check type compatibility */
{
	dict_table_t*	for_table;
	dict_table_t*	ref_table;
@@ -2237,10 +2238,16 @@ dict_foreign_add_to_cache(
	}

	if (for_in_cache->referenced_table == NULL && ref_table) {
		dict_index_t*	types_idx;
		if (check_types) {
			types_idx = for_in_cache->foreign_index;
		} else {
			types_idx = NULL;
		}
		index = dict_foreign_find_index(ref_table,
			(const char**) for_in_cache->referenced_col_names,
			for_in_cache->n_fields,
			for_in_cache->foreign_index);
			types_idx);

		if (index == NULL) {
			dict_foreign_error_report(ef, for_in_cache,
@@ -2264,10 +2271,16 @@ dict_foreign_add_to_cache(
	}

	if (for_in_cache->foreign_table == NULL && for_table) {
		dict_index_t*	types_idx;
		if (check_types) {
			types_idx = for_in_cache->referenced_index;
		} else {
			types_idx = NULL;
		}
		index = dict_foreign_find_index(for_table,
			(const char**) for_in_cache->foreign_col_names,
			for_in_cache->n_fields,
			for_in_cache->referenced_index);
			types_idx);

		if (index == NULL) {
			dict_foreign_error_report(ef, for_in_cache,
+7 −8
Original line number Diff line number Diff line
@@ -868,7 +868,7 @@ dict_load_table(
	
	dict_load_indexes(table, heap);
	
	err = dict_load_foreigns(table->name);
	err = dict_load_foreigns(table->name, TRUE);
/*
	if (err != DB_SUCCESS) {
	
@@ -1089,8 +1089,9 @@ ulint
dict_load_foreign(
/*==============*/
				/* out: DB_SUCCESS or error code */
	const char*	id)	/* in: foreign constraint id as a
	const char*	id,	/* in: foreign constraint id as a
				null-terminated string */
	ibool		check_types)/* in: TRUE=check type compatibility */
{	
	dict_foreign_t*	foreign;
	dict_table_t*	sys_foreign;
@@ -1102,7 +1103,6 @@ dict_load_foreign(
	rec_t*		rec;
	byte*		field;
	ulint		len;
	ulint		err;
	mtr_t		mtr;
	
#ifdef UNIV_SYNC_DEBUG
@@ -1204,9 +1204,7 @@ dict_load_foreign(
	a new foreign key constraint but loading one from the data
	dictionary. */

	err = dict_foreign_add_to_cache(foreign);

	return(err); 
	return(dict_foreign_add_to_cache(foreign, check_types));
}

/***************************************************************************
@@ -1220,7 +1218,8 @@ ulint
dict_load_foreigns(
/*===============*/
					/* out: DB_SUCCESS or error code */
	const char*	table_name)	/* in: table name */
	const char*	table_name,	/* in: table name */
	ibool		check_types)	/* in: TRUE=check type compatibility */
{
	btr_pcur_t	pcur;
	mem_heap_t* 	heap;
@@ -1320,7 +1319,7 @@ dict_load_foreigns(

	/* Load the foreign constraint definition to the dictionary cache */
	
	err = dict_load_foreign(id);
	err = dict_load_foreign(id, check_types);

	if (err != DB_SUCCESS) {
		btr_pcur_close(&pcur);
+2 −1
Original line number Diff line number Diff line
@@ -1450,7 +1450,8 @@ fil_write_flushed_lsn_to_data_files(
		cache. Note that all data files in the system tablespace 0 are
		always open. */

		if (space->purpose == FIL_TABLESPACE) {
		if (space->purpose == FIL_TABLESPACE
		    && space->id == 0) {
			sum_of_sizes = 0;

			node = UT_LIST_GET_FIRST(space->chain);
+2 −1
Original line number Diff line number Diff line
@@ -189,7 +189,8 @@ ulint
dict_foreign_add_to_cache(
/*======================*/
					/* out: DB_SUCCESS or error code */
	dict_foreign_t*	foreign);	/* in, own: foreign key constraint */
	dict_foreign_t*	foreign,	/* in, own: foreign key constraint */
	ibool		check_types);	/* in: TRUE=check type compatibility */
/*************************************************************************
Checks if a table is referenced by foreign keys. */

+2 −1
Original line number Diff line number Diff line
@@ -81,7 +81,8 @@ ulint
dict_load_foreigns(
/*===============*/
					/* out: DB_SUCCESS or error code */
	const char*	table_name);	/* in: table name */
	const char*	table_name,	/* in: table name */
	ibool		check_types);	/* in: TRUE=check type compatibility */
/************************************************************************
Prints to the standard output information on all tables found in the data
dictionary system table. */
Loading