diff options
40 files changed, 413 insertions, 187 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 0b6312b0445..2dd5daa4999 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -1,6 +1,10 @@ +Administrator@co3064164-a. +Administrator@co3064164-a.rochd1.qld.optushome.com.au Administrator@fred. Miguel@light.local Sinisa@sinisa.nasamreza.org +ahlentz@co3064164-a.rochd1.qld.optusnet.com.au +arjen@co3064164-a.bitbike.com davida@isil.mysql.com heikki@donna.mysql.fi jani@hynda.mysql.fi @@ -13,6 +17,7 @@ monty@bitch.mysql.fi monty@donna.mysql.fi monty@hundin.mysql.fi monty@tik.mysql.fi +monty@tramp.mysql.fi monty@work.mysql.com mwagner@evoq.mwagner.org paul@central.snake.net @@ -31,7 +36,3 @@ tonu@hundin.mysql.fi tonu@volk.internalnet tonu@x153.internalnet tonu@x3.internalnet -Administrator@co3064164-a. -Administrator@co3064164-a.rochd1.qld.optushome.com.au -ahlentz@co3064164-a.rochd1.qld.optusnet.com.au -arjen@co3064164-a.bitbike.com diff --git a/Docs/internals.texi b/Docs/internals.texi index f255a7ab6a6..72724a22ec0 100644 --- a/Docs/internals.texi +++ b/Docs/internals.texi @@ -183,24 +183,28 @@ and then we read the rows in the sorted order into a row buffer We are using @uref{http://www.bitkeeper.com/, BitKeeper} for source management. @item -You should use the @strong{MySQL} 3.23 or 4.0 source for all developments. +You should use the @strong{MySQL} 4.0 source for all developments. @item If you have any questions about the @strong{MySQL} source, you can post these -to @email{developers@@mysql.com} and we will answer them. -Note that we will shortly change the name of this list to -@email{internals@@mysql.com}, to more accurately reflect what should be -posted to this list. +to @email{dev-public@@mysql.com} and we will answer them. Please +remember to not use this internal email list in public! @item -Try to write code in a lot of black boxes that can be reused or at -least have a clean interface. +Try to write code in a lot of black boxes that can be reused or use at +least a clean, easy to change interface. @item Reuse code; There is already a lot of algorithms in MySQL for list handling, queues, dynamic and hashed arrays, sorting, etc. that can be reused. @item +Use the @code{my_*} functions like @code{my_read()}/@code{my_write()}/ +@code{my_malloc()} that you can find in the @code{mysys} library instead +of the direct system calls; This will make your code easier to debug and +more portable. + +@item Try to always write optimized code, so that you don't have to go back and rewrite it a couple of months later. It's better to spend 3 times as much time designing and writing an optimal function than @@ -222,7 +226,11 @@ Do not check the same pointer for @code{NULL} more than once. @item Use long function and variable names in English; This makes your code -easier to read. Use the 'varible_name' style instead of 'VariableName'. +easier to read. + +@item +Use my_var as opposed to myVar or MyVar (@samp{_} rather than dancing SHIFT +to seperate words in identifiers). @item Think assembly - make it easier for the compiler to optimize your code. @@ -232,14 +240,8 @@ Comment your code when you do something that someone else may think is not ''trivial''. @item -Use the @code{my_*} functions like @code{my_read()}/@code{my_write()}/ -@code{my_malloc()} that you can find in the @code{mysys} library instead -of the direct system calls; This will make your code easier to debug and -more portable. - -@item -Use @code{libstring} functions instead of standard libc string functions -whenever possible. +Use @code{libstring} functions (in the strings directory) +instead of standard libc string functions whenever possible. @item Avoid using @code{malloc()} (its REAL slow); For memory allocations @@ -254,10 +256,6 @@ easily discuss it thoroughly if some other developer thinks there is better way to do the same thing! @item -Use my_var as opposed to myVar or MyVar (@samp{_} rather than dancing SHIFT -to seperate words in identifiers). - -@item Class names start with a capital letter. @item diff --git a/configure.in b/configure.in index 4e22e4db664..b3927ac6961 100644 --- a/configure.in +++ b/configure.in @@ -1769,7 +1769,7 @@ then fi AC_SUBST(tools_dirs) -MYSQL_CHECK_CPU +#MYSQL_CHECK_CPU MYSQL_CHECK_MYSQLFS MYSQL_CHECK_VIO MYSQL_CHECK_OPENSSL diff --git a/include/mysql.h b/include/mysql.h index 5158fef6045..34b73bd5a7c 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -253,15 +253,15 @@ typedef struct st_mysql_manager /* Set up and bring down the server; to ensure that applications will * work when linked against either the standard client library or the * embedded server library, these functions should be called. */ -int mysql_server_init(int argc, char **argv, char **groups); -void mysql_server_end(void); +int STDCALL mysql_server_init(int argc, char **argv, char **groups); +void STDCALL mysql_server_end(void); /* Set up and bring down a thread; these function should be called * for each thread in an application which opens at least one MySQL * connection. All uses of the connection(s) should be between these * function calls. */ -my_bool mysql_thread_init(void); -void mysql_thread_end(void); +my_bool STDCALL mysql_thread_init(void); +void STDCALL mysql_thread_end(void); /* Functions to get information from the MYSQL and MYSQL_RES structures */ /* Should definitely be used if one uses shared libraries */ @@ -414,8 +414,8 @@ MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, int STDCALL mysql_create_db(MYSQL *mysql, const char *DB); int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); #define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) -#define HAVE_MYSQL_REAL_CONNECT #endif +#define HAVE_MYSQL_REAL_CONNECT /* The following functions are mainly exported because of mysqlbinlog; diff --git a/include/mysqld_error.h b/include/mysqld_error.h index 5ac14c1155b..5fe8d6f5642 100644 --- a/include/mysqld_error.h +++ b/include/mysqld_error.h @@ -214,13 +214,16 @@ #define ER_NO_PERMISSION_TO_CREATE_USER 1211 #define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212 #define ER_LOCK_DEADLOCK 1213 -#define ER_CONNECT_TO_MASTER 1214 -#define ER_QUERY_ON_MASTER 1215 -#define ER_ERROR_WHEN_EXECUTING_COMMAND 1216 -#define ER_WRONG_USAGE 1217 -#define ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 1218 -#define ER_CANT_UPDATE_WITH_READLOCK 1219 -#define ER_MIXING_NOT_ALLOWED 1220 -#define ER_DUP_ARGUMENT 1221 -#define ER_TABLE_CANT_HANDLE_FULLTEXT 1222 -#define ER_ERROR_MESSAGES 223 +#define ER_TABLE_CANT_HANDLE_FULLTEXT 1214 +#define ER_CANNOT_ADD_FOREIGN 1215 +#define ER_NO_REFERENCED_ROW 1216 +#define ER_ROW_IS_REFERENCED 1217 +#define ER_CONNECT_TO_MASTER 1218 +#define ER_QUERY_ON_MASTER 1219 +#define ER_ERROR_WHEN_EXECUTING_COMMAND 1220 +#define ER_WRONG_USAGE 1221 +#define ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 1222 +#define ER_CANT_UPDATE_WITH_READLOCK 1223 +#define ER_MIXING_NOT_ALLOWED 1224 +#define ER_DUP_ARGUMENT 1225 +#define ER_ERROR_MESSAGES 226 diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 8f228f51ed7..3a76998b655 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -91,17 +91,17 @@ static sig_handler pipe_sig_handler(int sig); static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to, const char *from, ulong length); -int mysql_server_init(int argc __attribute__((unused)), - char **argv __attribute__((unused)), - char **groups __attribute__((unused))) +int STDCALL mysql_server_init(int argc __attribute__((unused)), + char **argv __attribute__((unused)), + char **groups __attribute__((unused))) { return 0; } -void mysql_server_end() +void STDCALL mysql_server_end() {} -my_bool mysql_thread_init() +my_bool STDCALL mysql_thread_init() { #ifdef THREAD return my_thread_init(); @@ -110,7 +110,7 @@ my_bool mysql_thread_init() #endif } -void mysql_thread_end() +void STDCALL mysql_thread_end() { #ifdef THREAD my_thread_end(); diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 139f9b9c0c7..d241ceaada0 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -296,7 +296,7 @@ extern "C" static my_bool inited, org_my_init_done; -int mysql_server_init(int argc, char **argv, char **groups) +int STDCALL mysql_server_init(int argc, char **argv, char **groups) { char glob_hostname[FN_REFLEN]; @@ -561,7 +561,7 @@ int mysql_server_init(int argc, char **argv, char **groups) } -void mysql_server_end() +void STDCALL mysql_server_end() { clean_up(0); #ifdef THREAD @@ -571,7 +571,7 @@ void mysql_server_end() #endif } -my_bool mysql_thread_init() +my_bool STDCALL mysql_thread_init() { #ifdef THREAD return my_thread_init(); @@ -580,7 +580,7 @@ my_bool mysql_thread_init() #endif } -void mysql_thread_end() +void STDCALL mysql_thread_end() { #ifdef THREAD my_thread_end(); diff --git a/myisam/mi_dynrec.c b/myisam/mi_dynrec.c index c07fa5aa080..4facda91626 100644 --- a/myisam/mi_dynrec.c +++ b/myisam/mi_dynrec.c @@ -190,6 +190,8 @@ static int _mi_find_writepos(MI_INFO *info, my_errno=HA_ERR_RECORD_FILE_FULL; DBUG_RETURN(-1); } + if (*length > MI_MAX_BLOCK_LENGTH) + *length=MI_MAX_BLOCK_LENGTH; info->state->data_file_length+= *length; info->s->state.split++; info->update|=HA_STATE_WRITE_AT_END; @@ -370,19 +372,30 @@ int _mi_write_part_record(MI_INFO *info, info->s->state.dellink : info->state->data_file_length; if (*flag == 0) /* First block */ { - head_length=5+8+long_block*2; - temp[0]=5+(uchar) long_block; - if (long_block) + if (*reclength > MI_MAX_BLOCK_LENGTH) { - mi_int3store(temp+1,*reclength); + head_length= 16; + temp[0]=13; + mi_int4store(temp+1,*reclength); mi_int3store(temp+4,length-head_length); - mi_sizestore((byte*) temp+7,next_filepos); + mi_sizestore((byte*) temp+8,next_filepos); } else { - mi_int2store(temp+1,*reclength); - mi_int2store(temp+3,length-head_length); - mi_sizestore((byte*) temp+5,next_filepos); + head_length=5+8+long_block*2; + temp[0]=5+(uchar) long_block; + if (long_block) + { + mi_int3store(temp+1,*reclength); + mi_int3store(temp+4,length-head_length); + mi_sizestore((byte*) temp+7,next_filepos); + } + else + { + mi_int2store(temp+1,*reclength); + mi_int2store(temp+3,length-head_length); + mi_sizestore((byte*) temp+5,next_filepos); + } } } else @@ -1433,10 +1446,10 @@ uint _mi_get_block_info(MI_BLOCK_INFO *info, File file, my_off_t filepos) } else { - if (info->header[0] > 6) + if (info->header[0] > 6 && info->header[0] != 13) return_val=BLOCK_SYNC_ERROR; } - info->next_filepos= HA_OFFSET_ERROR; /* Dummy ifall no next block */ + info->next_filepos= HA_OFFSET_ERROR; /* Dummy if no next block */ switch (info->header[0]) { case 0: @@ -1470,6 +1483,14 @@ uint _mi_get_block_info(MI_BLOCK_INFO *info, File file, my_off_t filepos) info->filepos=filepos+4; return return_val | BLOCK_FIRST | BLOCK_LAST; + case 13: + info->rec_len=mi_uint4korr(header+1); + info->block_len=info->data_len=mi_uint3korr(header+5); + info->next_filepos=mi_sizekorr(header+8); + info->second_read=1; + info->filepos=filepos+16; + return return_val | BLOCK_FIRST; + case 3: info->rec_len=info->data_len=mi_uint2korr(header+1); info->block_len=info->rec_len+ (uint) header[3]; diff --git a/myisam/mi_open.c b/myisam/mi_open.c index 675dac38d41..6da1dc926c5 100644 --- a/myisam/mi_open.c +++ b/myisam/mi_open.c @@ -115,7 +115,7 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) DBUG_PRINT("error",("Wrong header in %s",name_buff)); DBUG_DUMP("error_dump",(char*) share->state.header.file_version, head_length); - my_errno=HA_ERR_CRASHED; + my_errno=HA_ERR_WRONG_TABLE_DEF; goto err; } share->options= mi_uint2korr(share->state.header.options); diff --git a/myisam/myisamdef.h b/myisam/myisamdef.h index 33837dfda00..ea77d700234 100644 --- a/myisam/myisamdef.h +++ b/myisam/myisamdef.h @@ -356,7 +356,8 @@ struct st_myisam_info { #define MI_DYN_MAX_BLOCK_LENGTH ((1L << 24)-4L) #define MI_DYN_MAX_ROW_LENGTH (MI_DYN_MAX_BLOCK_LENGTH - MI_SPLIT_LENGTH) #define MI_DYN_ALIGN_SIZE 4 /* Align blocks on this */ -#define MI_MAX_DYN_HEADER_BYTE 12 /* max header byte for dynamic rows */ +#define MI_MAX_DYN_HEADER_BYTE 13 /* max header byte for dynamic rows */ +#define MI_MAX_BLOCK_LENGTH (((ulong) 1 << 24)-1) #define MEMMAP_EXTRA_MARGIN 7 /* Write this as a suffix for file */ diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result index d2975c33a47..4d6ef5ada98 100644 --- a/mysql-test/r/alter_table.result +++ b/mysql-test/r/alter_table.result @@ -6,10 +6,16 @@ col3 varchar (20) not null, col4 varchar(4) not null, col5 enum('PENDING', 'ACTIVE', 'DISABLED') not null, col6 int not null, to_be_deleted int); +insert into t1 values (2,4,3,5,"PENDING",1,7); alter table t1 add column col4_5 varchar(20) not null after col4, -add column col7 varchar(30) not null after col6, -add column col8 datetime not null, drop column to_be_deleted; +add column col7 varchar(30) not null after col5, +add column col8 datetime not null, drop column to_be_deleted, +change column col2 fourth varchar(30) not null after col3, +modify column col6 int not null first; +select * from t1; +col6 col1 col3 fourth col4 col4_5 col5 col7 col8 +1 2 3 4 5 PENDING 0000-00-00 00:00:00 drop table t1; create table t1 (bandID MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY, payoutID SMALLINT UNSIGNED NOT NULL); insert into t1 (bandID,payoutID) VALUES (1,6),(2,6),(3,4),(4,9),(5,10),(6,1),(7,12),(8,12); diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test index 681e3d36cca..22af6663e0a 100644 --- a/mysql-test/t/alter_table.test +++ b/mysql-test/t/alter_table.test @@ -10,10 +10,14 @@ col3 varchar (20) not null, col4 varchar(4) not null, col5 enum('PENDING', 'ACTIVE', 'DISABLED') not null, col6 int not null, to_be_deleted int); +insert into t1 values (2,4,3,5,"PENDING",1,7); alter table t1 add column col4_5 varchar(20) not null after col4, -add column col7 varchar(30) not null after col6, -add column col8 datetime not null, drop column to_be_deleted; +add column col7 varchar(30) not null after col5, +add column col8 datetime not null, drop column to_be_deleted, +change column col2 fourth varchar(30) not null after col3, +modify column col6 int not null first; +select * from t1; drop table t1; create table t1 (bandID MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY, payoutID SMALLINT UNSIGNED NOT NULL); diff --git a/sql-bench/limits/db2.cfg b/sql-bench/limits/db2.cfg index 31280fbe643..5b2c0e172e7 100644 --- a/sql-bench/limits/db2.cfg +++ b/sql-bench/limits/db2.cfg @@ -1,34 +1,68 @@ -#This file is automaticly generated by crash-me 1.19a +#This file is automaticly generated by crash-me 1.57 NEG=yes # update of column= -column +Need_cast_for_null=no # Need to cast NULL for arithmetic alter_add_col=yes # Alter table add column +alter_add_constraint=yes # Alter table add constraint +alter_add_foreign_key=yes # Alter table add foreign key +alter_add_multi_col=no # Alter table add many columns +alter_add_primary_key=with constraint # Alter table add primary key +alter_add_unique=no # Alter table add unique +alter_alter_col=no # Alter table alter column default alter_change_col=no # Alter table change column alter_drop_col=no # Alter table drop column +alter_drop_constraint=yes # Alter table drop constraint +alter_drop_foreign_key=with drop constraint # Alter table drop foreign key +alter_drop_primary_key=drop primary key # Alter table drop primary key +alter_drop_unique=no # Alter table drop unique alter_modify_col=no # Alter table modify column alter_rename_table=no # Alter table rename table atomic_updates=yes # atomic updates atomic_updates_with_rollback=yes # atomic_updates_with_rollback -binary_items=no # binary items (0x41) -case_insensitive_strings=no # case insensitive compare -char_is_space_filled=no # char are space filled +automatic_rowid=no # Automatic row id +binary_numbers=no # binary numbers (0b1001) +binary_strings=no # binary strings (b'0110') +case_insensitive_strings=no # Case insensitive compare +char_is_space_filled=yes # char are space filled column_alias=yes # Column alias +columns_in_group_by=+64 # number of columns in group by +columns_in_order_by=+64 # number of columns in order by comment_#=no # # as comment -comment_--=yes # -- as comment +comment_--=yes # -- as comment (ANSI) comment_/**/=no # /* */ as comment +comment_//=no # // as comment compute=no # Compute -connections=125 # Simultaneous connections +connections=40 # Simultaneous connections (installation default) +constraint_check=yes # Column constraints +constraint_check_table=yes # Table constraints +constraint_null=no # NULL constraint (SyBase style) crash_me_safe=no # crash me safe -crash_me_version=1.19a # crash me version +crash_me_version=1.57 # crash me version create_default=yes # default value for column +create_default_func=no # default value function for column +create_if_not_exists=no # create table if not exists create_index=yes # create index +create_schema=no # Create SCHEMA +create_table_select=no # create table from select cross_join=no # cross join (same as from a,b) date_as_string=no # String functions on date columns +date_infinity=no # Supports 'infinity dates +date_last=no # Supports 9999-12-31 dates +date_one=no # Supports 0001-01-01 dates date_with_YY=no # Supports YY-MM-DD dates date_zero=no # Supports 0000-00-00 dates +domains=no # Domains (ANSI SQL) +dont_require_cast_to_float=yes # No need to cast from integer to float double_quotes=yes # Double '' as ' in strings +drop_if_exists=no # drop table if exists drop_index=yes # drop index +drop_requires_cascade=no # drop table require cascade/restrict +drop_restrict=no # drop table with cascade/restrict +end_colon=yes # allows end ';' except=yes # except except_all=yes # except all +except_all_incompat=no # except all (incompatible lists) +except_incompat=no # except (incompatible lists) float_int_expr=yes # mixing of integer and float in expression foreign_key=yes # foreign keys foreign_key_syntax=yes # foreign key syntax @@ -41,6 +75,8 @@ func_extra_<>=no # Function <> in SELECT func_extra_==no # Function = func_extra_add_months=no # Function ADD_MONTHS func_extra_and_or=no # Function AND and OR in SELECT +func_extra_ascii_char=no # Function ASCII_CHAR +func_extra_ascii_code=no # Function ASCII_CODE func_extra_atn2=no # Function ATN2 func_extra_auto_num2string=no # Function automatic num->string convert func_extra_auto_string2num=no # Function automatic string->num convert @@ -72,6 +108,7 @@ func_extra_in_num=no # Function IN on numbers in SELECT func_extra_in_str=no # Function IN on strings in SELECT func_extra_initcap=no # Function INITCAP func_extra_instr=no # Function LOCATE as INSTR +func_extra_instr_oracle=no # Function INSTR (Oracle syntax) func_extra_instrb=no # Function INSTRB func_extra_interval=no # Function INTERVAL func_extra_last_day=no # Function LAST_DAY @@ -84,16 +121,15 @@ func_extra_ln=yes # Function LN func_extra_log(m_n)=no # Function LOG(m,n) func_extra_logn=no # Function LOGN func_extra_lpad=no # Function LPAD -func_extra_max_num=no # Function MAX on numbers func_extra_mdy=no # Function MDY func_extra_mid=no # Function SUBSTRING as MID -func_extra_min_num=no # Function MIN on numbers func_extra_months_between=no # Function MONTHS_BETWEEN func_extra_not=no # Function NOT in SELECT func_extra_not_between=no # Function NOT BETWEEN in SELECT func_extra_not_like=no # Function NOT LIKE in SELECT func_extra_odbc_convert=no # Function ODBC CONVERT func_extra_password=no # Function PASSWORD +func_extra_paste=no # Function PASTE func_extra_patindex=no # Function PATINDEX func_extra_period_add=no # Function PERIOD_ADD func_extra_period_diff=no # Function PERIOD_DIFF @@ -112,6 +148,8 @@ func_extra_strcmp=no # Function STRCMP func_extra_stuff=no # Function STUFF func_extra_substrb=no # Function SUBSTRB func_extra_substring_index=no # Function SUBSTRING_INDEX +func_extra_sysdate=no # Function SYSDATE +func_extra_tail=no # Function TAIL func_extra_tanh=no # Function TANH func_extra_time_to_sec=no # Function TIME_TO_SEC func_extra_to_days=no # Function TO_DAYS @@ -126,6 +164,7 @@ func_extra_version=no # Function VERSION func_extra_weekday=no # Function WEEKDAY func_extra_|=no # Function | (bitwise or) func_extra_||=no # Function OR as '||' +func_extra_~*=no # Function ~* (case insensitive compare) func_odbc_abs=yes # Function ABS func_odbc_acos=yes # Function ACOS func_odbc_ascii=yes # Function ASCII @@ -133,31 +172,30 @@ func_odbc_asin=yes # Function ASIN func_odbc_atan=yes # Function ATAN func_odbc_atan2=error # Function ATAN2 func_odbc_ceiling=yes # Function CEILING -func_odbc_char=error # Function CHAR +func_odbc_char=yes # Function CHAR func_odbc_concat=yes # Function CONCAT(2 arg) func_odbc_cos=yes # Function COS func_odbc_cot=yes # Function COT -func_odbc_curdate=no # Function CURDATE -func_odbc_curtime=no # Function CURTIME -func_odbc_database=no # Function DATABASE -func_odbc_dayname=no # Function DAYNAME -func_odbc_dayofmonth=no # Function DAYOFMONTH -func_odbc_dayofweek=no # Function DAYOFWEEK -func_odbc_dayofyear=no # Function DAYOFYEAR +func_odbc_curdate=yes # Function CURDATE +func_odbc_curtime=yes # Function CURTIME +func_odbc_database=yes # Function DATABASE +func_odbc_dayname=yes # Function DAYNAME +func_odbc_dayofmonth=yes # Function DAYOFMONTH +func_odbc_dayofweek=yes # Function DAYOFWEEK +func_odbc_dayofyear=yes # Function DAYOFYEAR func_odbc_degrees=yes # Function DEGREES func_odbc_difference=yes # Function DIFFERENCE() func_odbc_exp=yes # Function EXP -func_odbc_extract=no # Function EXTRACT func_odbc_floor=yes # Function FLOOR func_odbc_fn_left=yes # Function ODBC syntax LEFT & RIGHT func_odbc_hour=yes # Function HOUR -func_odbc_hour_time=no # Function ANSI HOUR -func_odbc_ifnull=no # Function IFNULL +func_odbc_hour_time=yes # Function ANSI HOUR +func_odbc_ifnull=yes # Function IFNULL func_odbc_insert=yes # Function INSERT func_odbc_lcase=yes # Function LCASE func_odbc_left=yes # Function LEFT func_odbc_length=yes # Function REAL LENGTH -func_odbc_length_without_space=error # Function ODBC LENGTH +func_odbc_length_without_space=yes # Function ODBC LENGTH func_odbc_locate_2=yes # Function LOCATE(2 arg) func_odbc_locate_3=yes # Function LOCATE(3 arg) func_odbc_log=yes # Function LOG @@ -165,12 +203,12 @@ func_odbc_log10=yes # Function LOG10 func_odbc_ltrim=yes # Function LTRIM func_odbc_minute=yes # Function MINUTE func_odbc_mod=yes # Function MOD -func_odbc_month=no # Function MONTH -func_odbc_monthname=no # Function MONTHNAME -func_odbc_now=no # Function NOW -func_odbc_pi=no # Function PI +func_odbc_month=yes # Function MONTH +func_odbc_monthname=yes # Function MONTHNAME +func_odbc_now=yes # Function NOW +func_odbc_pi=yes # Function PI func_odbc_power=yes # Function POWER -func_odbc_quarter=no # Function QUARTER +func_odbc_quarter=yes # Function QUARTER func_odbc_radians=yes # Function RADIANS func_odbc_rand=yes # Function RAND func_odbc_repeat=yes # Function REPEAT @@ -184,38 +222,43 @@ func_odbc_sin=yes # Function SIN func_odbc_soundex=yes # Function SOUNDEX func_odbc_space=yes # Function SPACE func_odbc_sqrt=yes # Function SQRT -func_odbc_substring=no # Function ODBC SUBSTRING +func_odbc_substring=yes # Function ODBC SUBSTRING func_odbc_tan=yes # Function TAN func_odbc_timestampadd=no # Function TIMESTAMPADD func_odbc_timestampdiff=no # Function TIMESTAMPDIFF func_odbc_truncate=yes # Function TRUNCATE -func_odbc_ucase=no # Function UCASE -func_odbc_user=yes # Function USER -func_odbc_user()=no # Function USER() -func_odbc_week=no # Function WEEK -func_odbc_year=no # Function YEAR +func_odbc_ucase=yes # Function UCASE +func_odbc_user()=yes # Function USER() +func_odbc_week=yes # Function WEEK +func_odbc_year=yes # Function YEAR func_sql_+=yes # Function +, -, * and / func_sql_bit_length=no # Function BIT_LENGTH -func_sql_case=yes # Function CASE func_sql_cast=yes # Function CAST func_sql_char_length=no # Function CHAR_LENGTH +func_sql_char_length(constant)=no # Function CHAR_LENGTH(constant) func_sql_character_length=no # Function CHARACTER_LENGTH +func_sql_coalesce=no # Function COALESCE func_sql_concat_as_||=yes # Function concatenation with || func_sql_current_date=no # Function CURRENT_DATE -func_sql_current_date()=no # Function CURRENT_DATE() func_sql_current_time=no # Function CURRENT_TIME -func_sql_current_time()=no # Function CURRENT_TIME() func_sql_current_timestamp=no # Function CURRENT_TIMESTAMP -func_sql_current_timestamp()=no # Function CURRENT_TIMESTAMP() -func_sql_lower=no # Function LOWER +func_sql_current_user=no # Function CURRENT_USER +func_sql_extract_sql=no # Function EXTRACT +func_sql_localtime=no # Function LOCALTIME +func_sql_localtimestamp=no # Function LOCALTIMESTAMP +func_sql_lower=yes # Function LOWER +func_sql_nullif_num=yes # Function NULLIF with numbers +func_sql_nullif_string=yes # Function NULLIF with strings func_sql_octet_length=no # Function OCTET_LENGTH func_sql_position=no # Function POSITION +func_sql_searched_case=yes # Function searched CASE func_sql_session_user=no # Function SESSION_USER +func_sql_simple_case=yes # Function simple CASE func_sql_substring=no # Function ANSI SQL SUBSTRING -func_extra_sysdate=no # Function SYSDATE func_sql_system_user=no # Function SYSTEM_USER func_sql_trim=no # Function TRIM -func_sql_upper=no # Function UPPER +func_sql_upper=yes # Function UPPER +func_sql_user=yes # Function USER func_where_between=yes # Function BETWEEN func_where_eq_all=yes # Function = ALL func_where_eq_any=yes # Function = ANY @@ -235,36 +278,49 @@ func_where_unique=no # Function UNIQUE functions=yes # Functions group_by=yes # Group by group_by_alias=no # Group by alias -group_by_null=yes # Test nulls in group by +group_by_null=yes # Group on column with null values group_by_position=no # Group by position group_distinct_functions=yes # Group functions with distinct group_func_extra_bit_and=no # Group function BIT_AND group_func_extra_bit_or=no # Group function BIT_OR +group_func_extra_count_distinct_list=no # Group function COUNT(DISTINCT expr,expr,...) group_func_extra_std=no # Group function STD group_func_extra_stddev=yes # Group function STDDEV group_func_extra_variance=yes # Group function VARIANCE +group_func_sql_any=no # Group function ANY group_func_sql_avg=yes # Group function AVG group_func_sql_count_*=yes # Group function COUNT (*) group_func_sql_count_column=yes # Group function COUNT column name -group_func_sql_count_distinct=yes # Group function COUNT DISTINCT column name +group_func_sql_count_distinct=yes # Group function COUNT(DISTINCT expr) +group_func_sql_every=no # Group function EVERY group_func_sql_max=yes # Group function MAX on numbers group_func_sql_max_str=yes # Group function MAX on strings group_func_sql_min=yes # Group function MIN on numbers group_func_sql_min_str=yes # Group function MIN on strings +group_func_sql_some=no # Group function SOME group_func_sql_sum=yes # Group function SUM group_functions=yes # Group functions +group_on_unused=yes # Group on unused column +has_true_false=no # TRUE and FALSE having=yes # Having having_with_alias=no # Having on alias having_with_group=yes # Having with group function -ignore_end_space=yes # ignore end space in compare +hex_numbers=no # hex numbers (0x41) +hex_strings=yes # hex strings (x'1ace') +ignore_end_space=yes # Ignore end space in compare index_in_create=no # index in create table index_namespace=no # different namespace for index index_parts=no # index on column part (extension) +inner_join=yes # inner join insert_empty_string=yes # insert empty string +insert_multi_value=yes # INSERT with Value lists insert_select=yes # insert INTO ... SELECT ... +insert_with_set=no # INSERT with set syntax intersect=yes # intersect intersect_all=yes # intersect all -join_tables=+64 # tables in join +intersect_all_incompat=no # intersect all (incompatible lists) +intersect_incompat=no # intersect (incompatible lists) +join_tables=10 # tables in join left_outer_join=yes # left outer join left_outer_join_using=no # left outer join using like_with_column=no # column LIKE column @@ -273,150 +329,194 @@ lock_tables=yes # lock table logical_value=not supported # Value of logical operation (1=1) max_big_expressions=1 # big expressions max_char_size=254 # max char() size -max_column_name=18 # column name length +max_column_name=30 # column name length max_columns=500 # Columns in table -max_conditions=418 # OR and AND in WHERE -max_expressions=9820 # simple expressions +max_conditions=2082 # OR and AND in WHERE +max_expressions=9543 # simple expressions max_index=+64 # max index -max_index_length=255 # index length +max_index_length=1024 # index length max_index_name=18 # index name length max_index_part_length=254 # max index part length -max_index_parts=15 # index parts -max_index_varchar_part_length=251 # index varchar part length +max_index_parts=16 # index parts +max_index_varchar_part_length=255 # index varchar part length max_row_length=4005 # max table row length (without blobs) max_row_length_with_null=3989 # table row length with nulls (without blobs) -max_select_alias_name=18 # select alias name length +max_select_alias_name=30 # select alias name length max_stack_expression=1363 # stacked expressions -max_table_alias_name=18 # table alias name length -max_table_name=18 # table name length +max_table_alias_name=128 # table alias name length +max_table_name=128 # table name length max_unique_index=+64 # unique indexes max_varchar_size=4000 # max varchar() size minus=no # minus +minus_incompat=no # minus (incompatible lists) minus_neg=no # Calculate 1--1 multi_drop=no # many tables to drop table multi_strings=no # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables natural_join=no # natural join +natural_join_incompat=no # natural join (incompatible lists) natural_left_outer_join=no # natural left outer join no_primary_key=yes # Tables without primary key null_concat_expr=no # Is 'a' || NULL = NULL null_in_index=yes # null in index -null_in_unique=no # null in unique +null_in_unique=no # null in unique index null_num_expr=no # Is 1+NULL = NULL +nulls_in_unique=no # null combination in unique index odbc_left_outer_join=yes # left outer join odbc style -operating_system=Windows NT Version 4.0 # crash-me tested on +operating_system=Linux 2.4.4-64GB-SMP i686 # crash-me tested on order_by=yes # Order by order_by_alias=yes # Order by alias +order_by_function=yes # Order by function order_by_position=yes # Order by position +order_by_remember_desc=no # Order by DESC is remembered +order_on_unused=yes # Order by on unused column primary_key_in_create=yes # primary key in create table -query_size=19662 # query size +psm_functions=no # PSM functions (ANSI SQL) +psm_modules=no # PSM modules (ANSI SQL) +psm_procedures=no # PSM procedures (ANSI SQL) +psm_trigger=no # Triggers (ANSI SQL) +query_size=65535 # query size +quote_ident_with_"=yes # " as identifier quote (ANSI SQL) +quote_ident_with_[=no # [] as identifier quote +quote_ident_with_`=no # ` as identifier quote quote_with_"=no # Allows ' and " as string markers -recursive_subqueries=22 # recursive subqueries +recursive_subqueries=8 # recursive subqueries remember_end_space=no # Remembers end space in char() remember_end_space_varchar=yes # Remembers end space in varchar() +rename_table=yes # rename table repeat_string_size=4000 # return string size from function right_outer_join=yes # right outer join +rowid=no # Type for row id select_constants=yes # Select constants -select_string_size=4000 # constant string size in SELECT +select_limit=no # LIMIT number of rows +select_limit2=no # SELECT with LIMIT #,# +select_string_size=32672 # constant string size in SELECT select_table_update=yes # Update with sub select select_without_from=no # SELECT without FROM -server_version=IBM DB2 5 # server version +server_version=IBM DB2 7.2 # server version simple_joins=yes # ANSI SQL simple joins +storage_of_float=truncate # Storage of float values subqueries=yes # subqueries table_alias=yes # Table alias +table_name_case=yes # case independent table names table_wildcard=yes # Select table_name.* -transactions=yes # transactions +temporary_table=no # temporary tables +transactions=yes # constant string size in where +truncate_table=no # truncate type_extra_abstime=no # Type abstime type_extra_bfile=no # Type bfile type_extra_blob=no # Type blob type_extra_bool=no # Type bool type_extra_box=no # Type box type_extra_byte=no # Type byte -type_extra_char(1_arg)_binary=no # Type char(1 arg) binary -type_extra_char16=no # Type char16 -type_extra_char2=no # Type char2 -type_extra_char4=no # Type char4 -type_extra_char8=no # Type char8 +type_extra_char(1_arg)_binary=no # Type char(1 arg) binary +type_extra_cidr=no # Type cidr type_extra_circle=no # Type circle type_extra_clob=no # Type clob type_extra_datetime=no # Type datetime -type_extra_enum(1_arg)=no # Type enum(1 arg) -type_sql_float(1_arg)=yes # Type float(1 arg) +type_extra_double=yes # Type double +type_extra_enum(1_arg)=no # Type enum(1 arg) +type_extra_float(2_arg)=no # Type float(2 arg) type_extra_float4=no # Type float4 type_extra_float8=no # Type float8 type_extra_image=no # Type image -type_extra_int(1_arg)_zerofill=no # Type int(1 arg) zerofill +type_extra_inet=no # Type inet +type_extra_int(1_arg)_zerofill=no # Type int(1 arg) zerofill type_extra_int1=no # Type int1 type_extra_int2=no # Type int2 type_extra_int3=no # Type int3 type_extra_int4=no # Type int4 type_extra_int8=no # Type int8 type_extra_int_auto_increment=no # Type int not null auto_increment +type_extra_int_identity=no # Type int not null identity +type_extra_int_unsigned=no # Type int unsigned +type_extra_interval=no # Type interval type_extra_line=no # Type line type_extra_long=no # Type long type_extra_long_raw=no # Type long raw type_extra_long_varbinary=no # Type long varbinary -type_extra_long_varchar(1_arg)=no # Type long varchar(1 arg) +type_extra_long_varchar(1_arg)=no # Type long varchar(1 arg) type_extra_lseg=no # Type lseg +type_extra_macaddr=no # Type macaddr type_extra_mediumint=no # Type mediumint type_extra_mediumtext=no # Type mediumtext type_extra_middleint=no # Type middleint type_extra_mlslabel=no # Type mlslabel type_extra_money=no # Type money -type_sql_nchar(1_arg)=no # Type nchar(1 arg) type_extra_nclob=no # Type nclob type_extra_number=no # Type number -type_extra_number(1_arg)=no # Type number(1 arg) -type_extra_nvarchar(2_arg)=no # Type nvarchar(2 arg) +type_extra_number(1_arg)=no # Type number(1 arg) +type_extra_number(2_arg)=no # Type number(2 arg) type_extra_nvarchar2(1_arg)=no # Type nvarchar2(1 arg) type_extra_path=no # Type path type_extra_point=no # Type point type_extra_polygon=no # Type polygon -type_extra_raw(1_arg)=no # Type raw(1 arg) +type_extra_raw(1_arg)=no # Type raw(1 arg) type_extra_reltime=no # Type reltime type_extra_rowid=no # Type rowid type_extra_serial=no # Type serial -type_extra_set(1_arg)=no # Type set(1 arg) +type_extra_set(1_arg)=no # Type set(1 arg) type_extra_smalldatetime=no # Type smalldatetime type_extra_smallfloat=no # Type smallfloat type_extra_smallmoney=no # Type smallmoney type_extra_text=no # Type text -type_extra_text(1_arg)=no # Type text(1 arg) +type_extra_text(1_arg)=no # Type text(1 arg) type_extra_timespan=no # Type timespan +type_extra_uint=no # Type uint type_extra_varchar2(1_arg)=no # Type varchar2(1 arg) type_extra_year=no # Type year -type_odbc_bigint=no # Type bigint -type_odbc_binary(1_arg)=no # Type binary(1 arg) +type_odbc_bigint=yes # Type bigint +type_odbc_binary(1_arg)=no # Type binary(1 arg) type_odbc_datetime=no # Type datetime -type_sql_smallint=yes # Type smallint type_odbc_tinyint=no # Type tinyint type_odbc_varbinary(1_arg)=no # Type varbinary(1 arg) type_sql_bit=no # Type bit type_sql_bit(1_arg)=no # Type bit(1 arg) type_sql_bit_varying(1_arg)=no # Type bit varying(1 arg) -type_sql_char(1_arg)=yes # Type char(1 arg) -type_sql_char_varying(1_arg)=yes # Type char varying(1 arg) +type_sql_boolean=no # Type boolean +type_sql_char(1_arg)=yes # Type char(1 arg) +type_sql_char_varying(1_arg)=yes # Type char varying(1 arg) type_sql_character(1_arg)=yes # Type character(1 arg) type_sql_character_varying(1_arg)=yes # Type character varying(1 arg) type_sql_date=yes # Type date type_sql_dec(2_arg)=yes # Type dec(2 arg) -type_sql_decimal(2_arg)=yes # Type decimal(2 arg) -type_extra_double=yes # Type double +type_sql_decimal(2_arg)=yes # Type decimal(2 arg) type_sql_double_precision=yes # Type double precision type_sql_float=yes # Type float -type_extra_float(2_arg)=no # Type float(1 arg) +type_sql_float(1_arg)=yes # Type float(1 arg) type_sql_int=yes # Type int type_sql_integer=yes # Type integer +type_sql_interval_day=no # Type interval day +type_sql_interval_day_to_hour=no # Type interval day to hour +type_sql_interval_day_to_minute=no # Type interval day to minute +type_sql_interval_day_to_second=no # Type interval day to second +type_sql_interval_hour=no # Type interval hour +type_sql_interval_hour_to_minute=no # Type interval hour to minute +type_sql_interval_hour_to_second=no # Type interval hour to second +type_sql_interval_minute=no # Type interval minute +type_sql_interval_minute_to_second=no # Type interval minute to second +type_sql_interval_month=no # Type interval month +type_sql_interval_second=no # Type interval second type_sql_interval_year=no # Type interval year -type_sql_numeric(2_arg)=yes # Type numeric(2 arg) +type_sql_interval_year_to_month=no # Type interval year to month +type_sql_national_char_varying(1_arg)=no # Type national char varying(1 arg) +type_sql_national_character(1_arg)=no # Type national character(1 arg) +type_sql_national_character_varying(1_arg)=no # Type national character varying(1 arg) +type_sql_nchar(1_arg)=no # Type nchar(1 arg) +type_sql_nchar_varying(1_arg)=no # Type nchar varying(1 arg) +type_sql_numeric(2_arg)=yes # Type numeric(2 arg) type_sql_real=yes # Type real +type_sql_smallint=yes # Type smallint type_sql_time=yes # Type time type_sql_timestamp=yes # Type timestamp -type_sql_varchar(1_arg)=yes # Type varchar(1 arg) +type_sql_timestamp_with_time_zone=no # Type timestamp with time zone +type_sql_varchar(1_arg)=yes # Type varchar(1 arg) union=yes # union union_all=yes # union all +union_all_incompat=yes # union all (incompatible lists) +union_incompat=yes # union (incompatible lists) unique_in_create=yes # unique in create table unique_null_in_create=no # unique null in create views=yes # views -where_string_size=4000 # constant string size in where +where_string_size=32672 # constant string size in where diff --git a/sql-bench/test-select.sh b/sql-bench/test-select.sh index 1ecad5804c5..eba2a7085d8 100644 --- a/sql-bench/test-select.sh +++ b/sql-bench/test-select.sh @@ -141,7 +141,7 @@ if ($limits->{'group_functions'}) $loop_time=new Benchmark; for ($tests=0 ; $tests < $opt_loop_count ; $tests++) { - fetch_all_rows($dbh,"select sum(idn+$tests),sum(rev_idn-$tests) from bench1"); + fetch_all_rows($dbh,"select sum(idn+100),sum(rev_idn-100) from bench1"); } $end_time=new Benchmark; print "Time for select_query_cache ($opt_loop_count): " . diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt index bd941e9368e..cf63e2fdb49 100644 --- a/sql/share/czech/errmsg.txt +++ b/sql/share/czech/errmsg.txt @@ -224,6 +224,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt index d4db2409d45..a3e85d83a94 100644 --- a/sql/share/danish/errmsg.txt +++ b/sql/share/danish/errmsg.txt @@ -218,6 +218,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt index c88091eff91..dedf41ee394 100644 --- a/sql/share/dutch/errmsg.txt +++ b/sql/share/dutch/errmsg.txt @@ -2,10 +2,9 @@ This file is public domain and comes with NO WARRANTY of any kind Dutch error messages (share/dutch/errmsg.txt) - 2001-08-02 Arjen Lentz (agl@bitbike.com) + Arjen G. Lentz (agl@bitbike.com) Completed earlier partial translation; worked on consistency and spelling. - 2001-10-24 Arjen Lentz (arjen@mysql.com) - Update for 4.0.x + Version: 02-08-2001 */ "hashchk", @@ -222,6 +221,10 @@ "%-.32s@%-.64s mag geen nieuwe gebruikers creeren", "Incorrecte tabel definitie; Alle MERGE tabellen moeten tot dezelfde database behoren", "Deadlock gevonden tijdens lock-aanvraag poging; Probeer herstart van de transactie", +"Het gebruikte tabel type ondersteund geen FULLTEXT indexen", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Fout bij opbouwen verbinding naar master: %-.128s", "Fout bij uitvoeren query op master: %-.128s", "Fout tijdens uitvoeren van commando %s: %-.128s", @@ -230,4 +233,3 @@ "Kan de query niet uitvoeren vanwege een conflicterende read lock", "Het combineren van transactionele en niet-transactionele tabellen is uitgeschakeld.", "Optie '%s' tweemaal gebruikt in opdracht", -"Het gebruikte tabel type ondersteund geen FULLTEXT indexen", diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt index e8ca6fa5f57..034e07516c0 100644 --- a/sql/share/english/errmsg.txt +++ b/sql/share/english/errmsg.txt @@ -215,6 +215,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt index f2c416a1777..1e0fa15d2c0 100644 --- a/sql/share/estonian/errmsg.txt +++ b/sql/share/estonian/errmsg.txt @@ -1,9 +1,9 @@ /* - Copyright Abandoned 1997 TCX DataKonsult AB & Monty Program KB & Detron HB - This file is public domain and comes with NO WARRANTY of any kind + Copyright Abandoned 1997 MySQL AB + This file is public domain and comes with NO WARRANTY of any kind + Esialgne tУlge: TУnu Samuel (tonu@spam.ee) + Parandanud ja tДiendanud: Indrek Siitan (tfr@mysql.com) - Esialgne tУlge: TУnu Samuel (tonu@spam.ee) - Parandanud ja tДiendanud: Indrek Siitan (tfr@mysql.com) */ "hashchk", @@ -192,8 +192,8 @@ "Viga %d kДsu CHECKPOINT tДitmisel", "эhendus katkestatud %ld andmebaas: '%-.64s' kasutaja: '%-.32s' masin: `%-.64s' (%-.64s)", "The handler for the table does not support binary table dump", -"Binlog closed, cannot RESET MASTER", -"Failed rebuilding the index of dumped table '%-.64s'", +"Binlog closed while trying to FLUSH MASTER", +"Failed rebuilding the index of dumped table '%-.64s'", "Error from master: '%-.64s'", "Net error reading from master", "Net error writing to master", @@ -220,6 +220,10 @@ "Kasutajal %-.32s@%-.64s ei ole lubatud luua uusi kasutajaid", "Vigane tabelimДДratlus; kУik MERGE tabeli liikmed peavad asuma samas andmebaasis", "Lukustamisel tekkis tupik (deadlock); alusta transaktsiooni otsast", +"Antud tabelitЭЭp ei toeta FULLTEXT indekseid", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Viga kДsu %s tДitmisel: %-.128s", @@ -228,4 +232,3 @@ "Ei suuda tДita pДringut konfliktse luku tУttu", "Transaktsioone toetavate ning mittetoetavate tabelite kooskasutamine ei ole lubatud", "MДДrangut '%s' on lauses kasutatud topelt", -"Antud tabelitЭЭp ei toeta FULLTEXT indekseid", diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt index a88e4dc0f1e..5cf4f962c0e 100644 --- a/sql/share/french/errmsg.txt +++ b/sql/share/french/errmsg.txt @@ -215,6 +215,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt index a0aa5804959..7f4c505fead 100644 --- a/sql/share/german/errmsg.txt +++ b/sql/share/german/errmsg.txt @@ -218,6 +218,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt index 62c9fb1b010..b28930a489a 100644 --- a/sql/share/greek/errmsg.txt +++ b/sql/share/greek/errmsg.txt @@ -215,6 +215,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt index c170ae172ff..abf19b405f8 100644 --- a/sql/share/hungarian/errmsg.txt +++ b/sql/share/hungarian/errmsg.txt @@ -217,6 +217,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt index 131d4a5e25c..5227fc19253 100644 --- a/sql/share/italian/errmsg.txt +++ b/sql/share/italian/errmsg.txt @@ -215,6 +215,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt index ba355c03e13..2251e4e73f4 100644 --- a/sql/share/japanese/errmsg.txt +++ b/sql/share/japanese/errmsg.txt @@ -217,6 +217,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt index 39176b1fa13..184c5e1ab06 100644 --- a/sql/share/korean/errmsg.txt +++ b/sql/share/korean/errmsg.txt @@ -215,6 +215,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt index d491c138acf..85072824cdc 100644 --- a/sql/share/norwegian-ny/errmsg.txt +++ b/sql/share/norwegian-ny/errmsg.txt @@ -217,6 +217,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt index 84e146a78c2..e1def8c5a2f 100644 --- a/sql/share/norwegian/errmsg.txt +++ b/sql/share/norwegian/errmsg.txt @@ -217,6 +217,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt index 2eb601c1673..84e1f14e50b 100644 --- a/sql/share/polish/errmsg.txt +++ b/sql/share/polish/errmsg.txt @@ -219,6 +219,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt index c0154648b5e..8d485b53013 100644 --- a/sql/share/portuguese/errmsg.txt +++ b/sql/share/portuguese/errmsg.txt @@ -215,6 +215,10 @@ "NЦo И permitido a %-.32s@%-.64s criar novos usuАrios", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt index f50009f3ad2..0f69b79654e 100644 --- a/sql/share/romanian/errmsg.txt +++ b/sql/share/romanian/errmsg.txt @@ -219,6 +219,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt index 7d6ac176906..cde0afca01f 100644 --- a/sql/share/russian/errmsg.txt +++ b/sql/share/russian/errmsg.txt @@ -207,23 +207,26 @@ "Этот сервер не slave, исправьте в конфигурационном файле или коммандой CHANGE MASTER TO", "Не получилось инициализировать структуру master info, проверте persmissions на файле master.info", "Не могу создать процесс SLAVE, проверьте системные ресурсы", -"User %-.64s has already more than 'max_user_connections' active connections", -"В SET могут использоваться только константные выражения", -"Lock wait timeout exceeded", -"The total number of locks exceeds the lock table size", -"Update locks cannot be acquired during a READ UNCOMMITTED transaction", -"DROP DATABASE not allowed while thread is holding global read lock", -"CREATE DATABASE not allowed while thread is holding global read lock", -"Неверный аргумент для %s", -"%-.32s@%-.64s не имеет права создавать пользователей", -"Неверное определение таблицы; Все таблицы в MERGE должнв быть из одной базы", -"Deadlock found when trying to get lock; Try restarting transaction", -"Error connecting to master: %-.128s", -"Error running query on master: %-.128s", -"Ошибка во время выполнения %s: %-.128s", -"Неверное использование %s и %s", -"Использованные SELECT'ы имеюь разное количество столбцов", -"Can't execute the query because you have a conflicting read lock", -"Mixing of transactional and non-transactional tables is disabled", -"Option '%s' used twice in statement", +"У пользователя %-.64s уже больше чем 'max_user_connections' активных соединений", +"Можно использовать только выражение-константу совместно с SET", +"Таймаут ожидания блокировки", +"Общее количество блокировок превысило размер таблицы блокировок", +"Блокировка изменения не может быть получена во время READ UNCOMMITTED транзакции", +"DROP DATABASE запрещен во время глобальной блокировки чтения", +"CREATE DATABASE запрещен во время глобальной блокировки чтения", +"Неправильные аргуметны у %s", +"%-.32s@%-.64s не имеет привилегий создавать новых пользователей", +"Неверное определение таблицы; Все MERGE-таблицы должны быть в одной базе данных", +"Обнаружен deadlock во время получения блокировки; Попробуйте перезапустить транзакцию", "Таблица данного типа не может иметь FULLTEXT индекса", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", +"Ошибка соединения с master: %-.128s", +"Ошибка выволнения запроса на master: %-.128s", +"Ошибка выполнения команды %s: %-.128s", +"Неправильное использование %s и %s", +"Используемые SELECT-выражения имеют разные количества столбцов", +"Невозможно выполнить запрос из-за конфликтной блокировки чтения", +"Одновременное использование transactional и non-transactional таблиц отключено", +"Опция '%s' использована дважды", diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt index d01e2db7165..485e9138966 100644 --- a/sql/share/slovak/errmsg.txt +++ b/sql/share/slovak/errmsg.txt @@ -223,6 +223,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt index 6e2b238b91a..2a296b19ff3 100644 --- a/sql/share/spanish/errmsg.txt +++ b/sql/share/spanish/errmsg.txt @@ -216,6 +216,10 @@ "%-.32s@%-.64s is not allowed to create new users", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error de coneccion a master: %-128s", "Error executando el query en master: %-128%", "Error de %s: %-128%", diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt index ee504036d8a..193ff96ec30 100644 --- a/sql/share/swedish/errmsg.txt +++ b/sql/share/swedish/errmsg.txt @@ -215,6 +215,10 @@ "%-.32s@%-.64s har inte rДttighet att skapa nya anvДndare", "Felaktig tabell definition: Alla tabeller i en MERGE tabell mЕste vara i samma databas", "Fick 'DEADLOCK' vid lЕsfЖrsЖk av block/rad; FЖrsЖk att starta om transaktionen", +"Tabelltypen har inte hantering av FULLTEXT index", +"Kan inte lДgga till 'FOREIGN KEY constraint'", +"FOREIGN KEY konflikt: Kan inte skriva barn", +"FOREIGN KEY konflikt: Kan inte radera fader", "Fick fel vid anslutning till master: %-.128s", "Fick fel vid utfЖrande av command pЕ mastern: %-.128s", "Fick fel vid utfЖrande av %s: %-.128s", diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt index 2bd3d656ed3..7de980ef89e 100644 --- a/sql/share/ukrainian/errmsg.txt +++ b/sql/share/ukrainian/errmsg.txt @@ -220,6 +220,10 @@ "Користувачу %-.32s@%-.64s не дозволено створювати нових користувач╕в", "Incorrect table definition; All MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", +"The used table type doesn't support FULLTEXT indexes", +"Cannot add foreign key constraint", +"Cannot add a child row: a foreign key constraint fails", +"Cannot delete a parent row: a foreign key constraint fails", "Error connecting to master: %-.128s", "Error running query on master: %-.128s", "Error when executing command %s: %-.128s", diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 767ef41e848..b60549d072a 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1294,6 +1294,9 @@ mysql_execute_command(void) res=0; break; } +#ifndef HAVE_READLINK + lex->create_info.data_file_name=lex->create_info.index_file_name=0; +#else /* Fix names if symlinked tables */ if (append_file_to_dir(&lex->create_info.data_file_name, tables->name) || append_file_to_dir(&lex->create_info.index_file_name, tables->name)) @@ -1301,6 +1304,7 @@ mysql_execute_command(void) res=-1; break; } +#endif if (select_lex->item_list.elements) // With select { select_result *result; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 251ccae0299..f2c25e89bd8 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -3213,7 +3213,7 @@ remove_eq_conds(COND *cond,Item::cond_result *cond_value) } } *cond_value=Item::COND_OK; - return cond; /* Point at next and level */ + return cond; // Point at next and level } /* diff --git a/sql/sql_table.cc b/sql/sql_table.cc index a42c9d42746..7af2afe4c41 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1275,8 +1275,11 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, def->field=field; if (def->sql_type == FIELD_TYPE_TIMESTAMP) use_timestamp=1; - create_list.push_back(def); - def_it.remove(); + if (!def->after) + { + create_list.push_back(def); + def_it.remove(); + } } else { // Use old field value @@ -1307,7 +1310,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, List_iterator<create_field> find_it(create_list); while ((def=def_it++)) // Add new columns { - if (def->change) + if (def->change && ! def->field) { my_error(ER_BAD_FIELD_ERROR,MYF(0),def->change,table_name); DBUG_RETURN(-1); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 3d0a183d9a2..2c08fc3cb86 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1138,7 +1138,7 @@ alter_list_item: LEX *lex=Lex; lex->change= $3.str; lex->simple_alter=0; } - field_spec + field_spec opt_place | MODIFY_SYM opt_column field_ident { LEX *lex=Lex; @@ -1157,6 +1157,7 @@ alter_list_item: YYABORT; lex->simple_alter=0; } + opt_place | DROP opt_column field_ident opt_restrict { LEX *lex=Lex; |