summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-05-16 15:21:35 +0300
committerunknown <monty@mysql.com>2005-05-16 15:21:35 +0300
commitd15f89c47afd2b674e666098eee69ec8bdfb901d (patch)
treec3089970e4a695999e0c1a6cb00ab8175adb367f /sql
parentf8f714a2fbd821488aa3d8e39d6c3a944c7b1aa1 (diff)
downloadmariadb-git-d15f89c47afd2b674e666098eee69ec8bdfb901d.tar.gz
After merge fixes
mysql-test/r/alter_table.result: Fixed results after merge sql/handler.cc: Trivial optimzation sql/sql_table.cc: Trvial optimization sql/sql_yacc.yy: After merge fix sql/unireg.cc: Removed argument 'null_fields' from make_empty_rec() as it was not needed Moved assert() to right place to take bit fields into account
Diffstat (limited to 'sql')
-rw-r--r--sql/handler.cc7
-rw-r--r--sql/sql_table.cc7
-rw-r--r--sql/sql_yacc.yy2
-rw-r--r--sql/unireg.cc12
4 files changed, 14 insertions, 14 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index a34b3bd8aac..d641628ac86 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1420,6 +1420,7 @@ void handler::update_auto_increment()
ulonglong nr;
THD *thd= table->in_use;
struct system_variables *variables= &thd->variables;
+ bool auto_increment_field_not_null;
DBUG_ENTER("handler::update_auto_increment");
/*
@@ -1427,13 +1428,14 @@ void handler::update_auto_increment()
row was not inserted
*/
thd->prev_insert_id= thd->next_insert_id;
+ auto_increment_field_not_null= table->auto_increment_field_not_null;
+ table->auto_increment_field_not_null= FALSE;
if ((nr= table->next_number_field->val_int()) != 0 ||
- table->auto_increment_field_not_null &&
+ auto_increment_field_not_null &&
thd->variables.sql_mode & MODE_NO_AUTO_VALUE_ON_ZERO)
{
/* Clear flag for next row */
- table->auto_increment_field_not_null= FALSE;
/* Mark that we didn't generate a new value **/
auto_increment_column_changed=0;
@@ -1449,7 +1451,6 @@ void handler::update_auto_increment()
}
DBUG_VOID_RETURN;
}
- table->auto_increment_field_not_null= FALSE;
if (!(nr= thd->next_insert_id))
{
nr= get_auto_increment();
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index b6e44f8ec25..4ddef3fc653 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -640,7 +640,7 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
{
const char *key_name;
create_field *sql_field,*dup_field;
- uint field,null_fields,blob_columns;
+ uint field,null_fields,blob_columns,max_key_length;
ulong record_offset= 0;
KEY *key_info;
KEY_PART_INFO *key_part_info;
@@ -654,6 +654,7 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
select_field_pos= fields->elements - select_field_count;
null_fields=blob_columns=0;
create_info->varchar= 0;
+ max_key_length= file->max_key_length();
for (field_no=0; (sql_field=it++) ; field_no++)
{
@@ -1190,10 +1191,10 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
{
if (f_is_blob(sql_field->pack_flag))
{
- if ((length=column->length) > file->max_key_length() ||
+ if ((length=column->length) > max_key_length ||
length > file->max_key_part_length())
{
- length=min(file->max_key_length(), file->max_key_part_length());
+ length=min(max_key_length, file->max_key_part_length());
if (key->type == Key::MULTIPLE)
{
/* not a critical problem */
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 21a9d344e22..9328d7345c3 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -3990,7 +3990,7 @@ select_options:
{
if (test_all_bits(Select->options, SELECT_ALL | SELECT_DISTINCT))
{
- net_printf(Lex->thd, ER_WRONG_USAGE, "ALL", "DISTINCT");
+ my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
YYABORT;
}
}
diff --git a/sql/unireg.cc b/sql/unireg.cc
index 82f91d1da68..da463885f85 100644
--- a/sql/unireg.cc
+++ b/sql/unireg.cc
@@ -45,8 +45,7 @@ static bool pack_fields(File file, List<create_field> &create_fields,
static bool make_empty_rec(THD *thd, int file, enum db_type table_type,
uint table_options,
List<create_field> &create_fields,
- uint reclength, uint null_fields,
- ulong data_offset);
+ uint reclength, ulong data_offset);
/*
Create a frm (table definition) file
@@ -72,7 +71,7 @@ bool mysql_create_frm(THD *thd, my_string file_name,
uint keys, KEY *key_info,
handler *db_file)
{
- uint reclength,info_length,screens,key_info_length,maxlength,null_fields;
+ uint reclength,info_length,screens,key_info_length,maxlength;
File file;
ulong filepos, data_offset;
uchar fileinfo[64],forminfo[288],*keybuff;
@@ -111,7 +110,6 @@ bool mysql_create_frm(THD *thd, my_string file_name,
}
}
reclength=uint2korr(forminfo+266);
- null_fields=uint2korr(forminfo+282);
if ((file=create_frm(file_name, reclength, fileinfo,
create_info, keys)) < 0)
@@ -145,7 +143,7 @@ bool mysql_create_frm(THD *thd, my_string file_name,
(ulong) uint2korr(fileinfo+6)+ (ulong) key_buff_length,
MY_SEEK_SET,MYF(0)));
if (make_empty_rec(thd,file,create_info->db_type,create_info->table_options,
- create_fields,reclength, null_fields, data_offset))
+ create_fields,reclength, data_offset))
goto err;
VOID(my_seek(file,filepos,MY_SEEK_SET,MYF(0)));
@@ -661,7 +659,7 @@ static bool pack_fields(File file, List<create_field> &create_fields,
static bool make_empty_rec(THD *thd, File file,enum db_type table_type,
uint table_options,
List<create_field> &create_fields,
- uint reclength, uint null_fields,
+ uint reclength,
ulong data_offset)
{
int error;
@@ -696,7 +694,6 @@ static bool make_empty_rec(THD *thd, File file,enum db_type table_type,
null_count++; // Need one bit for delete mark
*buff|= 1;
}
- DBUG_ASSERT(data_offset == ((null_fields + null_count + 7) / 8));
null_pos= buff;
List_iterator<create_field> it(create_fields);
@@ -756,6 +753,7 @@ static bool make_empty_rec(THD *thd, File file,enum db_type table_type,
else
regfield->reset();
}
+ DBUG_ASSERT(data_offset == ((null_count + 7) / 8));
/* Fill not used startpos */
if (null_count)