mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Removed wrong implementation of CUBE/ROLLUP
Fixed bugfix of INSERT ... SET db_name.table_name.column_name Changed locking to external-locking Fix client hangup for some invalid SQL queries. Docs/manual.texi: Changelog & recent incompatible changes to 4.0.3 include/mysqld_error.h: New error messages myisam/ft_boolean_search.c: Removed compiler warning myisam/mi_check.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_dynrec.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_extra.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_key.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_open.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_packrec.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/myisamdef.h: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/sort.c: Fixed uninitialized variable mysql-test/r/insert_set.result: Change test case to use database foo mysql-test/r/union.result: Test wrong usage of union mysql-test/t/insert_set.test: Test bug in insert mysql-test/t/union.test: Test wrong usage of union sql/item.h: Indentation cleanup sql/item_cmpfunc.h: Indentation cleanup sql/item_func.h: Indentation cleanup sql/item_strfunc.h: Indentation cleanup sql/item_sum.h: Indentation cleanup sql/item_timefunc.h: Indentation cleanup sql/item_uniq.h: Indentation cleanup sql/mysql_priv.h: Fix that we always generate an error message when calling YYABORT sql/mysqld.cc: Changed command line arguments regarding locking to always use --external-locking Disable external locking by default sql/procedure.h: Cleanup sql/set_var.cc: change locking -> external_locking sql/share/czech/errmsg.txt: New error messages sql/share/danish/errmsg.txt: New error messages sql/share/dutch/errmsg.txt: New error messages sql/share/english/errmsg.txt: New error messages sql/share/estonian/errmsg.txt: New error messages sql/share/french/errmsg.txt: New error messages sql/share/german/errmsg.txt: New error messages sql/share/greek/errmsg.txt: New error messages sql/share/hungarian/errmsg.txt: New error messages sql/share/italian/errmsg.txt: New error messages sql/share/japanese/errmsg.txt: New error messages sql/share/korean/errmsg.txt: New error messages mysql-test/r/olap.result: Removed CUBE/ROLLUP mysql-test/t/olap.test: Removed CUBE/ROLLUP sql/share/norwegian-ny/errmsg.txt: New error messages sql/share/norwegian/errmsg.txt: New error messages sql/share/polish/errmsg.txt: New error messages sql/share/portuguese/errmsg.txt: New error messages sql/share/romanian/errmsg.txt: New error messages sql/share/russian/errmsg.txt: New error messages sql/share/slovak/errmsg.txt: New error messages sql/share/spanish/errmsg.txt: New error messages sql/share/swedish/errmsg.txt: New error messages sql/share/ukrainian/errmsg.txt: New error messages sql/sql_base.cc: Removed wrong patch for INSERT... sql/sql_insert.cc: Fix bug in INSERT ... SET db_name.table_name.column_name sql/sql_lex.h: Changed NON_EXISTIONG_ONE -> UNSPECIFIED_OLAP_TYPE sql/sql_olap.cc: Removed wrong implementation of CUBE/ROLLUP sql/sql_parse.cc: Removed wrong implementation of CUBE/ROLLUP Added function to give better error messages sql/sql_select.cc: Removed wrong implementation of CUBE/ROLLUP sql/sql_union.cc: Added comment sql/sql_yacc.yy: Fix that we always generate an error message when calling YYABORT
This commit is contained in:
@ -507,7 +507,8 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
|
||||
/* Allocate buffer for one record */
|
||||
|
||||
/* prerequisites: bzero(info) && info->s=share; are met. */
|
||||
if (!mi_fix_rec_buff_for_blob(&info, -1))
|
||||
if (!mi_alloc_rec_buff(&info, -1, &info.rec_buff,
|
||||
&info.alloced_rec_buff_length))
|
||||
goto err;
|
||||
bzero(info.rec_buff, info.alloced_rec_buff_length);
|
||||
|
||||
@ -559,6 +560,7 @@ err:
|
||||
DBUG_RETURN (NULL);
|
||||
} /* mi_open */
|
||||
|
||||
|
||||
gptr mi_get_rec_buff_ptr(MI_INFO *info, byte *buf)
|
||||
{
|
||||
if (info->s->options & HA_OPTION_PACK_RECORD && buf)
|
||||
@ -567,6 +569,7 @@ gptr mi_get_rec_buff_ptr(MI_INFO *info, byte *buf)
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
byte *mi_alloc_rec_buff(MI_INFO *info, ulong length, byte **buf, uint *buf_len)
|
||||
{
|
||||
uint extra;
|
||||
@ -576,23 +579,24 @@ byte *mi_alloc_rec_buff(MI_INFO *info, ulong length, byte **buf, uint *buf_len)
|
||||
byte *newptr = *buf;
|
||||
|
||||
/* to simplify initial init of info->rec_buf in mi_open and mi_extra */
|
||||
if (length == (ulong)-1)
|
||||
length=max(info->s->base.pack_reclength,info->s->base.max_key_length);
|
||||
if (length == (ulong) -1)
|
||||
length= max(info->s->base.pack_reclength,info->s->base.max_key_length);
|
||||
|
||||
extra= ((info->s->options & HA_OPTION_PACK_RECORD) ?
|
||||
ALIGN_SIZE(MI_MAX_DYN_BLOCK_HEADER)+MI_SPLIT_LENGTH+
|
||||
MI_REC_BUFF_OFFSET : 0);
|
||||
ALIGN_SIZE(MI_MAX_DYN_BLOCK_HEADER)+MI_SPLIT_LENGTH+
|
||||
MI_REC_BUFF_OFFSET : 0);
|
||||
if (extra && newptr)
|
||||
newptr-=MI_REC_BUFF_OFFSET;
|
||||
if (!(newptr=(byte*) my_realloc((gptr)newptr, length+extra+8,
|
||||
MYF(MY_ALLOW_ZERO_PTR))))
|
||||
return 0;
|
||||
*buf=newptr+(extra ? MI_REC_BUFF_OFFSET : 0);
|
||||
*buf_len=length;
|
||||
*buf= newptr+(extra ? MI_REC_BUFF_OFFSET : 0);
|
||||
*buf_len= length;
|
||||
}
|
||||
return *buf;
|
||||
}
|
||||
|
||||
|
||||
ulonglong mi_safe_mul(ulonglong a, ulonglong b)
|
||||
{
|
||||
ulonglong max_val= ~ (ulonglong) 0; /* my_off_t is unsigned */
|
||||
|
Reference in New Issue
Block a user