Commit cf22d33a authored by unknown's avatar unknown
Browse files

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

into  mysql.com:/home/alexi/innodb-ss/mysql-5.0-ss115

parents bf38d007 7bafd119
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ Created 1/16/1996 Heikki Tuuri

extern ulint	data_mysql_default_charset_coll;
#define DATA_MYSQL_LATIN1_SWEDISH_CHARSET_COLL 8
#define DATA_MYSQL_BINARY_CHARSET_COLL 63

/* SQL data type struct */
typedef struct dtype_struct		dtype_t;
@@ -311,7 +312,7 @@ dtype_get_pad_char(
/*===============*/
				/* out: padding character code, or
				ULINT_UNDEFINED if no padding specified */
	dtype_t*	type);	/* in: type */
	const dtype_t*	type);	/* in: type */
/***************************************************************************
Returns the size of a fixed size data type, 0 if not a fixed size type. */
UNIV_INLINE
+24 −15
Original line number Diff line number Diff line
@@ -188,27 +188,36 @@ dtype_get_pad_char(
/*===============*/
				/* out: padding character code, or
				ULINT_UNDEFINED if no padding specified */
	dtype_t*	type)	/* in: type */
	const dtype_t*	type)	/* in: type */
{
	if (type->mtype == DATA_CHAR
	    || type->mtype == DATA_VARCHAR
	    || type->mtype == DATA_BINARY
	    || type->mtype == DATA_FIXBINARY
	    || type->mtype == DATA_MYSQL
	    || type->mtype == DATA_VARMYSQL
	    || (type->mtype == DATA_BLOB
		&& (type->prtype & DATA_BINARY_TYPE) == 0)) {

	switch (type->mtype) {
	case DATA_FIXBINARY:
	case DATA_BINARY:
		if (UNIV_UNLIKELY(dtype_get_charset_coll(type->prtype)
		    == DATA_MYSQL_BINARY_CHARSET_COLL)) {
			/* Starting from 5.0.18, do not pad
			VARBINARY or BINARY columns. */
			return(ULINT_UNDEFINED);
		}
		/* Fall through */
	case DATA_CHAR:
	case DATA_VARCHAR:
	case DATA_MYSQL:
	case DATA_VARMYSQL:
		/* Space is the padding character for all char and binary
	        strings, and starting from 5.0.3, also for TEXT strings. */

		return((ulint)' ');
		return(0x20);
	case DATA_BLOB:
		if ((type->prtype & DATA_BINARY_TYPE) == 0) {
			return(0x20);
		}

		/* Fall through */
	default:
		/* No padding specified */

		return(ULINT_UNDEFINED);
	}
}

/**************************************************************************
Stores for a type the information which determines its alphabetical ordering
+12 −8
Original line number Diff line number Diff line
@@ -64,14 +64,6 @@ lock_clust_rec_some_has_impl(
	dict_index_t*	index,	/* in: clustered index */
	const ulint*	offsets);/* in: rec_get_offsets(rec, index) */
/*****************************************************************
Resets the lock bits for a single record. Releases transactions
waiting for lock requests here. */

void
lock_rec_reset_and_release_wait(
/*============================*/
	rec_t*	rec);	/* in: record whose locks bits should be reset */
/*****************************************************************
Makes a record to inherit the locks of another record as gap type
locks, but does not reset the lock bits of the other record. Also
waiting lock requests on rec are inherited as GRANTED gap locks. */
@@ -427,6 +419,18 @@ lock_is_on_table(
/*=============*/
				/* out: TRUE if there are lock(s) */
	dict_table_t*	table);	/* in: database table in dictionary cache */
/*****************************************************************
Removes a granted record lock of a transaction from the queue and grants
locks to other transactions waiting in the queue if they now are entitled
to a lock. */

void
lock_rec_unlock(
/*============*/
	trx_t*	trx,  		/* in: transaction that has set a record
				lock */
	rec_t*	rec,		/* in: record */
	ulint	lock_mode);	/* in: LOCK_S or LOCK_X */
/*************************************************************************
Releases a table lock.
Releases possible other transactions waiting for this lock. */
+3 −2
Original line number Diff line number Diff line
@@ -91,9 +91,10 @@ log. */
#define	OS_FILE_NOT_FOUND		71
#define	OS_FILE_DISK_FULL		72
#define	OS_FILE_ALREADY_EXISTS		73
#define OS_FILE_AIO_RESOURCES_RESERVED	74	/* wait for OS aio resources
#define	OS_FILE_PATH_ERROR		74
#define	OS_FILE_AIO_RESOURCES_RESERVED	75	/* wait for OS aio resources
						to become available again */
#define	OS_FILE_ERROR_NOT_SPECIFIED	75
#define	OS_FILE_ERROR_NOT_SPECIFIED	76

/* Types for aio operations */
#define OS_FILE_READ	10
+3 −2
Original line number Diff line number Diff line
@@ -250,7 +250,8 @@ trx_register_new_rec_lock() to store the information which new record locks
really were set. This function removes a newly set lock under prebuilt->pcur,
and also under prebuilt->clust_pcur. Currently, this is only used and tested
in the case of an UPDATE or a DELETE statement, where the row lock is of the
LOCK_X type.
LOCK_X or LOCK_S type. 

Thus, this implements a 'mini-rollback' that releases the latest record 
locks we set. */

Loading