strings
MySQL is setting the flag HA_END_SPACE_KEYS for all the keys that reference
text or varchar columns with collation different than binary.
This was done to handle correctly the situation where a lookup on such a key
may return more than 1 row because of the presence of many rows that differ
only by the amount of trailing space in the table's string column.
Inserting such values however appears to violate the unique checks on
INSERT/UPDATE. Thus that flag must not be set as it will prevent the optimizer
from choosing a faster access method.
This fix removes the setting of the HA_END_SPACE_KEYS flag.
include/my_base.h:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- disabled HA_END_SPACE_KEY as it's no longer needed
mysql-test/r/func_str.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- fixed explain in an existing case
mysql-test/r/merge.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- fixed explain in an existing case
mysql-test/r/select.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- test case
mysql-test/r/subselect.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- fixed explain in an existing case
mysql-test/t/select.test:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- test case
into mysql.com:/home/svoj/devel/mysql/BUG10974/mysql-5.0-engines
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
Auto merged
mysql-test/r/merge.result:
Manual merge.
into mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-5.1-engines
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysys/queues.c:
Auto merged
storage/myisammrg/myrg_open.c:
Auto merged
storage/myisammrg/myrg_queue.c:
Auto merged
into mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-5.0-engines
myisammrg/myrg_open.c:
Auto merged
myisammrg/myrg_queue.c:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/r/merge.result:
Manual merge.
Crash may happen when selecting from a merge table that has underlying
tables with less indexes than in a merge table itself.
If number of keys in merge table is not bigger than requested key number,
return error.
myisammrg/myrg_open.c:
Store min(number of keys) in m_info instead of number of keys in last
underlying table.
myisammrg/myrg_queue.c:
Return error if inx passed to _myrg_init_queue function is not less
than number of keys.
mysql-test/r/merge.result:
A test case for bug#21617.
mysql-test/t/merge.test:
A test case for bug#21617.
mysys/queues.c:
Replaced annoying ifndef DBUG_OFF with DBUG_ASSERT, fixed coding style.
The problem was that having queue overrun in debug build was hidden
with this ifdef.
into mysql.com:/home/svoj/devel/mysql/merge/mysql-5.1-engines
mysql-test/r/repair.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
sql/table.cc:
Auto merged
storage/myisammrg/myrg_open.c:
Auto merged
mysql-test/r/merge.result:
Manual merge.
sql/share/errmsg.txt:
Manual merge.
into mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
myisammrg/myrg_open.c:
Auto merged
mysql-test/t/merge.test:
Auto merged
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
Auto merged
mysql-test/r/repair.result:
Use local.
sql/table.cc:
Use local.
mysql-test/r/merge.result:
Manual merge
Fixed confusing error message from the storage engine when
it fails to open underlying table. The error message is issued
when a table is _opened_ (not when it is created).
myisammrg/myrg_open.c:
Set my_errno to HA_ERR_WRONG_MRG_TABLE_DEF if attempt to open
underlying table failed.
mysql-test/r/merge.result:
A test case for bug#10974.
mysql-test/r/repair.result:
Fixed a test case according to patch for bug#10974.
mysql-test/t/merge.test:
A test case for bug#10974.
sql/share/english/errmsg.txt:
Better error message if we fail to open underlying table.
sql/table.cc:
Report error from handler with print_error instead of frm_error. This
fixes confusing error message from the handler. Actually this is
backported from 5.0.
into govinda.patg.net:/home/patg/mysql-build/mysql-5.1-5.0-merge2
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
BitKeeper/deleted/.del-libmysqld.dsp~78dc6a589e5a4149:
Auto merged
configure.in:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
sql/field.h:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
BitKeeper/deleted/.del-libmysqld.vcproj~a75d5b9a5967dea0:
Auto merged
BitKeeper/deleted/.del-libmysqld_ia64.dsp~578ab58d5f281d2a:
Auto merged
BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56:
Auto merged
BitKeeper/deleted/.del-mysqld.vcproj~6aa7b3f9c3e28fcb:
Auto merged
BitKeeper/deleted/.del-mysqld_ia64.dsp~7f8cf84d81ee04e2:
Auto merged
BitKeeper/deleted/.del-mysqldemb.dsp~1baf8c0e59ee9f7e:
Auto merged
BitKeeper/deleted/.del-mysqldemb.vcproj~54c64d55ccc51a7c:
Auto merged
BitKeeper/deleted/.del-mysqldemb_ia64.dsp~c7f7d75d542393cd:
Auto merged
BitKeeper/deleted/.del-mysqldmax.dsp~5d213fe1c204142e:
Auto merged
BitKeeper/deleted/.del-mysqldmax_ia64.dsp~25006b7cc0725ad1:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/sql_class.cc:
Auto merged
support-files/mysql.spec.sh:
Auto merged
include/my_base.h:
Hand merge of conflicts (5.0-5.1 merge), second try
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
mysql-test/r/federated.result:
Hand merge of conflicts (5.0-5.1 merge), second try
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
mysql-test/t/federated.test:
Hand merge of conflicts (5.0-5.1 merge), second try
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
sql/field.cc:
Hand merge of conflicts (5.0-5.1 merge), second try
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
sql/ha_federated.cc:
Hand merge of conflicts (5.0-5.1 merge), second try
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
sql/handler.cc:
Hand merge of conflicts (5.0-5.1 merge), second try
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
tests/mysql_client_test.c:
Hand merge of conflicts (5.0-5.1 merge), second try
Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:
bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
into rama.(none):/home/jimw/my/mysql-5.0-17608
include/my_base.h:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/handler.cc:
Auto merged
Changed the error reporting (and a crash) when inserting data into a
MERGE table that has no underlying tables or no INSERT_METHOD specified
by reporting that it is read-only.
include/my_base.h:
Add new handler error
mysql-test/r/merge.result:
Update results
mysql-test/t/merge.test:
Add new regression test
sql/ha_myisammrg.cc:
When trying to insert into a MERGE table with no underlying tables
or no INSERT_METHOD, report that it is read-only.
sql/handler.cc:
Handle new error message
into mysql.com:/home/mydev/mysql-5.1-amerge
mysql-test/r/lock_multi.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/lock_multi.test:
Manual merge
sql/ha_myisammrg.h:
Manual merge
"Merge table does not work with bit types"
MERGE should have HA_CAN_BIT_FIELD feature bit set or else table row is
formatted incorrectly.
mysql-test/r/merge.result:
Bug#19648
Test for fix
mysql-test/t/merge.test:
Bug#19648
Test for fix
sql/ha_myisammrg.h:
Bug#19648
Must have HA_CAN_BIT_FIELD for BIT type support
"alter table from MyISAM to MERGE lost data without errors and warnings"
Add new handlerton flag which prevent user from altering table storage
engine to storage engines which would lose data. Both 'blackhole' and
'merge' are marked with the new flag.
Tests included.
mysql-test/r/blackhole.result:
test for bug#10952
mysql-test/r/merge.result:
test for bug#10952
mysql-test/t/blackhole.test:
test for bug#10952
mysql-test/t/merge.test:
test for bug#10952
sql/ha_blackhole.cc:
Bug#10952
shouldn't be able to alter a table into a blackhole
sql/ha_myisammrg.cc:
Bug#10952
shouldn't be able to alter a table into a merge
sql/handler.h:
Bug#10952
new handlerton flag
sql/sql_table.cc:
Bug#10952
If alter is changing engine, check if new engine allows creating table
via ALTER statement.
into neptunus.(none):/home/msvensson/mysql/mysql-5.1
mysql-test/r/bigint.result:
Auto merged
mysql-test/r/binary.result:
Auto merged
mysql-test/r/case.result:
Auto merged
mysql-test/r/create.result:
Auto merged
mysql-test/r/events.result:
Auto merged
mysql-test/r/heap.result:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/partition_02myisam.result:
Auto merged
mysql-test/r/partition_mgm_err.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/trigger.result:
Auto merged
mysql-test/r/type_timestamp.result:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/r/archive_gis.result:
Merge bug10460
mysql-test/r/bdb_gis.result:
Merge bug10460
mysql-test/r/func_system.result:
Merge bug10460
mysql-test/r/innodb_gis.result:
Merge bug10460
mysql-test/r/ndb_gis.result:
Merge bug10460
into mysql.com:/home/dlenev/src/mysql-5.1-merges2
client/mysqltest.c:
Auto merged
include/my_global.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/heap.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/trigger.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/trigger.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
storage/myisammrg/myrg_queue.c:
Auto merged
sql/sql_rename.cc:
Manual merge.
sql/sql_trigger.cc:
Manual merge.
sql/sql_yacc.yy:
Manual merge.
mysql-test/r/alter_table.result:
Update test result
mysql-test/r/analyse.result:
Update test result
mysql-test/r/archive.result:
Update test result
mysql-test/r/archive_bitfield.result:
Update test result
mysql-test/r/archive_gis.result:
Update test result
mysql-test/r/bdb.result:
Update test result
mysql-test/r/bdb_gis.result:
Update test result
mysql-test/r/bigint.result:
Update test result
mysql-test/r/binary.result:
Update test result
mysql-test/r/case.result:
Update test result
mysql-test/r/cast.result:
Update test result
mysql-test/r/constraints.result:
Update test result
mysql-test/r/create.result:
Update test result
mysql-test/r/ctype_collate.result:
Update test result
mysql-test/r/ctype_create.result:
Update test result
mysql-test/r/ctype_latin1_de.result:
Update test result
mysql-test/r/ctype_many.result:
Update test result
mysql-test/r/ctype_mb.result:
Update test result
mysql-test/r/ctype_recoding.result:
Update test result
mysql-test/r/ctype_sjis.result:
Update test result
mysql-test/r/ctype_tis620.result:
Update test result
mysql-test/r/ctype_ucs.result:
Update test result
mysql-test/r/ctype_ujis.result:
Update test result
mysql-test/r/ctype_utf8.result:
Update test result
mysql-test/r/default.result:
Update test result
mysql-test/r/events.result:
Update test result
mysql-test/r/federated.result:
Update test result
mysql-test/r/fulltext.result:
Update test result
mysql-test/r/func_gconcat.result:
Update test result
mysql-test/r/func_group.result:
Update test result
mysql-test/r/func_math.result:
Update test result
mysql-test/r/func_misc.result:
Update test result
mysql-test/r/func_str.result:
Update test result
mysql-test/r/func_system.result:
Update test result
mysql-test/r/gis-rtree.result:
Update test result
mysql-test/r/heap.result:
Update test result
mysql-test/r/index_merge_innodb.result:
Update test result
mysql-test/r/information_schema.result:
Update test result
mysql-test/r/innodb.result:
Update test result
mysql-test/r/innodb_gis.result:
Update test result
mysql-test/r/key.result:
Update test result
mysql-test/r/merge.result:
Update test result
mysql-test/r/myisam.result:
Update test result
mysql-test/r/mysqldump-max.result:
Update test result
mysql-test/r/mysqldump.result:
Update test result
mysql-test/r/ndb_bitfield.result:
Update test result
mysql-test/r/ndb_gis.result:
Update test result
mysql-test/r/ndb_partition_key.result:
Update test result
mysql-test/r/null.result:
Update test result
mysql-test/r/partition.result:
Update test result
mysql-test/r/partition_02myisam.result:
Update test result
mysql-test/r/partition_mgm_err.result:
Update test result
mysql-test/r/partition_range.result:
Update test result
mysql-test/r/ps_2myisam.result:
Update test result
mysql-test/r/ps_3innodb.result:
Update test result
mysql-test/r/ps_4heap.result:
Update test result
mysql-test/r/ps_5merge.result:
Update test result
mysql-test/r/ps_6bdb.result:
Update test result
mysql-test/r/rpl_mixed_ddl_dml.result:
Update test result
mysql-test/r/rpl_multi_engine.result:
Update test result
mysql-test/r/rpl_ndb_UUID.result:
Update test result
mysql-test/r/show_check.result:
Update test result
mysql-test/r/sp-vars.result:
Update test result
mysql-test/r/sp.result:
Update test result
mysql-test/r/sql_mode.result:
Update test result
mysql-test/r/strict.result:
Update test result
mysql-test/r/subselect.result:
Update test result
mysql-test/r/symlink.result:
Update test result
mysql-test/r/synchronization.result:
Update test result
mysql-test/r/system_mysql_db.result:
Update test result
mysql-test/r/temp_table.result:
Update test result
mysql-test/r/trigger.result:
Update test result
mysql-test/r/type_binary.result:
Update test result
mysql-test/r/type_bit.result:
Update test result
mysql-test/r/type_bit_innodb.result:
Update test result
mysql-test/r/type_blob.result:
Update test result
mysql-test/r/type_decimal.result:
Update test result
mysql-test/r/type_enum.result:
Update test result
mysql-test/r/type_float.result:
Update test result
mysql-test/r/type_nchar.result:
Update test result
mysql-test/r/type_newdecimal.result:
Update test result
mysql-test/r/type_set.result:
Update test result
mysql-test/r/type_timestamp.result:
Update test result
mysql-test/r/type_varchar.result:
Update test result
mysql-test/r/union.result:
Update test result
mysql-test/r/user_var.result:
Update test result
mysql-test/r/variables.result:
Update test result
sql/sql_show.cc:
Make ouput from SHOW CREATE TABLE use uppercase for "CHARACTER SET", "COLLATE", "DEFAULT", "ON UPDATE" and "AUTO_INCREMENT"
into mysql.com:/home/jimw/my/mysql-5.1-clean
mysql-test/r/create.result:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/key.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/r/symlink.result:
Auto merged
mysql-test/r/system_mysql_db.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/r/rpl_mixed_ddl_dml.result:
Auto merged
1. Fix index access costs for MERGE tables, set block_size=myisam_block_size/#underlying_tables
instead of 0 which it was before.
2. Make index scans on MERGE table to return records in (key_tuple, merge_table_rowid) order,
instead of just (key_tuple) order. This makes an index scan on MERGE table to be truly a ROR-scan
which is a requirement for index_merge union/intersection.
myisammrg/myrg_queue.c:
BUG#17314: Make index scans on MERGE table return records ordered by (keytuple, merge_table_rowid).
mysql-test/r/index_merge.result:
Testcase for BUG#17314
mysql-test/r/merge.result:
BUG#17314: update testcase result
mysql-test/t/index_merge.test:
Testcase for BUG#17314
sql/ha_myisammrg.cc:
BUG#17314: For MERGE tables, set handler::block_size to myisam_block_size/#underlying_tables, and not to 0.
mysql-test/r/alter_table.result:
Update test results
mysql-test/r/archive_bitfield.result:
Update test results
mysql-test/r/create.result:
Update test results
mysql-test/r/ctype_tis620.result:
Update test results
mysql-test/r/gis-rtree.result:
Update test results
mysql-test/r/index_merge_innodb.result:
Update test results
mysql-test/r/information_schema.result:
Update test results
mysql-test/r/innodb.result:
Update test results
mysql-test/r/key.result:
Update test results
mysql-test/r/merge.result:
Update test results
mysql-test/r/partition.result:
Update test results
mysql-test/r/partition_range.result:
Update test results
mysql-test/r/rpl000002.result:
Update test results
mysql-test/r/rpl_multi_engine.result:
Update test results
mysql-test/r/show_check.result:
Update test results
mysql-test/r/sql_mode.result:
Update test results
mysql-test/r/strict.result:
Update test results
mysql-test/r/symlink.result:
Update test results
mysql-test/r/system_mysql_db.result:
Update test results
mysql-test/r/type_blob.result:
Update test results
sql/sql_show.cc:
Avoid adding extra space between 'PRIMARY KEY' and key fields in
SHOW CREATE TABLE output.
Problem #1: INSERT...SELECT, Version for 5.1.
Extended the unique table check by a check of lock data.
Merge sub-tables cannot be detected by doing name checks only.
mysql-test/r/create.result:
BUG#5390 - problems with merge tables
Removed a duplicate test.
mysql-test/r/merge.result:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT
Added test results.
mysql-test/t/create.test:
BUG#5390 - problems with merge tables
Removed a duplicate test.
mysql-test/t/merge.test:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT
Added tests.
sql/lock.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
Problem #1: INSERT...SELECT, Version for 5.1.
Added the thread handle to unique_table().
Added a declaration for the new function.
sql/sql_base.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Added the thread handle to unique_table().
Added a call to the new mysql_lock_have_duplicate(),
which needs the thread handle, to unique_table().
sql/sql_delete.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Added the thread handle to unique_table().
sql/sql_insert.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Added the thread handle to unique_table().
sql/sql_load.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Added the thread handle to unique_table().
sql/sql_parse.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Added the thread handle to unique_table().
sql/sql_update.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.1.
Added the thread handle to unique_table().
Replaced a call to find_table_in_local_list() by
the newly extended unique_table().
Problem #1: INSERT...SELECT, Version for 5.0.
Extended the unique table check by a check of lock data.
Merge sub-tables cannot be detected by doing name checks only.
mysql-test/r/create.result:
BUG#5390 - problems with merge tables
Removed a duplicate test.
mysql-test/r/merge.result:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT
Added test results.
mysql-test/t/create.test:
BUG#5390 - problems with merge tables
Removed a duplicate test.
mysql-test/t/merge.test:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT
Added tests.
sql/lock.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added the thread handle to unique_table().
Added a declaration for the new function.
sql/sql_base.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added the thread handle to unique_table().
Added a call to the new mysql_lock_have_duplicate(),
which needs the thread handle, to unique_table().
sql/sql_delete.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added the thread handle to unique_table().
sql/sql_insert.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added the thread handle to unique_table().
sql/sql_load.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added the thread handle to unique_table().
sql/sql_parse.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added the thread handle to unique_table().
sql/sql_update.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Added the thread handle to unique_table().
Replaced a call to find_table_in_local_list() by
the newly extended unique_table().
Problem #1: INSERT...SELECT, Version for 4.1.
INSERT ... SELECT with the same table on both sides (hidden
below a MERGE table) does now work by buffering the select result.
The duplicate detection works now after open_and_lock_tables()
on the locks.
I did not find a test case that failed without the change in
sql_update.cc. I made the change anyway as it should in theory
fix a possible MERGE table problem with multi-table update.
libmysqld/ha_blackhole.cc:
BUG#5390 - problems with merge tables
No idea, how the symlink change made it into my patch.
mysql-test/r/create.result:
BUG#5390 - problems with merge tables
Removed a duplicate test.
mysql-test/r/merge.result:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
Added test results.
mysql-test/t/create.test:
BUG#5390 - problems with merge tables
Removed a duplicate test.
mysql-test/t/merge.test:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
Added tests.
sql/lock.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
Added a declaration for the new function.
sql/sql_parse.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
Changed the duplicate tables detection for INSERT ... SELECT
to use the new function, which does also work for MERGE tables.
sql/sql_update.cc:
BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
Changed the duplicate tables detection for UPDATE
to use the new function, which does also work for MERGE tables.
The table opening process now works the following way:
- Create common TABLE_SHARE object
- Read the .frm file and unpack it into the TABLE_SHARE object
- Create a TABLE object based on the information in the TABLE_SHARE
object and open a handler to the table object
Other noteworthy changes:
- In TABLE_SHARE the most common strings are now LEX_STRING's
- Better error message when table is not found
- Variable table_cache is now renamed 'table_open_cache'
- New variable 'table_definition_cache' that is the number of table defintions that will be cached
- strxnmov() calls are now fixed to avoid overflows
- strxnmov() will now always add one end \0 to result
- engine objects are now created with a TABLE_SHARE object instead of a TABLE object.
- After creating a field object one must call field->init(table) before using it
- For a busy system this change will give you:
- Less memory usage for table object
- Faster opening of tables (if it's has been in use or is in table definition cache)
- Allow you to cache many table definitions objects
- Faster drop of table
mysql-test/mysql-test-run.sh:
Fixed some problems with --gdb option
Test both with socket and tcp/ip port that all old servers are killed
mysql-test/r/flush_table.result:
More tests with lock table with 2 threads + flush table
mysql-test/r/information_schema.result:
Removed old (now wrong) result
mysql-test/r/innodb.result:
Better error messages (thanks to TDC patch)
mysql-test/r/merge.result:
Extra flush table test
mysql-test/r/ndb_bitfield.result:
Better error messages (thanks to TDC patch)
mysql-test/r/ndb_partition_error.result:
Better error messages (thanks to TDC patch)
mysql-test/r/query_cache.result:
Remove tables left from old tests
mysql-test/r/temp_table.result:
Test truncate with temporary tables
mysql-test/r/variables.result:
Table_cache -> Table_open_cache
mysql-test/t/flush_table.test:
More tests with lock table with 2 threads + flush table
mysql-test/t/merge.test:
Extra flush table test
mysql-test/t/multi_update.test:
Added 'sleep' to make test predictable
mysql-test/t/query_cache.test:
Remove tables left from old tests
mysql-test/t/temp_table.test:
Test truncate with temporary tables
mysql-test/t/variables.test:
Table_cache -> Table_open_cache
mysql-test/valgrind.supp:
Remove warning that may happens becasue threads dies in different order
mysys/hash.c:
Fixed wrong DBUG_PRINT
mysys/mf_dirname.c:
More DBUG
mysys/mf_pack.c:
Better comment
mysys/mf_tempdir.c:
More DBUG
Ensure that we call cleanup_dirname() on all temporary directory paths.
If we don't do this, we will get a failure when comparing temporary table
names as in some cases the temporary table name is run through convert_dirname())
mysys/my_alloc.c:
Indentation fix
sql/examples/ha_example.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/examples/ha_example.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/examples/ha_tina.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/examples/ha_tina.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/field.cc:
Update for table definition cache:
- Field creation now takes TABLE_SHARE instead of TABLE as argument
(This is becasue field definitions are now cached in TABLE_SHARE)
When a field is created, one now must call field->init(TABLE) before using it
- Use s->db instead of s->table_cache_key
- Added Field::clone() to create a field in TABLE from a field in TABLE_SHARE
- make_field() takes TABLE_SHARE as argument instead of TABLE
- move_field() -> move_field_offset()
sql/field.h:
Update for table definition cache:
- Field creation now takes TABLE_SHARE instead of TABLE as argument
(This is becasue field definitions are now cached in TABLE_SHARE)
When a field is created, one now must call field->init(TABLE) before using it
- Added Field::clone() to create a field in TABLE from a field in TABLE_SHARE
- make_field() takes TABLE_SHARE as argument instead of TABLE
- move_field() -> move_field_offset()
sql/ha_archive.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_archive.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_berkeley.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Changed name of argument create() to not hide internal 'table' variable.
table->s -> table_share
sql/ha_berkeley.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_blackhole.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_blackhole.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_federated.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Fixed comments
Remove index variable and replace with pointers (simple optimization)
move_field() -> move_field_offset()
Removed some strlen() calls
sql/ha_federated.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_heap.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Simplify delete_table() and create() as the given file names are now without extension
sql/ha_heap.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_innodb.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_innodb.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_myisam.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Remove not needed fn_format()
Fixed for new table->s structure
sql/ha_myisam.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_myisammrg.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Don't set 'is_view' for MERGE tables
Use new interface to find_temporary_table()
sql/ha_myisammrg.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Added flag HA_NO_COPY_ON_ALTER
sql/ha_ndbcluster.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Fixed wrong calls to strxnmov()
Give error HA_ERR_TABLE_DEF_CHANGED if table definition has changed
drop_table -> intern_drop_table()
table->s -> table_share
Move part_info to TABLE
Fixed comments & DBUG print's
New arguments to print_error()
sql/ha_ndbcluster.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
sql/ha_partition.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
We can't set up or use part_info when creating handler as there is not yet any table object
New ha_intialise() to work with TDC (Done by Mikael)
sql/ha_partition.h:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
Got set_part_info() from Mikael
sql/handler.cc:
We new use TABLE_SHARE instead of TABLE when creating engine handlers
ha_delete_table() now also takes database as an argument
handler::ha_open() now takes TABLE as argument
ha_open() now calls ha_allocate_read_write_set()
Simplify ha_allocate_read_write_set()
Remove ha_deallocate_read_write_set()
Use table_share (Cached by table definition cache)
sql/handler.h:
New table flag: HA_NO_COPY_ON_ALTER (used by merge tables)
Remove ha_deallocate_read_write_set()
get_new_handler() now takes TABLE_SHARE as argument
ha_delete_table() now gets database as argument
sql/item.cc:
table_name and db are now LEX_STRING objects
When creating fields, we have now have to call field->init(table)
move_field -> move_field_offset()
sql/item.h:
tmp_table_field_from_field_type() now takes an extra paramenter 'fixed_length' to allow one to force usage of CHAR
instead of BLOB
sql/item_cmpfunc.cc:
Fixed call to tmp_table_field_from_field_type()
sql/item_create.cc:
Assert if new not handled cast type
sql/item_func.cc:
When creating fields, we have now have to call field->init(table)
dummy_table used by 'sp' now needs a TABLE_SHARE object
sql/item_subselect.cc:
Trivial code cleanups
sql/item_sum.cc:
When creating fields, we have now have to call field->init(table)
sql/item_timefunc.cc:
Item_func_str_to_date::tmp_table_field() now replaced by call to
tmp_table_field_from_field_type() (see item_timefunc.h)
sql/item_timefunc.h:
Simply tmp_table_field()
sql/item_uniq.cc:
When creating fields, we have now have to call field->init(table)
sql/key.cc:
Added 'KEY' argument to 'find_ref_key' to simplify code
sql/lock.cc:
More debugging
Use create_table_def_key() to create key for table cache
Allocate TABLE_SHARE properly when creating name lock
Fix that locked_table_name doesn't test same table twice
sql/mysql_priv.h:
New functions for table definition cache
New interfaces to a lot of functions.
New faster interface to find_temporary_table() and close_temporary_table()
sql/mysqld.cc:
Added support for table definition cache of size 'table_def_size'
Fixed som calls to strnmov()
Changed name of 'table_cache' to 'table_open_cache'
sql/opt_range.cc:
Use new interfaces
Fixed warnings from valgrind
sql/parse_file.cc:
Safer calls to strxnmov()
Fixed typo
sql/set_var.cc:
Added variable 'table_definition_cache'
Variable table_cache renamed to 'table_open_cache'
sql/slave.cc:
Use new interface
sql/sp.cc:
Proper use of TABLE_SHARE
sql/sp_head.cc:
Remove compiler warnings
We have now to call field->init(table)
sql/sp_head.h:
Pointers to parsed strings are now const
sql/sql_acl.cc:
table_name is now a LEX_STRING
sql/sql_base.cc:
Main implementation of table definition cache
(The #ifdef's are there for the future when table definition cache will replace open table cache)
Now table definitions are cached indepndent of open tables, which will speed up things when a table is in use at once from several places
Views are not yet cached; For the moment we only cache if a table is a view or not.
Faster implementation of find_temorary_table()
Replace 'wait_for_refresh()' with the more general function 'wait_for_condition()'
Drop table is slightly faster as we can use the table definition cache to know the type of the table
sql/sql_cache.cc:
table_cache_key and table_name are now LEX_STRING
'sDBUG print fixes
sql/sql_class.cc:
table_cache_key is now a LEX_STRING
safer strxnmov()
sql/sql_class.h:
Added number of open table shares (table definitions)
sql/sql_db.cc:
safer strxnmov()
sql/sql_delete.cc:
Use new interface to find_temporary_table()
sql/sql_derived.cc:
table_name is now a LEX_STRING
sql/sql_handler.cc:
TABLE_SHARE->db and TABLE_SHARE->table_name are now LEX_STRING's
sql/sql_insert.cc:
TABLE_SHARE->db and TABLE_SHARE->table_name are now LEX_STRING's
sql/sql_lex.cc:
Make parsed string a const (to quickly find out if anything is trying to change the query string)
sql/sql_lex.h:
Make parsed string a const (to quickly find out if anything is trying to change the query string)
sql/sql_load.cc:
Safer strxnmov()
sql/sql_parse.cc:
Better error if wrong DB name
sql/sql_partition.cc:
part_info moved to TABLE from TABLE_SHARE
Indentation changes
sql/sql_select.cc:
Indentation fixes
Call field->init(TABLE) for new created fields
Update create_tmp_table() to use TABLE_SHARE properly
sql/sql_select.h:
Call field->init(TABLE) for new created fields
sql/sql_show.cc:
table_name is now a LEX_STRING
part_info moved to TABLE
sql/sql_table.cc:
Use table definition cache to speed up delete of tables
Fixed calls to functions with new interfaces
Don't use 'share_not_to_be_used'
Instead of doing openfrm() when doing repair, we now have to call
get_table_share() followed by open_table_from_share().
Replace some fn_format() with faster unpack_filename().
Safer strxnmov()
part_info is now in TABLE
Added Mikaels patch for partition and ALTER TABLE
Instead of using 'TABLE_SHARE->is_view' use 'table_flags() & HA_NO_COPY_ON_ALTER
sql/sql_test.cc:
table_name and table_cache_key are now LEX_STRING's
sql/sql_trigger.cc:
TABLE_SHARE->db and TABLE_SHARE->table_name are now LEX_STRING's
safer strxnmov()
Removed compiler warnings
sql/sql_update.cc:
Call field->init(TABLE) after field is created
sql/sql_view.cc:
safer strxnmov()
Create common TABLE_SHARE object for views to allow us to cache if table is a view
sql/structs.h:
Added SHOW_TABLE_DEFINITIONS
sql/table.cc:
Creation and destruct of TABLE_SHARE objects that are common for many TABLE objects
The table opening process now works the following way:
- Create common TABLE_SHARE object
- Read the .frm file and unpack it into the TABLE_SHARE object
- Create a TABLE object based on the information in the TABLE_SHARE
object and open a handler to the table object
open_table_def() is written in such a way that it should be trival to add parsing of the .frm files in new formats
sql/table.h:
TABLE objects for the same database table now share a common TABLE_SHARE object
In TABLE_SHARE the most common strings are now LEX_STRING's
sql/unireg.cc:
Changed arguments to rea_create_table() to have same order as other functions
Call field->init(table) for new created fields
sql/unireg.h:
Added OPEN_VIEW
strings/strxnmov.c:
Change strxnmov() to always add end \0
This makes usage of strxnmov() safer as most of MySQL code assumes that strxnmov() will create a null terminated string
into mysql.com:/home/mydev/mysql-5.0-5000
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/sql_mode.test:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/r/sql_mode.result:
SCCS merged
into mysql.com:/home/mydev/mysql-4.1-4100
mysql-test/r/merge.result:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
mysql-test/t/merge.test:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
Reduced the precision of the test numbers.
Not all platforms could reproduce the exact numbers.
mysql-test/r/merge.result:
Bug#9112 - Merge table with composite index producing invalid results with some queries
The new test result
into mysql.com:/home/mydev/mysql-5.0-5000
myisam/mi_dbug.c:
Auto merged
myisam/mi_rkey.c:
Auto merged
myisam/mi_search.c:
Auto merged
myisam/myisamdef.h:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
into mysql.com:/home/mydev/mysql-4.1-4100
myisam/mi_dbug.c:
Auto merged
myisam/mi_rkey.c:
Auto merged
myisam/mi_search.c:
Auto merged
myisam/myisamdef.h:
Auto merged
myisammrg/myrg_rkey.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
mysql-test/r/merge.result:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
mysql-test/t/merge.test:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
The problem was an ab-use of last_rkey_length.
Formerly we saved the packed key length (of the search key)
in this element. But in certain cases it got replaced by
the (packed) result key length.
Now we use a new element of MI_INFO to save the packed key
length of the search key.
myisam/mi_dbug.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Fixed the recognition of NULL values in _mi_print_key().
myisam/mi_rkey.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Saved the packed key length in a new element of MI_INFO.
myisam/mi_search.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Added a comment and trace prints.
myisam/myisamdef.h:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Added a new element to store the packed key length
for use by the MyISAMMRG engine.
myisammrg/myrg_rkey.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Changed to use the new element of MI_INFO to get at the
packed key length.
mysql-test/r/merge.result:
Bug#9112 - Merge table with composite index producing invalid results with some queries
The test result.
mysql-test/t/merge.test:
Bug#9112 - Merge table with composite index producing invalid results with some queries
The test case.
mysql-test/r/grant_cache.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/t/grant_cache.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
sql/ha_myisammrg.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/handler.h:
Resolve merge
sql/table.cc:
Resolve merge
After review version.
Added a condition for MERGE tables. These do not have unique
indexes. But every key could be a unique key on the underlying
MyISAM table. So get the maximum key length for MERGE tables
instead of the maximum unique key length. This is used for
buffer allocation in write_record().
mysql-test/r/merge.result:
Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
The test result.
mysql-test/t/merge.test:
Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
The test case does not in all cases show the problem
without the bugfix. The improper memory allocation
might get through undetected in many cases.
sql/ha_myisammrg.h:
Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
Set a table_flag for the MERGE engine telling that any index
might be unique without being specified as such.
sql/handler.h:
Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
Added a new table_flag telling that any index
might be unique without being specified as such.
sql/sql_insert.cc:
Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
Changed the freeing of the memory to be symmetric to its
allocation (my_safe_alloc -> my_safe_afree).
This is not directly related to the bug.
sql/table.cc:
Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
Added a condition for MERGE tables. These do not have unique
indexes. But every key could be a unique key on the underlying
MyISAM table. So get the maximum key length for MERGE tables
instead of the maximum unique key length. This is used for
buffer allocation in write_record().
myisam_max_extra_sort_file_size is depricated
Ensure that myisam_data_pointer_size is honoured when creating new MyISAM files
Changed default value of myisam_data_pointer_size from 4 to 6 to get rid of 'table-is-full' errors
include/myisam.h:
Change type of myisam_block_size and myisam_concurrent_insert to make them changeable in mysqld.cc
Removed not used varaible myisam_max_extra_temp_length
include/thr_lock.h:
Added extra parameter to get_status
myisam/mi_create.c:
Ensure that myisam_data_pointer_size is honoured
myisam/mi_dynrec.c:
If 'append_insert_at_end' is set, only write at end of myisam record file
myisam/mi_locking.c:
Add extra argument to 'mi_get_status' to allow thr_lock to signal that we want to do a concurrent insert
If this is used, we will append new insert rows at end of data file.
Change mi_check_status() to allow concurrent_inserts even if there are holes in the file when myisam_concurent_insert=2
myisam/mi_static.c:
Change behavior of myisam_concurrent_insert so that setting this to 2 allows inserts even if there is a hole in the data file.
Default value is 2 for MyISAM direct usage but will be set to 1 (old default) by mysqld.cc
myisam/mi_statrec.c:
If 'append_insert_at_end' is set, only write at end of myisam record file
myisam/mi_write.c:
If 'append_insert_at_end' is set, only write at end of myisam record file
myisam/myisamdef.h:
Support for insert-at-end even if there is holes in data file
mysql-test/r/gis-rtree.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/group_min_max.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/index_merge.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/index_merge_ror.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/merge.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/myisam.result:
Test of concurrent_insert=2
mysql-test/r/null.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/preload.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/ps_1general.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/range.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/r/variables.result:
concurrent_insert is now a integer, not a boolean
myisam_extra_sort_file_size is deleted
mysql-test/r/view.result:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/t/index_merge.test:
Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
mysql-test/t/myisam.test:
Test of concurrent_insert=2
mysql-test/t/ps_1general.test:
Drop test table
mysql-test/t/variables.test:
concurrent_insert is now a integer, not a boolean
myisam_extra_sort_file_size is deleted
mysql-test/t/view.test:
Drop tables that may be left from previous tests
mysys/thr_lock.c:
Extra paramter to get_status to signal if concurrent_insert was used
sql/mysqld.cc:
concurrent-insert can now be set to 2 for concurrent inserts when there is holes in the data file
myisam_max_extra_sort_file_size is depricated
sql/set_var.cc:
concurrent-insert is now an integer, not a bool
myisam_max_extra_sort_file_size is deleted
configure.in:
Auto merged
client/mysqldump.c:
Auto merged
innobase/buf/buf0rea.c:
Auto merged
innobase/dict/dict0load.c:
Auto merged
innobase/fil/fil0fil.c:
Auto merged
innobase/include/fil0fil.h:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/include/trx0trx.h:
Auto merged
innobase/os/os0file.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0mysql.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
innobase/trx/trx0trx.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/func_str.result:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/grant_cache.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/ndb_blob.result:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/timezone2.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
ndb/src/ndbapi/NdbBlob.cpp:
Auto merged
ndb/src/ndbapi/NdbConnection.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
ndb/src/ndbapi/NdbOperationDefine.cpp:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/ha_myisammrg.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_table.cc:
Auto merged
sql/strfunc.cc:
Auto merged
sql/unireg.cc:
Auto merged
vio/vio.c:
Auto merged
vio/viosocket.c:
Auto merged
BitKeeper/etc/logging_ok:
auto-union
client/mysqltest.c:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
libmysql/errmsg.c:
Auto merged
myisam/mi_open.c:
Auto merged
myisam/mi_write.c:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/t/derived.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/show_check.test:
Auto merged
mysql-test/t/system_mysql_db_fix.test:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
sql/tztime.h:
Auto merged
mysql-test/r/merge.result:
Added test result for BUG#7377.
mysql-test/t/merge.test:
Added test for BUG#7377.
sql/ha_myisammrg.cc:
Added implementation for handler::index_type.
sql/ha_myisammrg.h:
Added implementation for handler::index_type.
Changed my_error() to print error messages, which come from
arbitrary registered ranges of error messages. Messages can
be unregistered (and should be at end of the program).
Added registration of handler error messages.
Added a new mi_print_error() macro and a new
mi_report_error() function, which supply error
messages with a table name.
Added calls to mi_print_error() or mi_report_error()
at all places in MyISAM, where table corruption is detected.
extra/comp_err.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added prints for ER_ERROR_FIRST and ER_ERROR_LAST.
Removed print for ER_ERROR_MESSAGES.
include/errmsg.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added declaration for a new function.
Added first and last error number defines.
include/my_base.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added first and last error number defines.
include/my_sys.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Removed obsolete defines.
Removed a global variable, which held pointers to the error message arrays.
Added declarations for new functions.
include/mysys_err.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Removed an obsolete define.
Changed two defines to use the new defines.
Added first and last error number defines.
libmysql/errmsg.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Replaced global array initialization by proper registration
and unregistration of client error messages.
libmysql/libmysql.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added a call for unregistration of client error messages.
myisam/mi_delete.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
Added a debugging call to test undefined error numbers in case a special
debug string is set.
myisam/mi_extra.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_info.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added the error logging function.
myisam/mi_key.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_keycache.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_locking.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_open.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
myisam/mi_page.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_range.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_rkey.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_search.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_update.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
myisam/mi_write.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
myisam/myisamdef.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added the declaration of the new error logging function
and a new macro.
mysql-test/r/merge.result:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed test results. These come from the changed error reporting
in openfrm().
mysql-test/r/repair.result:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed test results. These come from the changed error reporting
in openfrm().
mysql-test/t/merge.test:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changederror numbers. These come from the changed error reporting
in openfrm().
mysys/errors.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Dropped the assignment of the global errors to the
dropped global pointer array.
mysys/my_error.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed my_error() from using a static array of pointers to
error message arrays to using a linked list of structures
with pointers to array message arrays.
Added functions for registering and unregistering error
message arrays to the chain.
sql/derror.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed reading of mysqld error messages to using the new
registering and unregistering functions.
sql/handler.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added initialization and deinitialization of handler error messages.
Included more handler error messages in the mapping to
mysqld error messages.
sql/mysqld.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed deinitialization of error messages to proper
unregistration.
sql/table.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed error reporting in openfrm() so that error messages from
handler::ha_open() are reported by handler::print_error(). This
changed messages from "Can't open 't1.MYI' (errno: 130)" to
"Incorrect file format 't1'" for example.
sql/unireg.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed two defines to use the new defines.
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
Build-tools/Do-compile:
Auto merged
VC++Files/sql/mysqld.dsp:
Auto merged
client/Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003:
Auto merged
client/mysqltest.c:
Auto merged
include/my_base.h:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/dict/dict0load.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/os/os0file.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
libmysql/libmysql.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_rnext_same.c:
Auto merged
myisam/mi_write.c:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/ctype_ujis.result:
Auto merged
mysql-test/r/gis-rtree.result:
Auto merged
mysql-test/r/group_by.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/metadata.result:
Auto merged
mysql-test/r/ndb_alter_table.result:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/insert_update.result:
Auto merged
mysql-test/r/timezone2.result:
Auto merged
mysql-test/r/type_enum.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/ps_1general.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/system_mysql_db_fix.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
ndb/include/ndbapi/NdbConnection.hpp:
Auto merged
ndb/include/ndbapi/NdbDictionary.hpp:
Auto merged
ndb/src/common/util/version.c:
Auto merged
ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
Auto merged
ndb/src/kernel/blocks/dbacc/Makefile.am:
Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtux/Dbtux.hpp:
Auto merged
ndb/src/ndbapi/NdbBlob.cpp:
Auto merged
ndb/src/ndbapi/NdbConnection.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionary.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Auto merged
ndb/src/ndbapi/NdbOperationExec.cpp:
Auto merged
ndb/src/ndbapi/NdbScanOperation.cpp:
Auto merged
ndb/test/ndbapi/Makefile.am:
Auto merged
scripts/make_win_src_distribution.sh:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/field.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/handler.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_create.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_geofunc.cc:
Auto merged
sql/item_row.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/net_serv.cc:
Auto merged
sql/password.c:
Auto merged
sql/protocol.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_derived.cc:
Auto merged
sql/sql_do.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_help.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/examples/ha_archive.cc:
Auto merged
sql/strfunc.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
sql/tztime.h:
Auto merged
sql/udf_example.cc:
Auto merged
sql/unireg.cc:
Auto merged
Makefile.am:
Simple merge
client/mysqldump.c:
Simple merge
configure.in:
Simple merge
libmysqld/lib_sql.cc:
Automatic merge
mysql-test/r/func_str.result:
Automatic merge
mysql-test/r/grant.result:
simple merge
mysql-test/r/multi_update.result:
automatc merge
mysql-test/r/ps.result:
automatic merge
mysql-test/r/ps_2myisam.result:
Automatic merge
mysql-test/r/ps_3innodb.result:
Automatic merge
mysql-test/r/ps_4heap.result:
Automatic merge
mysql-test/r/ps_5merge.result:
Automatic merge
mysql-test/r/ps_6bdb.result:
Automatic merge
mysql-test/r/ps_7ndb.result:
Automatic merge
mysql-test/r/show_check.result:
Automatic merge
mysql-test/r/subselect.result:
Automatic merge
mysql-test/t/grant.test:
Automatic merge
mysql-test/t/multi_update.test:
Automatic merge
mysql-test/t/ps.test:
Automatic merge
mysql-test/t/show_check.test:
Automatic merge
ndb/docs/wl2077.txt:
merge
ndb/src/mgmsrv/main.cpp:
merge
scripts/mysql_fix_privilege_tables.sh:
merge
sql/item.cc:
Merge (difficult)
sql/item.h:
simple merge
sql/item_cmpfunc.h:
Automatic merge
sql/item_subselect.cc:
Simple merge
sql/item_subselect.h:
Automatic merge
sql/mysql_priv.h:
Simple merge
sql/slave.h:
Automatic merge
sql/sql_base.cc:
Removed code that was backported to 4.1
sql/sql_class.h:
Merge (some code moved to sql_insert.cc)
sql/sql_db.cc:
simple merge
sql/sql_insert.cc:
Merge (difficult as logic had changed both in 4.1 and 5.0)
Some coded moved here from sql_class.h
sql/sql_parse.cc:
Merge (difficult)
sql/sql_prepare.cc:
Simple merge
sql/sql_select.cc:
Automatic merge
sql/sql_table.cc:
Simple merge
sql/sql_update.cc:
Difficult merge because of different logic for multi-updates
sql/sql_yacc.yy:
Simple merge
tests/client_test.c:
Simple merge