Commit a55e4769 authored by unknown's avatar unknown
Browse files

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

into hundin.mysql.fi:/home/jan/talle/mysql-4.1


mysql-test/t/ctype_utf8.test:
  Auto merged
parents 77d7398e dbe27392
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2244,7 +2244,7 @@ dict_foreign_add_to_cache(
Scans from pointer onwards. Stops if is at the start of a copy of
'string' where characters are compared without case sensitivity. Stops
also at '\0'. */
static

const char*
dict_scan_to(
/*=========*/
+12 −0
Original line number Diff line number Diff line
@@ -891,6 +891,18 @@ dict_tables_have_same_db(
	const char*	name2);	/* in: table name in the form
				dbname '/' tablename */

/*************************************************************************
Scans from pointer onwards. Stops if is at the start of a copy of
'string' where characters are compared without case sensitivity. Stops
also at '\0'. */

const char*
dict_scan_to(
/*=========*/
				/* out: scanned up to this */
	const char*	ptr,	/* in: scan from */
	const char*	string);/* in: look for this */

/* Buffers for storing detailed information about the latest foreign key
and unique key errors */
extern FILE*	dict_foreign_err_file;
+14 −17
Original line number Diff line number Diff line
@@ -1483,7 +1483,7 @@ row_ins_scan_sec_index_for_duplicate(
	ibool		moved;
	mtr_t		mtr;
	trx_t*		trx;
        ibool           success;
	const char*	ptr;
	
	n_unique = dict_index_get_n_unique(index);

@@ -1523,9 +1523,11 @@ row_ins_scan_sec_index_for_duplicate(

		trx = thr_get_trx(thr);      
		ut_ad(trx);
		dict_accept(*trx->mysql_query_str, "REPLACE", &success);

		if (success) {
		ptr = dict_scan_to(*(trx->mysql_query_str),
				   "REPLACE");
		
		if ( ptr && *ptr != '\0') {

			/* The manual defines the REPLACE semantics that it 
			is either an INSERT or DELETE(s) for duplicate key
@@ -1605,7 +1607,7 @@ row_ins_duplicate_error_in_clust(
	page_t*	page;
	ulint	n_unique;
	trx_t*	trx	= thr_get_trx(thr);
        ibool   success;
	const char*	ptr;

	UT_NOT_USED(mtr);
	
@@ -1639,10 +1641,9 @@ row_ins_duplicate_error_in_clust(
			sure that in roll-forward we get the same duplicate
			errors as in original execution */

			dict_accept(*trx->mysql_query_str, "REPLACE", 
				    &success);
			ptr = dict_scan_to(*(trx->mysql_query_str), "REPLACE");

			if (success) {
			if (ptr && *ptr != '\0') {

				/* The manual defines the REPLACE semantics 
				that it is either an INSERT or DELETE(s) 
@@ -1683,15 +1684,11 @@ row_ins_duplicate_error_in_clust(
			/* The manual defines the REPLACE semantics that it 
			is either an INSERT or DELETE(s) for duplicate key
			+ INSERT. Therefore, we should take X-lock for
			duplicates.
		        */

			/* Is the first word in MySQL query REPLACE ? */
			duplicates. */

		 	dict_accept(*trx->mysql_query_str, "REPLACE", 
				    &success);
			ptr = dict_scan_to(*(trx->mysql_query_str), "REPLACE");
			
			if (success) {
			if (ptr && *ptr != '\0') {

				err = row_ins_set_exclusive_rec_lock(
						LOCK_REC_NOT_GAP,
+10 −16
Original line number Diff line number Diff line
@@ -2794,7 +2794,7 @@ row_search_for_mysql(
	rec_t*		index_rec;
	rec_t*		clust_rec;
	rec_t*		old_vers;
	ulint		err;
	ulint		err             = DB_SUCCESS;
	ibool		moved;
	ibool		cons_read_requires_clust_rec;
	ibool		was_lock_wait;
@@ -3206,16 +3206,10 @@ row_search_for_mysql(
			/* Try to place a lock on the index record */

			/* If innodb_locks_unsafe_for_binlog option is used,
                           we lock only the record, i.e. next-key locking is
                           not used.
	                */
	                if ( srv_locks_unsafe_for_binlog )
	                {
			    err = sel_set_rec_lock(rec, index,
						prebuilt->select_lock_type,
						LOCK_REC_NOT_GAP, thr);
			}
			else
			we do not lock gaps. Supremum record is really
			a gap and therefore we do not set locks there. */
			
			if ( srv_locks_unsafe_for_binlog == FALSE )
			{
				err = sel_set_rec_lock(rec, index,
						prebuilt->select_lock_type,
+1 −0
Original line number Diff line number Diff line
@@ -568,6 +568,7 @@ DROP TABLE t1;
#
# Bug #5723: length(<varchar utf8 field>) returns varying results
#
--disable_warnings
SET NAMES utf8;
--disable_warnings
CREATE TABLE t1 (