mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
4.1->5.0 merge
include/config-netware.h: Merged innobase/row/row0ins.c: BUG#10511: Per alexi's instructions, the changes in innobase/row/row0ins.c are not propagated to 5.x mysql-test/r/create.result: Auto Merged mysql-test/t/create.test: Auto Merged sql/field.cc: Auto Merged sql/field.h: Manual Merge sql/sql_table.cc: Auto Merged
This commit is contained in:
@ -118,15 +118,12 @@ extern "C" {
|
|||||||
/* do not use the extended time in LibC sys\stat.h */
|
/* do not use the extended time in LibC sys\stat.h */
|
||||||
#define _POSIX_SOURCE
|
#define _POSIX_SOURCE
|
||||||
|
|
||||||
/* Kernel call on NetWare that will only yield if our time slice is up */
|
|
||||||
void kYieldIfTimeSliceUp(void);
|
|
||||||
|
|
||||||
/* Some macros for portability */
|
/* Some macros for portability */
|
||||||
|
|
||||||
#define set_timespec(ABSTIME,SEC) { (ABSTIME).tv_sec=time(NULL)+(SEC); (ABSTIME).tv_nsec=0; }
|
#define set_timespec(ABSTIME,SEC) { (ABSTIME).tv_sec=time(NULL)+(SEC); (ABSTIME).tv_nsec=0; }
|
||||||
|
|
||||||
/* extra protection against CPU Hogs on NetWare */
|
/* extra protection against CPU Hogs on NetWare */
|
||||||
#define NETWARE_YIELD kYieldIfTimeSliceUp()
|
#define NETWARE_YIELD pthread_yield()
|
||||||
/* Screen mode for help texts */
|
/* Screen mode for help texts */
|
||||||
#define NETWARE_SET_SCREEN_MODE(A) setscreenmode(A)
|
#define NETWARE_SET_SCREEN_MODE(A) setscreenmode(A)
|
||||||
|
|
||||||
|
@ -641,3 +641,14 @@ create table if not exists t1 (a int);
|
|||||||
Warnings:
|
Warnings:
|
||||||
Note 1050 Table 't1' already exists
|
Note 1050 Table 't1' already exists
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (
|
||||||
|
a varchar(112) charset utf8 collate utf8_bin not null,
|
||||||
|
primary key (a)
|
||||||
|
) select 'test' as a ;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(112) character set utf8 collate utf8_bin NOT NULL default '',
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
@ -545,4 +545,12 @@ create table t1 (a int);
|
|||||||
create table if not exists t1 (a int);
|
create table if not exists t1 (a int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
# BUG#14139
|
||||||
|
create table t1 (
|
||||||
|
a varchar(112) charset utf8 collate utf8_bin not null,
|
||||||
|
primary key (a)
|
||||||
|
) select 'test' as a ;
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
12
sql/field.cc
12
sql/field.cc
@ -8186,8 +8186,20 @@ void Field_bit_as_char::sql_type(String &res) const
|
|||||||
Handling of field and create_field
|
Handling of field and create_field
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Convert create_field::length from number of characters to number of bytes
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
create_field::create_length_to_internal_length()
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Convert create_field::length from number of characters to number of bytes,
|
||||||
|
save original value in chars_length.
|
||||||
|
*/
|
||||||
|
|
||||||
void create_field::create_length_to_internal_length(void)
|
void create_field::create_length_to_internal_length(void)
|
||||||
{
|
{
|
||||||
|
chars_length= length;
|
||||||
switch (sql_type) {
|
switch (sql_type) {
|
||||||
case MYSQL_TYPE_TINY_BLOB:
|
case MYSQL_TYPE_TINY_BLOB:
|
||||||
case MYSQL_TYPE_MEDIUM_BLOB:
|
case MYSQL_TYPE_MEDIUM_BLOB:
|
||||||
|
@ -1368,6 +1368,11 @@ public:
|
|||||||
LEX_STRING comment; // Comment for field
|
LEX_STRING comment; // Comment for field
|
||||||
Item *def; // Default value
|
Item *def; // Default value
|
||||||
enum enum_field_types sql_type;
|
enum enum_field_types sql_type;
|
||||||
|
/*
|
||||||
|
At various stages in execution this can be length of field in bytes or
|
||||||
|
max number of characters.
|
||||||
|
*/
|
||||||
|
ulong length;
|
||||||
ulong length;
|
ulong length;
|
||||||
uint decimals, flags, pack_length, key_length;
|
uint decimals, flags, pack_length, key_length;
|
||||||
Field::utype unireg_check;
|
Field::utype unireg_check;
|
||||||
|
@ -839,8 +839,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
sql_field->charset= (dup_field->charset ?
|
sql_field->charset= (dup_field->charset ?
|
||||||
dup_field->charset :
|
dup_field->charset :
|
||||||
create_info->default_table_charset);
|
create_info->default_table_charset);
|
||||||
sql_field->length= dup_field->length;
|
sql_field->length= dup_field->chars_length;
|
||||||
sql_field->pack_length= dup_field->pack_length;
|
sql_field->pack_length= dup_field->pack_length;
|
||||||
sql_field->key_length= dup_field->key_length;
|
sql_field->key_length= dup_field->key_length;
|
||||||
sql_field->create_length_to_internal_length();
|
sql_field->create_length_to_internal_length();
|
||||||
sql_field->decimals= dup_field->decimals;
|
sql_field->decimals= dup_field->decimals;
|
||||||
|
Reference in New Issue
Block a user