mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
Merge mysql.com:/home/gluh/MySQL/Merge/5.1
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt BitKeeper/etc/ignore: auto-union client/mysql.cc: Auto merged client/mysqltest.c: Auto merged include/mysql_com.h: Auto merged libmysql/CMakeLists.txt: Auto merged libmysqld/lib_sql.cc: Auto merged mysql-test/r/archive.result: Auto merged mysql-test/r/create.result: Auto merged mysql-test/r/delayed.result: Auto merged mysql-test/r/func_misc.result: Auto merged mysql-test/r/innodb.result: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/merge.result: Auto merged mysql-test/r/ps.result: Auto merged mysql-test/r/type_date.result: Auto merged mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Auto merged mysql-test/t/create.test: Auto merged mysql-test/t/func_misc.test: Auto merged mysql-test/t/information_schema.test: Auto merged mysql-test/t/merge.test: Auto merged mysql-test/t/subselect.test: Auto merged mysql-test/t/type_date.test: Auto merged mysql-test/t/type_datetime.test: Auto merged mysql-test/t/variables.test: Auto merged mysys/queues.c: Auto merged sql/events.cc: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/ha_partition.cc: Auto merged sql/handler.cc: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.h: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/protocol.cc: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged sql/slave.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_db.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_partition.cc: Auto merged sql/sql_plugin.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_string.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/table.cc: Auto merged sql/table.h: Auto merged storage/myisam/ha_myisam.cc: Auto merged storage/myisam/mi_check.c: Auto merged storage/myisam/mi_open.c: Auto merged tests/mysql_client_test.c: Auto merged mysql-test/lib/mtr_report.pl: manual merge mysql-test/r/myisam.result: manual merge mysql-test/r/partition.result: manual merge mysql-test/r/user_var.result: manual merge mysql-test/t/myisam.test: manual merge mysql-test/t/partition.test: manual merge mysql-test/t/user_var.test: manual merge sql/item.h: manual merge sql/item_func.cc: manual merge storage/myisammrg/ha_myisammrg.cc: manual merge
This commit is contained in:
commit
9a10c20ba9
133 changed files with 2674 additions and 678 deletions
|
|
@ -357,7 +357,7 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, int *rc)
|
|||
{
|
||||
DBUG_RETURN(NULL);
|
||||
}
|
||||
stats.auto_increment_value= archive_tmp.auto_increment;
|
||||
stats.auto_increment_value= archive_tmp.auto_increment + 1;
|
||||
share->rows_recorded= (ha_rows)archive_tmp.rows;
|
||||
share->crashed= archive_tmp.dirty;
|
||||
azclose(&archive_tmp);
|
||||
|
|
@ -586,9 +586,7 @@ int ha_archive::create(const char *name, TABLE *table_arg,
|
|||
|
||||
DBUG_ENTER("ha_archive::create");
|
||||
|
||||
stats.auto_increment_value= (create_info->auto_increment_value ?
|
||||
create_info->auto_increment_value -1 :
|
||||
(ulonglong) 0);
|
||||
stats.auto_increment_value= create_info->auto_increment_value;
|
||||
|
||||
for (uint key= 0; key < table_arg->s->keys; key++)
|
||||
{
|
||||
|
|
@ -673,7 +671,8 @@ int ha_archive::create(const char *name, TABLE *table_arg,
|
|||
Yes you need to do this, because the starting value
|
||||
for the autoincrement may not be zero.
|
||||
*/
|
||||
create_stream.auto_increment= stats.auto_increment_value;
|
||||
create_stream.auto_increment= stats.auto_increment_value ?
|
||||
stats.auto_increment_value - 1 : 0;
|
||||
if (azclose(&create_stream))
|
||||
{
|
||||
error= errno;
|
||||
|
|
@ -871,8 +870,8 @@ int ha_archive::write_row(uchar *buf)
|
|||
else
|
||||
{
|
||||
if (temp_auto > share->archive_write.auto_increment)
|
||||
stats.auto_increment_value= share->archive_write.auto_increment=
|
||||
temp_auto;
|
||||
stats.auto_increment_value=
|
||||
(share->archive_write.auto_increment= temp_auto) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -896,7 +895,7 @@ void ha_archive::get_auto_increment(ulonglong offset, ulonglong increment,
|
|||
ulonglong *first_value,
|
||||
ulonglong *nb_reserved_values)
|
||||
{
|
||||
*nb_reserved_values= 1;
|
||||
*nb_reserved_values= ULONGLONG_MAX;
|
||||
*first_value= share->archive_write.auto_increment + 1;
|
||||
}
|
||||
|
||||
|
|
@ -1315,7 +1314,8 @@ int ha_archive::optimize(THD* thd, HA_CHECK_OPT* check_opt)
|
|||
if (!rc)
|
||||
{
|
||||
share->rows_recorded= 0;
|
||||
stats.auto_increment_value= share->archive_write.auto_increment= 0;
|
||||
stats.auto_increment_value= 1;
|
||||
share->archive_write.auto_increment= 0;
|
||||
my_bitmap_map *org_bitmap= dbug_tmp_use_all_columns(table, table->read_set);
|
||||
|
||||
while (!(rc= get_row(&archive, table->record[0])))
|
||||
|
|
@ -1332,8 +1332,8 @@ int ha_archive::optimize(THD* thd, HA_CHECK_OPT* check_opt)
|
|||
(ulonglong) field->val_int(table->record[0] +
|
||||
field->offset(table->record[0]));
|
||||
if (share->archive_write.auto_increment < auto_value)
|
||||
stats.auto_increment_value= share->archive_write.auto_increment=
|
||||
auto_value;
|
||||
stats.auto_increment_value=
|
||||
(share->archive_write.auto_increment= auto_value) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1418,18 +1418,9 @@ void ha_archive::update_create_info(HA_CREATE_INFO *create_info)
|
|||
DBUG_ENTER("ha_archive::update_create_info");
|
||||
|
||||
ha_archive::info(HA_STATUS_AUTO);
|
||||
if (create_info->used_fields & HA_CREATE_USED_AUTO)
|
||||
if (!(create_info->used_fields & HA_CREATE_USED_AUTO))
|
||||
{
|
||||
/*
|
||||
Internally Archive keeps track of last used, not next used.
|
||||
To make the output look like MyISAM we add 1 here.
|
||||
|
||||
This is not completely compatible with MYISAM though, since
|
||||
MyISAM will record on "SHOW CREATE TABLE" the last position,
|
||||
where we will report the original position the table was
|
||||
created with.
|
||||
*/
|
||||
create_info->auto_increment_value= stats.auto_increment_value + 1;
|
||||
create_info->auto_increment_value= stats.auto_increment_value;
|
||||
}
|
||||
|
||||
if (!(my_readlink(share->real_path, share->data_file_name, MYF(0))))
|
||||
|
|
@ -1494,7 +1485,7 @@ int ha_archive::info(uint flag)
|
|||
pthread_mutex_lock(&share->mutex);
|
||||
azflush(&archive, Z_SYNC_FLUSH);
|
||||
pthread_mutex_unlock(&share->mutex);
|
||||
stats.auto_increment_value= archive.auto_increment;
|
||||
stats.auto_increment_value= archive.auto_increment + 1;
|
||||
}
|
||||
|
||||
DBUG_RETURN(0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue