Commit Graph

4050 Commits

Author SHA1 Message Date
Kristian Nielsen
2de8db6296 Merge MDEV-7936 into 10.1 2015-04-13 14:28:07 +02:00
Kristian Nielsen
60d094aeac MDEV-7936: Assertion `!table || table->in_use == _current_thd()' failed on parallel replication in optimistic mode
Make sure that in parallel replication, we execute wait_for_prior_commit()
before setting table->in_use for a temporary table. Otherwise we can end up
with two parallel replication worker threads competing with each other for
use of a temporary table.

Re-factor the use of find_temporary_table() to be able to handle errors
in the caller (as wait_for_prior_commit() can return error in case of
deadlock kill).
2015-04-13 14:24:18 +02:00
Oleksandr Byelkin
c8dbef22ad MDEV-6916 REPAIR VIEW / mysql migration
from: r4407
2015-04-12 20:41:28 +10:00
Sergei Petrunia
a445b83d73 Merge branch '10.1' of github.com:MariaDB/server into 10.1 2015-04-12 05:16:48 +03:00
Sergei Petrunia
4938b82263 MDEV-7836: ANALYZE FORMAT=JSON should provide info about GROUP/ORDER BY
Provide basic info about sorting/grouping done by the queries.
2015-04-12 04:48:42 +03:00
Alexander Barkov
135f203d28 A cleanup for the contributed patch for
MDEV-7816 ALTER with DROP INDEX and ADD INDEX .. COMMENT='comment2' ignores the new comment
2015-04-10 17:04:44 +04:00
Alexander Barkov
23e90e9a22 Merge branch 'MDEV-7816' of git://github.com/f4rnham/server into 10.1 2015-04-10 15:17:44 +04:00
Alexander Barkov
7f613ebdb6 MDEV-7284 INDEX: CREATE OR REPLACE 2015-04-03 15:43:55 +04:00
f4rnham
4feaa06c84 MDEV-7816 ALTER with DROP INDEX and ADD INDEX .. COMMENT='comment2' ignores the new comment
Consider two indexes different if their comments differ
2015-03-26 00:01:14 +01:00
Alexander Barkov
0c26c0032c A preparatory patch for MDEV-7284 INDEX: CREATE OR REPLACE.
Removing "bool Key::create_if_not_exists" and deriving Key from
DDL_options instead.
2015-03-20 13:51:41 +04:00
Venkatesh Duggirala
59142d9a27 Bug #20439913 CREATE TABLE DB.TABLE LIKE TMPTABLE IS
BINLOGGED INCORRECTLY - BREAKS A SLAVE

Submitted a incomplete patch with my previous push,
re submitting the extra changes the required to make
the patch complete.
2015-03-13 13:13:48 +05:30
Venkatesh Duggirala
151b8ec4d1 Bug #20439913 CREATE TABLE DB.TABLE LIKE TMPTABLE IS BINLOGGED INCORRECTLY - BREAKS A SLAVE
Analysis:
In row based replication, Master does not send temp table information
to Slave. If there are any DDLs that involves in regular table that needs
to be sent to Slave and a temp tables (which will not be available at Slave),
the Master rewrites the query replacing temp table with it's defintion.
Eg: create table regular_table like temptable.
In rewrite logic, server is ignoring the database of regular table
which can cause problems mentioned in this bug.

Fix: dont ignore database information (if available) while
rewriting the query
2015-03-13 12:32:44 +05:30
Jan Lindström
8249dcaaeb MDEV-6858: enforce_storage_engine option
Merge from Percona Server enforced use of a specific storage engine
authored by Stewart Smith.

Modified to be session variable and modifiable only by SUPER. Use
similar implementation as default_storage_engine.
2015-03-12 12:17:14 +02:00
Oleksandr Byelkin
80f03abcca MDEV-7671: Cache VIEW definitions in the TDC
(changes of backported patch are very small: strlen removed, error processing fixed, view open statistics added)
2015-03-11 17:39:15 +01:00
Sergei Golubchik
bfe703a458 don't let current_thd to point to a destroyed THD
* reset current_thd in THD::~THD, otherwise my_malloc_size_cb_func()
  might access THD after it was destroyed.
* remove now redundant set_current_thd(0) calls that follow delete thd.
2015-02-03 18:19:56 +01:00
Sergei Golubchik
80ce0c1c9c cleanup: ha_checktype()
* error reporting was never needed
* avoid useless transformaton hton to db_type to hton
* in many cases the engine was guaranteed to exist, add asserts
* use ha_default_handlerton() instead of ha_checktype(DB_TYPE_DEFAULT)
2015-02-02 20:57:46 +01:00
Sergei Golubchik
4b21cd21fe Merge branch '10.0' into merge-wip 2015-01-31 21:48:47 +01:00
Arun Kuruvila
08526dfb01 Bug #12671631 CREATE TABLE .. LIKE .. FEDERATED TABLE
CRASHES WITH AUTO_INCREMENT COLUMN

Description:- Creating a federated table with AUTO_INCREMENT
column using LIKE clause results in a server crash.

Analysis:- Creating a federated table with AUTO_INCREMENT
column using LIKE clause results in a federated server
crash due to the uninitialized connection structure(mysql).
Also due to unassigned connection string for the remote
server, at the time of preparation of "create_info"
structure, the creation of any federated table using LIKE
clause fails with an error, "ERROR 1 (HY000): server name:
'' doesn't exist!". This  bug is not only with
AUTO_INCREMENT but in all creations of federated tables with
LIKE clause.

Fix :- In ha_federated::info(), "mysql->insert_id" assigned
to "stats.auto_increment_value" only when there is an
active connection. This fixes the crash issue. For creating
the federated table with LIKE clause, connection string is
assigned at the time of preparation of "create_info"
structure.
2015-01-28 09:43:34 +05:30
Nirbhay Choubey
7cda4bee0e maria-10.0.16 merge
bzr merge -r4588 maria/10.0
2015-01-26 22:54:27 -05:00
Sergei Golubchik
d9c01e4b4a 5.5 merge 2015-01-21 12:03:02 +01:00
Sergei Golubchik
5900333aa5 MDEV-7404 REPAIR multiple tables crash in MDL_ticket::has_stronger_or_equal_type
mysql_alter_table() that is used in mysql_recreate_table() doesn't expect
many tables in the TABLE_LIST.
2015-01-14 12:10:13 +01:00
Sergei Golubchik
a978bdda1e mysql-5.5.41 merge 2014-12-19 11:35:44 +01:00
Alexander Barkov
0b936cda07 Using Schema_specification_st instead of HA_CREATE_INFO in a few places
where the former is enough.
2014-12-10 16:46:21 +04:00
Alexander Barkov
c6d3f8058d MDEV-7112 Split HA_CREATE_INFO 2014-12-08 10:56:08 +04:00
Nirbhay Choubey
3bb02f3e6d bzr merge -rtag:mariadb-10.0.15 maria/10.0 2014-12-05 12:33:02 -05:00
Sergei Golubchik
227510e039 parser cleanup: don't store field properties in LEX, use Create_field directly
length/dec/charset are still in LEX, because they're also used
for CAST and dynamic columns.

also
1. fix "MDEV-7041 COLLATION(CAST('a' AS CHAR BINARY)) returns a wrong result"
2. allow BINARY modifier in stored function RETURN clause
3. allow "COLLATION without CHARSET" in SP/SF (parameters, RETURN, DECLARE)
4. print correct variable name in error messages for stored routine parameters
2014-12-04 16:09:34 +01:00
Sergei Golubchik
853077ad7e Merge branch '10.0' into bb-10.1-merge
Conflicts:
	.bzrignore
	VERSION
	cmake/plugin.cmake
	debian/dist/Debian/control
	debian/dist/Ubuntu/control
	mysql-test/r/join_outer.result
	mysql-test/r/join_outer_jcl6.result
	mysql-test/r/null.result
	mysql-test/r/old-mode.result
	mysql-test/r/union.result
	mysql-test/t/join_outer.test
	mysql-test/t/null.test
	mysql-test/t/old-mode.test
	mysql-test/t/union.test
	packaging/rpm-oel/mysql.spec.in
	scripts/mysql_config.sh
	sql/ha_ndbcluster.cc
	sql/ha_ndbcluster_binlog.cc
	sql/ha_ndbcluster_cond.cc
	sql/item_cmpfunc.h
	sql/lock.cc
	sql/sql_select.cc
	sql/sql_show.cc
	sql/sql_update.cc
	sql/sql_yacc.yy
	storage/innobase/buf/buf0flu.cc
	storage/innobase/fil/fil0fil.cc
	storage/innobase/include/srv0srv.h
	storage/innobase/lock/lock0lock.cc
	storage/tokudb/CMakeLists.txt
	storage/xtradb/buf/buf0flu.cc
	storage/xtradb/fil/fil0fil.cc
	storage/xtradb/include/srv0srv.h
	storage/xtradb/lock/lock0lock.cc
	support-files/mysql.spec.sh
2014-12-02 22:25:16 +01:00
Sergei Golubchik
303eec5774 MDEV-6880 Can't define CURRENT_TIMESTAMP as default value for added column
ALTER TABLE: don't fill default values per row, do it once.
And do it in two places - for copy_data_between_tables() and for online ALTER.

Also, run function_defaults test both for MyISAM and for InnoDB.
2014-11-18 22:25:33 +01:00
Sergei Golubchik
2160646c1d 5.5 merge 2014-11-03 17:47:37 +01:00
unknown
ee309b10b8 Cleanup. 2014-10-31 14:07:29 +01:00
Sergei Golubchik
f62c12b405 Merge 10.0.14 into 10.1 2014-10-15 12:59:13 +02:00
Sergei Golubchik
7f5e51b940 MDEV-34 delete storage/ndb and sql/*ndb* (and collateral changes)
remove:
* NDB from everywhere
* IM from mtr-v1
* packaging/rpm-oel and packaging/rpm-uln
* few unused spec files
* plug.in file
* .bzrignore
2014-10-11 18:53:06 +02:00
Sergei Golubchik
3620910eea cleanup: galera merge, simple changes 2014-10-01 23:38:27 +02:00
Michael Widenius
70823e1d91 MDEV-5120 Test suite test maria-no-logging fails
The reason for the failure was a bug in an include file on debian that causes 'struct stat'
to have different sized depending on the environment.

This patch fixes so that we always include my_global.h or my_config.h before we include any other files.

Other things:
- Removed #include <my_global.h> in some include files; Better to always do this at the top level to have as few
  "always-include-this-file-first' files as possible.
- Removed usage of some include files that where already included by my_global.h or by other files.


client/mysql_plugin.c:
  Use my_global.h first
client/mysqlslap.c:
  Remove duplicated include files
extra/comp_err.c:
  Remove duplicated include files
include/m_string.h:
  Remove duplicated include files
include/maria.h:
  Remove duplicated include files
libmysqld/emb_qcache.cc:
  Use my_global.h first
plugin/semisync/semisync.h:
  Use my_pthread.h first
sql/datadict.cc:
  Use my_global.h first
sql/debug_sync.cc:
  Use my_global.h first
sql/derror.cc:
  Use my_global.h first
sql/des_key_file.cc:
  Use my_global.h first
sql/discover.cc:
  Use my_global.h first
sql/event_data_objects.cc:
  Use my_global.h first
sql/event_db_repository.cc:
  Use my_global.h first
sql/event_parse_data.cc:
  Use my_global.h first
sql/event_queue.cc:
  Use my_global.h first
sql/event_scheduler.cc:
  Use my_global.h first
sql/events.cc:
  Use my_global.h first
sql/field.cc:
  Use my_global.h first
  Remove duplicated include files
sql/field_conv.cc:
  Use my_global.h first
sql/filesort.cc:
  Use my_global.h first
  Remove duplicated include files
sql/gstream.cc:
  Use my_global.h first
sql/ha_ndbcluster.cc:
  Use my_global.h first
sql/ha_ndbcluster_binlog.cc:
  Use my_global.h first
sql/ha_ndbcluster_cond.cc:
  Use my_global.h first
sql/ha_partition.cc:
  Use my_global.h first
sql/handler.cc:
  Use my_global.h first
sql/hash_filo.cc:
  Use my_global.h first
sql/hostname.cc:
  Use my_global.h first
sql/init.cc:
  Use my_global.h first
sql/item.cc:
  Use my_global.h first
sql/item_buff.cc:
  Use my_global.h first
sql/item_cmpfunc.cc:
  Use my_global.h first
sql/item_create.cc:
  Use my_global.h first
sql/item_geofunc.cc:
  Use my_global.h first
sql/item_inetfunc.cc:
  Use my_global.h first
sql/item_row.cc:
  Use my_global.h first
sql/item_strfunc.cc:
  Use my_global.h first
sql/item_subselect.cc:
  Use my_global.h first
sql/item_sum.cc:
  Use my_global.h first
sql/item_timefunc.cc:
  Use my_global.h first
sql/item_xmlfunc.cc:
  Use my_global.h first
sql/key.cc:
  Use my_global.h first
sql/lock.cc:
  Use my_global.h first
sql/log.cc:
  Use my_global.h first
sql/log_event.cc:
  Use my_global.h first
sql/log_event_old.cc:
  Use my_global.h first
sql/mf_iocache.cc:
  Use my_global.h first
sql/mysql_install_db.cc:
  Remove duplicated include files
sql/mysqld.cc:
  Remove duplicated include files
sql/net_serv.cc:
  Remove duplicated include files
sql/opt_range.cc:
  Use my_global.h first
sql/opt_subselect.cc:
  Use my_global.h first
sql/opt_sum.cc:
  Use my_global.h first
sql/parse_file.cc:
  Use my_global.h first
sql/partition_info.cc:
  Use my_global.h first
sql/procedure.cc:
  Use my_global.h first
sql/protocol.cc:
  Use my_global.h first
sql/records.cc:
  Use my_global.h first
sql/records.h:
  Don't include my_global.h
  Better to do this at the upper level
sql/repl_failsafe.cc:
  Use my_global.h first
sql/rpl_filter.cc:
  Use my_global.h first
sql/rpl_gtid.cc:
  Use my_global.h first
sql/rpl_handler.cc:
  Use my_global.h first
sql/rpl_injector.cc:
  Use my_global.h first
sql/rpl_record.cc:
  Use my_global.h first
sql/rpl_record_old.cc:
  Use my_global.h first
sql/rpl_reporting.cc:
  Use my_global.h first
sql/rpl_rli.cc:
  Use my_global.h first
sql/rpl_tblmap.cc:
  Use my_global.h first
sql/rpl_utility.cc:
  Use my_global.h first
sql/set_var.cc:
  Added comment
sql/slave.cc:
  Use my_global.h first
sql/sp.cc:
  Use my_global.h first
sql/sp_cache.cc:
  Use my_global.h first
sql/sp_head.cc:
  Use my_global.h first
sql/sp_pcontext.cc:
  Use my_global.h first
sql/sp_rcontext.cc:
  Use my_global.h first
sql/spatial.cc:
  Use my_global.h first
sql/sql_acl.cc:
  Use my_global.h first
sql/sql_admin.cc:
  Use my_global.h first
sql/sql_analyse.cc:
  Use my_global.h first
sql/sql_audit.cc:
  Use my_global.h first
sql/sql_base.cc:
  Use my_global.h first
sql/sql_binlog.cc:
  Use my_global.h first
sql/sql_bootstrap.cc:
  Use my_global.h first
  Use my_global.h first
sql/sql_cache.cc:
  Use my_global.h first
sql/sql_class.cc:
  Use my_global.h first
sql/sql_client.cc:
  Use my_global.h first
sql/sql_connect.cc:
  Use my_global.h first
sql/sql_crypt.cc:
  Use my_global.h first
sql/sql_cursor.cc:
  Use my_global.h first
sql/sql_db.cc:
  Use my_global.h first
sql/sql_delete.cc:
  Use my_global.h first
sql/sql_derived.cc:
  Use my_global.h first
sql/sql_do.cc:
  Use my_global.h first
sql/sql_error.cc:
  Use my_global.h first
sql/sql_explain.cc:
  Use my_global.h first
sql/sql_expression_cache.cc:
  Use my_global.h first
sql/sql_handler.cc:
  Use my_global.h first
sql/sql_help.cc:
  Use my_global.h first
sql/sql_insert.cc:
  Use my_global.h first
sql/sql_lex.cc:
  Use my_global.h first
sql/sql_load.cc:
  Use my_global.h first
sql/sql_locale.cc:
  Use my_global.h first
sql/sql_manager.cc:
  Use my_global.h first
sql/sql_parse.cc:
  Use my_global.h first
sql/sql_partition.cc:
  Use my_global.h first
sql/sql_plugin.cc:
  Added comment
sql/sql_prepare.cc:
  Use my_global.h first
sql/sql_priv.h:
  Added error if we use this before including my_global.h
  This check is here becasue so many files includes sql_priv.h first.
sql/sql_profile.cc:
  Use my_global.h first
sql/sql_reload.cc:
  Use my_global.h first
sql/sql_rename.cc:
  Use my_global.h first
sql/sql_repl.cc:
  Use my_global.h first
sql/sql_select.cc:
  Use my_global.h first
sql/sql_servers.cc:
  Use my_global.h first
sql/sql_show.cc:
  Added comment
sql/sql_signal.cc:
  Use my_global.h first
sql/sql_statistics.cc:
  Use my_global.h first
sql/sql_table.cc:
  Use my_global.h first
sql/sql_tablespace.cc:
  Use my_global.h first
sql/sql_test.cc:
  Use my_global.h first
sql/sql_time.cc:
  Use my_global.h first
sql/sql_trigger.cc:
  Use my_global.h first
sql/sql_udf.cc:
  Use my_global.h first
sql/sql_union.cc:
  Use my_global.h first
sql/sql_update.cc:
  Use my_global.h first
sql/sql_view.cc:
  Use my_global.h first
sql/sys_vars.cc:
  Added comment
sql/table.cc:
  Use my_global.h first
sql/thr_malloc.cc:
  Use my_global.h first
sql/transaction.cc:
  Use my_global.h first
sql/uniques.cc:
  Use my_global.h first
sql/unireg.cc:
  Use my_global.h first
sql/unireg.h:
  Removed inclusion of my_global.h
storage/archive/ha_archive.cc:
  Added comment
storage/blackhole/ha_blackhole.cc:
  Use my_global.h first
storage/csv/ha_tina.cc:
  Use my_global.h first
storage/csv/transparent_file.cc:
  Use my_global.h first
storage/federated/ha_federated.cc:
  Use my_global.h first
storage/federatedx/federatedx_io.cc:
  Use my_global.h first
storage/federatedx/federatedx_io_mysql.cc:
  Use my_global.h first
storage/federatedx/federatedx_io_null.cc:
  Use my_global.h first
storage/federatedx/federatedx_txn.cc:
  Use my_global.h first
storage/heap/ha_heap.cc:
  Use my_global.h first
storage/innobase/handler/handler0alter.cc:
  Use my_global.h first
storage/maria/ha_maria.cc:
  Use my_global.h first
storage/maria/unittest/ma_maria_log_cleanup.c:
  Remove duplicated include files
storage/maria/unittest/test_file.c:
  Added comment
storage/myisam/ha_myisam.cc:
  Move sql_plugin.h first as this includes my_global.h
storage/myisammrg/ha_myisammrg.cc:
  Use my_global.h first
storage/oqgraph/oqgraph_thunk.cc:
  Use my_config.h and my_global.h first
  One could not include my_global.h before oqgraph_thunk.h (don't know why)
storage/spider/ha_spider.cc:
  Use my_global.h first
storage/spider/hs_client/config.cpp:
  Use my_global.h first
storage/spider/hs_client/escape.cpp:
  Use my_global.h first
storage/spider/hs_client/fatal.cpp:
  Use my_global.h first
storage/spider/hs_client/hstcpcli.cpp:
  Use my_global.h first
storage/spider/hs_client/socket.cpp:
  Use my_global.h first
storage/spider/hs_client/string_util.cpp:
  Use my_global.h first
storage/spider/spd_conn.cc:
  Use my_global.h first
storage/spider/spd_copy_tables.cc:
  Use my_global.h first
storage/spider/spd_db_conn.cc:
  Use my_global.h first
storage/spider/spd_db_handlersocket.cc:
  Use my_global.h first
storage/spider/spd_db_mysql.cc:
  Use my_global.h first
storage/spider/spd_db_oracle.cc:
  Use my_global.h first
storage/spider/spd_direct_sql.cc:
  Use my_global.h first
storage/spider/spd_i_s.cc:
  Use my_global.h first
storage/spider/spd_malloc.cc:
  Use my_global.h first
storage/spider/spd_param.cc:
  Use my_global.h first
storage/spider/spd_ping_table.cc:
  Use my_global.h first
storage/spider/spd_sys_table.cc:
  Use my_global.h first
storage/spider/spd_table.cc:
  Use my_global.h first
storage/spider/spd_trx.cc:
  Use my_global.h first
storage/xtradb/handler/handler0alter.cc:
  Use my_global.h first
storage/xtradb/handler/i_s.cc:
  Use my_global.h first
2014-09-30 20:31:14 +03:00
Nirbhay Choubey
c916085e27 bzr merge -rtag:mariadb-10.0.14 maria/10.0/ 2014-09-28 20:43:56 -04:00
Michael Widenius
c6051a4beb Automatic merge 2014-09-11 23:50:31 +03:00
Sergei Golubchik
b2c54a9a69 MDEV-6523 CONNECT temporary table created
check_engine() was not called for assisted discovery
2014-09-10 13:22:20 +02:00
Praveenkumar Hulakund
0b28d7e048 Bug#18790730 - CROSS-DATABASE FOREIGN KEY WITHOUT PERMISSIONS
CHECK.

Analysis:
----------
Issue here is, while creating or altering the InnoDB table,
if the foreign key defined on the table references a parent
table on which the user has no access privileges then the
table is created without reporting any error. 

Currently the privilege level REFERENCES_ACL is unused
and is not used for access evaluation while creating the
table with a foreign key constraint or adding the foreign
key constraint to a table. But when no privileges are granted
to user then also access evaluation on parent table is ignored.

Fix:
---------
For DMLs, irrelevant of the fact, support does not want any
changes to avoid permission checks on every operation.

So, as a fix, added a function "check_fk_parent_table_access" 
to check whether any of the SELECT_ACL, INSERT_ACL, UDPATE_ACL,
DELETE_ACL or REFERENCE_ACL privileges are granted for user
at table level. If none of them is granted then error is reported.
This function is called during the table creation and alter 
operation.
2014-09-10 10:50:17 +05:30
Praveenkumar Hulakund
cf4231a7f9 Bug#18790730 - CROSS-DATABASE FOREIGN KEY WITHOUT PERMISSIONS
CHECK.

Analysis:
----------
Issue here is, while creating or altering the InnoDB table,
if the foreign key defined on the table references a parent
table on which the user has no access privileges then the
table is created without reporting any error. 

Currently the privilege level REFERENCES_ACL is unused
and is not used for access evaluation while creating the
table with a foreign key constraint or adding the foreign
key constraint to a table. But when no privileges are granted
to user then also access evaluation on parent table is ignored.

Fix:
---------
For DMLs, irrelevant of the fact, support does not want any
changes to avoid permission checks on every operation.

So, as a fix, added a function "check_fk_parent_table_access" 
to check whether any of the SELECT_ACL, INSERT_ACL, UDPATE_ACL,
DELETE_ACL or REFERENCE_ACL privileges are granted for user
at table level. If none of them is granted then error is reported.
This function is called during the table creation and alter 
operation.
2014-09-10 10:50:17 +05:30
Michael Widenius
9c79227c96 Fixed two bugs with CREATE OR REPLACE and LOCK TABLES:
MDEV-6560 Assertion `! is_set() ' failed in Diagnostics_area::set_ok_status on killing CREATE OR REPLACE
MDEV-6525 Assertion `table->pos_in_locked _tables == __null || table->pos_in_locked_tables->table = table' failed in mark_used_tables_as_free_for_reuse, locking problems and binlogging problems on CREATE OR REPLACE under lock.
 

mysql-test/r/create_or_replace.result:
  Added test for MDEV-6560
mysql-test/t/create_or_replace.test:
  Added test for MDEV-6560
mysql-test/valgrind.supp:
  Added suppression for OpenSuse 12.3
sql/sql_base.cc:
  More DBUG
sql/sql_class.cc:
  Changed that thd_sqlcom_can_generate_row_events() does not report that CREATE OR REPLACE is generating row events.
  This is safe as this function is only used by InnoDB/XtraDB to check if a query is generating row events as part of another transaction. As CREATE is always run as it's own transaction, this isn't a problem.
  This fixed MDEV-6525.
sql/sql_table.cc:
  Remember if reopen_tables() generates an error (which can only happen in case of KILL).
  This fixed MDEV-6560
2014-09-08 20:56:56 +03:00
Jan Lindström
df4dd593f2 MDEV-6247: Merge 10.0-galera to 10.1.
Merged lp:maria/maria-10.0-galera up to revision 3879.

Added a new functions to handler API to forcefully abort_transaction,
producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These
were added for future possiblity to add more storage engines that
could use galera replication.
2014-08-26 15:43:46 +03:00
Nirbhay Choubey
8358dd53b7 bzr merge -r4346 maria/10.0 (maria-10.0.13) 2014-08-11 23:55:41 -04:00
Sergei Golubchik
6fb17a0601 5.5.39 merge 2014-08-07 18:06:56 +02:00
Sergei Golubchik
1c6ad62a26 mysql-5.5.39 merge
~40% bugfixed(*) applied
~40$ bugfixed reverted (incorrect or we're not buggy)
~20% bugfixed applied, despite us being not buggy
(*) only changes in the server code, e.g. not cmakefiles
2014-08-02 21:26:16 +02:00
Michael Widenius
14d00cd7f6 Fixed MDEV-6451: "Error 'Table 't1' already exists' on query" with slave_ddl_exec_mode=IDEMPOTENT
There was a race condition in lock_table_names() which didn't properly test for CREATE OR REPLACE for slaves.


sql/sql_parse.cc:
  Copy create_info flags to thd for lock_table_names()
sql/sql_table.cc:
  Copy create_info flags to thd for lock_table_names()
2014-07-30 22:01:10 +03:00
Sergei Golubchik
5045615cd9 small cleanup of the SHOW CREATE TABLE code 2014-07-08 19:39:06 +02:00
Raghav Kapoor
cdf72d51c6 BUG#17665767 - FAILING ASSERTION: PRIMARY_KEY_NO == -1 || PRIMARY_KEY_NO == 0
BACKGROUND:
This bug is a followup on Bug#16368875.
The assertion failure happens because in SQL layer the key
does not get promoted to PRIMARY KEY but InnoDB takes it
as PRIMARY KEY.

ANALYSIS:
Here we are trying to create an index on POINT (GEOMETRY)
data type which is a type of BLOB (since GEOMETRY is a
subclass of BLOB).
In general, we can't create an index over GEOMETRY family
type field unless we specify the length of the
keypart (similar to BLOB fields).
Only exception is the POINT field type. The POINT column
max size is 25. The problem is that the field is not treated
as PRIMARY KEY when we create a index on POINT column using
its max column size as key part prefix. The fix would allow
index on POINT column to be treated as PRIMARY KEY.

FIX:
Patch for Bug#16368875 is extended to take into account
GEOMETRY datatype, POINT in particular to consider it
as PRIMARY KEY in SQL layer.
2014-06-25 18:06:28 +05:30
Raghav Kapoor
f499292522 BUG#17665767 - FAILING ASSERTION: PRIMARY_KEY_NO == -1 || PRIMARY_KEY_NO == 0
BACKGROUND:
This bug is a followup on Bug#16368875.
The assertion failure happens because in SQL layer the key
does not get promoted to PRIMARY KEY but InnoDB takes it
as PRIMARY KEY.

ANALYSIS:
Here we are trying to create an index on POINT (GEOMETRY)
data type which is a type of BLOB (since GEOMETRY is a
subclass of BLOB).
In general, we can't create an index over GEOMETRY family
type field unless we specify the length of the
keypart (similar to BLOB fields).
Only exception is the POINT field type. The POINT column
max size is 25. The problem is that the field is not treated
as PRIMARY KEY when we create a index on POINT column using
its max column size as key part prefix. The fix would allow
index on POINT column to be treated as PRIMARY KEY.

FIX:
Patch for Bug#16368875 is extended to take into account
GEOMETRY datatype, POINT in particular to consider it
as PRIMARY KEY in SQL layer.
2014-06-25 18:06:28 +05:30
Gopal Shankar
119984db0c Bug#18776592 INNODB: FAILING ASSERTION: PRIMARY_KEY_NO == -1 ||
PRIMARY_KEY_NO == 0 

This bug is a backport of the following revision of 5.6 source tree:
# committer: Gopal Shankar <gopal.shankar@oracle.com>
# branch nick: priKey56
# timestamp: Wed 2013-05-29 11:11:46 +0530
# message:
#   Bug#16368875 INNODB: FAILING ASSERTION:
2014-06-25 09:50:17 +05:30
Gopal Shankar
e107c24f1c Bug#18776592 INNODB: FAILING ASSERTION: PRIMARY_KEY_NO == -1 ||
PRIMARY_KEY_NO == 0 

This bug is a backport of the following revision of 5.6 source tree:
# committer: Gopal Shankar <gopal.shankar@oracle.com>
# branch nick: priKey56
# timestamp: Wed 2013-05-29 11:11:46 +0530
# message:
#   Bug#16368875 INNODB: FAILING ASSERTION:
2014-06-25 09:50:17 +05:30
Sergei Golubchik
ce6a63ec41 MDEV-4260 Don't create frm files for temporary tables
* Don't write frm for tmp tables
* pass frm image down to open_table_uncached, when possible
* don't use truncate-by-recreate for temp tables - cannot recreate
  without frm, and delete_all_rows is faster anyway
2014-06-20 15:47:44 +02:00
Sergei Golubchik
cc5b3998b6 remove HTON_FLUSH_AFTER_RENAME (BDB-ism, unused for years) 2014-06-20 11:34:50 +02:00
Nirbhay Choubey
a76a6601ec bzr merge -rtag:mariadb-10.0.12 maria/10.0 2014-06-19 13:12:38 -04:00
Sergei Golubchik
cf1a09e42f MDEV-6107 merge default_tmp_storage_engine
Adapt default_tmp_storage_engine implementation from mysql-5.6
New feature (as compared to 5.6), default_tmp_storage_engine=NULL
means that temporary tables will use default_storage_engine value.
This makes the behavior backward compatible.
2014-06-15 18:42:31 +02:00
Alexey Botchkov
6b84ecdc37 MDEV-4440 IF NOT EXISTS in multi-action ALTER does not work when the problem is created by a previous part of the ALTER.
Loops added to the handle_if_exists_option() to check the
        CREATE/DROP lists for duplicates.
2014-06-10 17:02:46 +05:00
Nirbhay Choubey
086af8367e bzr merge -r4209 maria/10.0. 2014-05-21 11:09:55 -04:00
Sergei Golubchik
914a2b38bf merge of "BUG# 13975227: ONLINE OPTIMIZE TABLE FOR INNODB TABLES"
revno: 5820
committer: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
branch nick: mysql-5.6-13975225
timestamp: Mon 2014-02-17 15:12:16 +0530
message:
  BUG# 13975227: ONLINE OPTIMIZE TABLE FOR INNODB TABLES
2014-05-07 22:36:25 +02:00
Sergei Golubchik
a03997db43 MDEV-6085 ALTER TABLE looses the connection string 2014-05-01 18:27:52 +02:00
Nirbhay Choubey
4213263101 Merging mariadb-10.0.10.
* bzr merge -rtag:mariadb-10.0.10 maria/10.0.
2014-04-08 10:36:34 -04:00
Michael Widenius
10ae6e35d0 Fixed that the we don't change CREATE to CREATE OR REPLACE, except if the slave removed an existing table as part of CREATE.
This will help the following replicaition scenario:
MariaDB 10.0 master (statement replication) -> MariaDB 10.0 slave (row based replication) -> MySQL or MariaDB 5.x slave


mysql-test/r/mysqld--help.result:
  Updated help text
mysql-test/suite/rpl/r/create_or_replace_mix.result:
  Added more tests
mysql-test/suite/rpl/r/create_or_replace_row.result:
  Added more tests
mysql-test/suite/rpl/r/create_or_replace_statement.result:
  Added more tests
mysql-test/suite/rpl/t/create_or_replace.inc:
  Added more tests
sql/handler.h:
  Added org_options so that we can detect what come from the query and what was possible added later.
sql/sql_insert.cc:
  Only write CREATE OR REPLACE if was originally specified or if we delete a conflicting table as part of create
sql/sql_parse.cc:
  Remember orginal create options
sql/sql_table.cc:
  Only write CREATE OR REPLACE if was originally specified or if we delete a conflicting table as part of create
sql/sys_vars.cc:
  Updated help text
2014-03-28 09:31:24 +02:00
Nirbhay Choubey
90e4f7f9d3 * bzr merge -rtag:mariadb-10.0.9 maria/10.0
* Fix for post-merge build failures.
2014-03-26 14:27:24 -04:00
Michael Widenius
9aac546872 MDEV-5930 Server crashes in thd_get_ha_data on CREATE OR REPLACE TABLE
mysql-test/r/create_or_replace.result:
  More tests for create or replace
mysql-test/t/create_or_replace.test:
  More tests for create or replace
sql/log.cc:
  Don't use binlog_hton if binlog is not enabmed
sql/sql_base.cc:
  We have to call restart_trans_for_tables also if tables where not locked with LOCK TABLES.
  If not, we will get a crash in TokuDB
sql/sql_insert.cc:
  Don't call binlog_reset_cache() if we don't have binary log open
sql/sql_table.cc:
  Don't log to binary log if not open
  Better test if we where using create or replace ... select
storage/tokudb/mysql-test/tokudb_mariadb/r/create_or_replace.result:
  More tests for create or replace
storage/tokudb/mysql-test/tokudb_mariadb/t/create_or_replace.test:
  More tests for create or replace
2014-03-23 18:39:10 +02:00
Michael Widenius
39e6083e35 MDEV-5818: MySQL WL#6145: Separate the dependence of DATA DIRECTORY from symbolic links
Copied relevant test cases and code from the MySQL 5.6 tree
Testing of my_use_symdir moved to engines.


mysql-test/r/partition_windows.result:
  Updated result file
mysql-test/suite/archive/archive_no_symlink-master.opt:
  Testing of symlinks with archive
mysql-test/suite/archive/archive_no_symlink.result:
  Testing of symlinks with archive
mysql-test/suite/archive/archive_no_symlink.test:
  Testing of symlinks with archive
mysql-test/suite/archive/archive_symlink.result:
  Testing of symlinks with archive
mysql-test/suite/archive/archive_symlink.test:
  Testing of symlinks with archive
sql/log_event.cc:
  Updated comment
sql/partition_info.cc:
  Don't test my_use_symdir here
sql/sql_parse.cc:
  Updated comment
sql/sql_table.cc:
  Don't test my_use_symdir here
sql/table.cc:
  Added more DBUG_PRINT
storage/archive/ha_archive.cc:
  Give warnings for index_file_name and if we can't use data directory
storage/myisam/ha_myisam.cc:
  Give warnings if we can't use data directory or index directory
2014-03-23 17:00:29 +02:00
Michael Widenius
b18a1b0e6c MDEV-5850: MySQL Bug#21317: SHOW CREATE DATABASE does not obey to lower_case_table_names
Bug #3329 Incomplete lower_case_table_names=2 implementation

The problem was that check_db_name() converted database names to lower case also in case of lower_case_table_names=2.

Fixed by removing the conversion in check_db_name for lower_case_table_names = 2 and instead converting db name to
lower case at same places as table names are converted.

Fixed bug that SHOW CREATE DATABASE FOO showed information for database 'foo'.

I also removed some checks of lower_case_table_names when it was enough to use table_alias_charset.


mysql-test/mysql-test-run.pl:
  Added --use-copy argument to force mysql-test-run to copy files instead of doing symlinks. This is needed when you run
  with test directory on another file system
mysql-test/r/lowercase_table.result:
  Updated results
mysql-test/r/lowercase_table2.result:
  Updated results
mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result:
  Updated results
mysql-test/suite/parts/r/partition_mgm_lc2_memory.result:
  Updated results
mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result:
  Updated results
mysql-test/t/lowercase_table.test:
  Added tests with mixed case databases
mysql-test/t/lowercase_table2.test:
  Added tests with mixed case databases
sql/log.cc:
  Don't check lower_case_table_names when we can use table_alias_charset
sql/sql_base.cc:
  Don't check lower_case_table_names when we can use table_alias_charset
sql/sql_db.cc:
  Use cmp_db_names() for checking if current database changed.
  mysql_rm_db() now converts db to lower case if lower_case_table_names was used.
  Changed database options cache to use table_alias_charset. This fixed a bug where SHOW CREATE DATABASE showed wrong information.
sql/sql_parse.cc:
  Change also db name to lower case when file names are changed.
  Don't need to story copy of database name anymore when lower_case_table_names == 2 as check_db_name() don't convert in this case.
  Updated arguments to mysqld_show_create_db().
  When adding table to TABLE_LIST also convert db name to lower case if needed (same way as we do with table names).
sql/sql_show.cc:
  mysqld_show_create_db() now also takes original name as argument for output to user.
sql/sql_show.h:
  Updated prototype for mysqld_show_create_db()
sql/sql_table.cc:
  In mysql_rename_table(), do same conversions to database name as we do for the file name
2014-03-23 15:43:57 +02:00
Sergei Golubchik
88ec8a08f3 MDEV-5909 MySQL BUG#11748924 PARTITIONS: TOO-LONG COMMENT CAUSES NO WARNING 2014-03-26 09:41:28 +01:00
Sergei Golubchik
11b498d6e0 build_frm_image(): don't try to guess the "real table name" from the
field list, it doesn't work if ALTER TABLE has replaced all fields.
Instead, pass the correct original table name down from the caller.
2014-03-26 09:41:16 +01:00
Michael Widenius
c4bb7cd6dc Fix for MDEV-5589: "Discrepancy in binlog on half-failed CREATE OR REPLACE"
Now if CREATE OR REPLACE fails but we have deleted a table already, we will generate a DROP TABLE in the binary log.
This fixes this issue.

In addition, for a failing CREATE OR REPLACE TABLE ... SELECT we don't generate a log of all the inserted rows, only the DROP TABLE.

I added code for not logging DROP TEMPORARY TABLE for tables where the CREATE TABLE was not logged. This code will be activated in 10.1
by removing the code protected by DONT_LOG_DROP_OF_TEMPORARY_TABLES.





mysql-test/suite/rpl/r/create_or_replace_mix.result:
  More test cases
mysql-test/suite/rpl/r/create_or_replace_row.result:
  More test cases
mysql-test/suite/rpl/r/create_or_replace_statement.result:
  More test cases
mysql-test/suite/rpl/t/create_or_replace.inc:
  More test cases
sql/log.cc:
  Added binlog_reset_cache() to clear the binary log.
sql/log.h:
  Added prototype
sql/sql_insert.cc:
  If CREATE OR REPLACE TABLE ... SELECT fails:
  - Don't log anything if nothing changed
  - If table was deleted, log a DROP TABLE.
  Remember if we table creation of temporary tables was logged.
sql/sql_table.cc:
  Added log_drop_table()
  Remember if we table creation of temporary tables was logged.
  If CREATE OR REPLACE TABLE ... SELECT fails and a table was deleted, log a DROP TABLE.
sql/sql_table.h:
  Added prototype
sql/sql_truncate.cc:
  Remember if we table creation of temporary tables was logged.
sql/table.h:
  Added table_creation_was_logged
2014-03-20 00:59:13 +02:00
Michael Widenius
913d1f199c MDEV-5854 Interrupted CREATE OR REPLACE is written into binlog, and in a wrong format
mysql-test/r/create_or_replace2.result:
  Added test case
mysql-test/t/create_or_replace.test:
  Fixed comment
mysql-test/t/create_or_replace2.test:
  Added test case
sql/sql_base.cc:
  Safety fix:
  Don't let threads with query_id=0 free temporary tables as this may free temporary tables not in use.
  This is mostly the case for the slave io threads, as most other threads has thd->query_id != 0.
sql/sql_table.cc:
  Added comment.
  Ignore kill when opening temporary table for CREATE ... LIKE.
  This fixed the original isue
2014-03-19 15:15:57 +02:00
Michael Widenius
f320b12ca5 MDEV-5619: CREATE OR REPLACE does not release MDL_EXCLUSIVE upon failure
mysql-test/r/create_or_replace.result:
  Added test of releasing of metadata locks
mysql-test/t/create_or_replace.test:
  Added test of releasing of metadata locks
sql/handler.h:
  Added marker if table was deleted as part of CREATE OR REPLACE
sql/sql_base.cc:
  Added Locked_tables_list::unlock_locked_table()
sql/sql_class.h:
  New prototypes
sql/sql_insert.cc:
  Unlock metadata locks for deleted table in case of error. Also do unlock tables if this was the only locked table.
sql/sql_table.cc:
  Unlock metadata locks for deleted table in case of error. Also do unlock tables if this was the only locked table.
2014-03-12 11:26:40 +02:00
Sergei Golubchik
eb9f422c43 MDEV-5667 online alter and changed field/index options
use the Alter_inplace_info::ALTER_COLUMN_OPTION flag if
field/column flags were altered.

change ha_example to use check_if_supported_inplace_alter() instead
of obsolete check_if_incompatible_data()
2014-03-02 15:02:13 +01:00
Sergei Golubchik
5f0c98c17b MDEV-5743 Server crashes in mysql_alter_table on an attempt to add a primary key to InnoDB table 2014-04-07 21:53:19 +02:00
Sergei Golubchik
8d0238a6d8 MDEV-4955 discover of table non-existance on CREATE
Fix ha_table_exists() to take discovery into account correctly.
It must be able to discover both table existence (when no frm is
found) and table non-existance (when frm was found).
2014-02-27 22:43:42 +01:00
Michael Widenius
6efa5efa7d Fixed that rpl_row_create_table can be run with --ps-protocol
As part of the fix we don't anymore generate a create table statement when doing a
CREATE TABLE IF NOT EXISTS table_that_exist LiKE temporary_table
if the 'table_that_exist' existed.

This is because it's not self evident if we should generate a create statement
matching the existing table or the temporary_table. 
The old code generated a table like the existing table in row based replication and like the temporary table
in statement based replication.
It's better to ensure that both cases works the same way.

mysql-test/suite/rpl/r/rpl_row_create_table.result:
  Updated results
  (Now we don't anymore CREATE TABLE IF NOT EXISTS LIKE if the table existed)
sql/sql_base.cc:
  More DBUG_PRINT
sql/sql_error.cc:
  More DBUG_PRINT
sql/sql_table.cc:
  Don't generate a create table statement when doing a
  CREATE TABLE IF NOT EXISTS table_that_exist like temporary_table if the table existed.
2014-02-22 03:11:56 +02:00
Sergey Vojtovich
d12c7adf71 MDEV-5314 - Compiling fails on OSX using clang
This is port of fix for MySQL BUG#17647863.

revno: 5572
revision-id: jon.hauglid@oracle.com-20131030232243-b0pw98oy72uka2sj
committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
timestamp: Thu 2013-10-31 00:22:43 +0100
message:
  Bug#17647863: MYSQL DOES NOT COMPILE ON OSX 10.9 GM

  Rename test() macro to MY_TEST() to avoid conflict with libc++.
2014-02-19 14:05:15 +04:00
Sergei Golubchik
1b3c15f199 merge with 10.0-monty 2014-02-06 16:38:40 +01:00
Sergei Golubchik
37b8691cec fix the fix and update test results for MDEV-4439 2014-02-06 16:27:23 +01:00
Alexey Botchkov
bf050b1db2 MDEV-4439 ALTER TABLE .. [ADD|DROP] FOREIGN KEY IF [NOT] EXISTS does not work if constraint name is not used.
Patches for server and the Innodb engine.
  Server is fixed so it does nothing if no indexes left to alter.
  Innodb parser is fixed so it looks for the IF [NOT] EXISTS option in a string.
  Another change is that it uses the index name for the internal dictionary.
  Prior to that it only used the CONSTRAINT name for it.
2014-02-06 16:27:05 +01:00
Michael Widenius
1695fc4532 MDEV-5602: CREATE OR REPLACE obtains stricter locks than the connection had before
mysql-test/r/create_or_replace.result:
  Added test case
mysql-test/t/create_or_replace.test:
  Added test case
sql/sql_base.cc:
  Downgrade locks in LOCK TABLES + CREATE TABLE OR REPLACE
sql/sql_table.cc:
  Downgrade locks in LOCK TABLES + CREATE TABLE OR REPLACE
2014-02-05 21:36:16 +02:00
Michael Widenius
5426facdcb Replication changes for CREATE OR REPLACE TABLE
- CREATE TABLE is by default executed on the slave as CREATE OR REPLACE
- DROP TABLE is by default executed on the slave as DROP TABLE IF NOT EXISTS

This means that a slave will by default continue even if we try to create
a table that existed on the slave (the table will be deleted and re-created) or
if we try to drop a table that didn't exist on the slave.
This should be safe as instead of having the slave stop because of an inconsistency between
master and slave, it will fix the inconsistency.
Those that would prefer to get a stopped slave instead for the above cases can set slave_ddl_exec_mode to STRICT. 

- Ensure that a CREATE OR REPLACE TABLE which dropped a table is replicated
- DROP TABLE that generated an error on master is handled as an identical DROP TABLE on the slave (IF NOT EXISTS is not added in this case)
- Added slave_ddl_exec_mode variable to decide how DDL's are replicated

New logic for handling BEGIN GTID ... COMMIT from the binary log:

- When we find a BEGIN GTID, we start a transaction and set OPTION_GTID_BEGIN
- When we find COMMIT, we reset OPTION_GTID_BEGIN and execute the normal COMMIT code.
- While OPTION_GTID_BEGIN is set:
  - We don't generate implict commits before or after statements
  - All tables are regarded as transactional tables in the binary log (to ensure things are executed exactly as on the master)
- We reset OPTION_GTID_BEGIN also on rollback

This will help ensuring that we don't get any sporadic commits (and thus new GTID's) on the slave and will help keep the GTID's between master and slave in sync.


mysql-test/extra/rpl_tests/rpl_log.test:
  Added testing of mode slave_ddl_exec_mode=STRICT
mysql-test/r/mysqld--help.result:
  New help messages
mysql-test/suite/rpl/r/create_or_replace_mix.result:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/r/create_or_replace_row.result:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/r/create_or_replace_statement.result:
  Testing replication of create or replace
mysql-test/suite/rpl/r/rpl_gtid_startpos.result:
  Test must be run in slave_ddl_exec_mode=STRICT as part of the test depends on that DROP TABLE should fail on slave.
mysql-test/suite/rpl/r/rpl_row_log.result:
  Updated result
mysql-test/suite/rpl/r/rpl_row_log_innodb.result:
  Updated result
mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result:
  Updated result
mysql-test/suite/rpl/r/rpl_stm_log.result:
  Updated result
mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result:
  Updated result
mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result:
  Updated result
mysql-test/suite/rpl/t/create_or_replace.inc:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/t/create_or_replace_mix.cnf:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/t/create_or_replace_mix.test:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/t/create_or_replace_row.cnf:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/t/create_or_replace_row.test:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/t/create_or_replace_statement.cnf:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/t/create_or_replace_statement.test:
  Testing of CREATE OR REPLACE TABLE with replication
mysql-test/suite/rpl/t/rpl_gtid_startpos.test:
  Test must be run in slave_ddl_exec_mode=STRICT as part of the test depends on that DROP TABLE should fail on slave.
mysql-test/suite/rpl/t/rpl_stm_log.test:
  Removed some lines
mysql-test/suite/sys_vars/r/slave_ddl_exec_mode_basic.result:
  Testing of slave_ddl_exec_mode
mysql-test/suite/sys_vars/t/slave_ddl_exec_mode_basic.test:
  Testing of slave_ddl_exec_mode
sql/handler.cc:
  Regard all tables as transactional in commit if OPTION_GTID_BEGIN is set.
  This is to ensure that statments are not commited too early if non transactional tables are used.
sql/log.cc:
  Regard all tables as transactional in commit if OPTION_GTID_BEGIN is set.
  Also treat 'direct' log events as transactional (to get them logged as they where on the master)
sql/log_event.cc:
  Ensure that the new error from DROP TABLE when trying to drop a view is treated same as the old one.
  Store error code that slave expects in THD.
  Set OPTION_GTID_BEGIN if we find a BEGIN.
  Reset OPTION_GTID_BEGIN if we find a COMMIT.
sql/mysqld.cc:
  Added slave_ddl_exec_mode_options
sql/mysqld.h:
  Added slave_ddl_exec_mode_options
sql/rpl_gtid.cc:
  Reset OPTION_GTID_BEGIN if we record a gtid (safety)
sql/sql_class.cc:
  Regard all tables as transactional in commit if OPTION_GTID_BEGIN is set.
sql/sql_class.h:
  Added to THD: log_current_statement and slave_expected_error
sql/sql_insert.cc:
  Ensure that CREATE OR REPLACE is logged if table was deleted.
  Don't do implicit commit for CREATE if we are under OPTION_GTID_BEGIN
sql/sql_parse.cc:
  Change CREATE TABLE -> CREATE OR REPLACE TABLE for slaves
  Change DROP TABLE -> DROP TABLE IF EXISTS for slaves
  CREATE TABLE doesn't force implicit commit in case of OPTION_GTID_BEGIN
  Don't do commits before or after any statement if OPTION_GTID_BEGIN was set.
sql/sql_priv.h:
  Added OPTION_GTID_BEGIN
sql/sql_show.cc:
  Enhanced store_create_info() to also be able to handle CREATE OR REPLACE
sql/sql_show.h:
  Updated prototype
sql/sql_table.cc:
  Ensure that CREATE OR REPLACE is logged if table was deleted.
sql/sys_vars.cc:
  Added slave_ddl_exec_mode
sql/transaction.cc:
  Added warning if we got a GTID under OPTION_GTID_BEGIN
2014-02-05 19:01:59 +02:00
Michael Widenius
43f6e118fe Fixes for CREATE_OR_REPLACE
- MDEV-5587 Server crashes in Locked_tables_list::restore_lock on CREATE OR REPLACE .. SELECT under LOCK
- MDEV-5586 Assertion `share->tdc.all_tables.is_empty() || remove_type != TDC_RT_REMOVE_ALL' fails in tdc_remove_table
- MDEV-5588 Strange error on CREATE OR REPLACE table over an existing view

mysql-test/r/create_or_replace.result:
  Added test cases
mysql-test/r/lowercase_view.result:
  New error message
mysql-test/r/merge.result:
  New error message
mysql-test/r/multi_update.result:
  New error message
mysql-test/r/subselect.result:
  New error message
mysql-test/r/subselect_exists_to_in.result:
  New error message
mysql-test/r/subselect_no_mat.result:
  New error message
mysql-test/r/subselect_no_opts.result:
  New error message
mysql-test/r/subselect_no_scache.result:
  New error message
mysql-test/r/subselect_no_semijoin.result:
  New error message
mysql-test/r/view.result:
  New error message
mysql-test/suite/funcs_1/r/myisam_views-big.result:
  New error message
mysql-test/t/create_or_replace.test:
  New tests
mysql-test/t/view.test:
  New error message
sql/share/errmsg-utf8.txt:
  Added new error message
sql/sql_base.cc:
  Updated error message
  Do an automatic UNLOCK TABLES if we don't have any locked tables (safety fix)
sql/sql_db.cc:
  Updated arguments
sql/sql_load.cc:
  New error message
sql/sql_parse.cc:
  Check that we are not using a table we are dropping and re-creating
sql/sql_table.cc:
  Added parameter to mysql_rm_table_no_locks() to not automaticly do UNLOCK TABLES
  Added better error message if trying to drop a view with DROP TABLE
  Don't try to create something we select from
sql/sql_table.h:
  Updated prototypes
2014-01-31 12:06:28 +02:00
Michael Widenius
7ffc9da093 Implementation of MDEV-5491: CREATE OR REPLACE TABLE
Using CREATE OR REPLACE TABLE is be identical to

DROP TABLE IF EXISTS table_name;
CREATE TABLE ...;

Except that:

* CREATE OR REPLACE is be atomic (now one can create the same table between drop and create).
* Temporary tables will not shadow the table name for the DROP as the CREATE TABLE tells us already if we are using a temporary table or not.
* If the table was locked with LOCK TABLES, the new table will be locked with the same lock after it's created.

Implementation details:
- We don't anymore open the to-be-created table during CREATE TABLE, which the original code did.
  - There is no need to open a table we are planning to create. It's enough to check if the table exists or not.
- Removed some of duplicated code for CREATE IF NOT EXISTS.
- Give an error when using CREATE OR REPLACE with IF NOT EXISTS (conflicting options).
- As a side effect of the code changes, we don't anymore have to internally re-prepare prepared statements with CREATE TABLE if the table exists.
- Made one code path for all testing if log table are in use.
- Better error message if one tries to create/drop/alter a log table in use
- Added back disabled rpl_row_create_table test as it now seams to work and includes a lot of interesting tests.
- Added HA_LEX_CREATE_REPLACE to mark if we are using CREATE OR REPLACE
- Aligned CREATE OR REPLACE parsing code in sql_yacc.yy for TABLE and VIEW
- Changed interface for drop_temporary_table() to make it more reusable
- Changed Locked_tables_list::init_locked_tables() to work on the table object instead of the table list object. Before this it used a mix of both, which was not good.
- Locked_tables_list::unlock_locked_tables(THD *thd) now requires a valid thd argument. Old usage of calling this with 0 i changed to instead call Locked_tables_list::reset()
- Added functions Locked_tables_list:restore_lock() and Locked_tables_list::add_back_last_deleted_lock() to be able to easily add back a locked table to the lock list.
- Added restart_trans_for_tables() to be able to restart a transaction.
- DROP_ACL is required if one uses CREATE TABLE OR REPLACE.
- Added drop of normal and temporary tables in create_table_imp() if CREATE OR REPLACE was used.
- Added reacquiring of table locks in mysql_create_table() and mysql_create_like_table()




mysql-test/include/commit.inc:
  With new code we get fewer status increments
mysql-test/r/commit_1innodb.result:
  With new code we get fewer status increments
mysql-test/r/create.result:
  Added testing of create or replace with timeout
mysql-test/r/create_or_replace.result:
  Basic testing of CREATE OR REPLACE TABLE
mysql-test/r/partition_exchange.result:
  New error message
mysql-test/r/ps_ddl.result:
  Fewer reprepares with new code
mysql-test/suite/archive/discover.result:
  Don't rediscover archive tables if the .frm file exists
  (Sergei will look at this if there is a better way...)
mysql-test/suite/archive/discover.test:
  Don't rediscover archive tables if the .frm file exists
  (Sergei will look at this if there is a better way...)
mysql-test/suite/funcs_1/r/innodb_views.result:
  New error message
mysql-test/suite/funcs_1/r/memory_views.result:
  New error message
mysql-test/suite/rpl/disabled.def:
  rpl_row_create_table should now be safe to use
mysql-test/suite/rpl/r/rpl_row_create_table.result:
  Updated results after adding back disabled test
mysql-test/suite/rpl/t/rpl_create_if_not_exists.test:
  Added comment
mysql-test/suite/rpl/t/rpl_row_create_table.test:
  Added CREATE OR REPLACE TABLE test
mysql-test/t/create.test:
  Added CREATE OR REPLACE TABLE test
mysql-test/t/create_or_replace-master.opt:
  Create logs
mysql-test/t/create_or_replace.test:
  Basic testing of CREATE OR REPLACE TABLE
mysql-test/t/partition_exchange.test:
  Error number changed as we are now using same code for all log table change issues
mysql-test/t/ps_ddl.test:
  Fewer reprepares with new code
sql/handler.h:
  Moved things around a bit in a structure to get better alignment.
  Added HA_LEX_CREATE_REPLACE to mark if we are using CREATE OR REPLACE
  Added 3 elements to end of HA_CREATE_INFO to be able to store state to add backs locks in case of LOCK TABLES.
sql/log.cc:
  Reimplemented check_if_log_table():
  - Simpler and faster usage
  - Can give error messages
  
  This gives us one code path for allmost all error messages if log tables are in use
sql/log.h:
  New interface for check_if_log_table()
sql/slave.cc:
  More logging
sql/sql_alter.cc:
  New interface for check_if_log_table()
sql/sql_base.cc:
  More documentation
  Changed interface for drop_temporary_table() to make it more reusable
  Changed Locked_tables_list::init_locked_tables() to work on the table object instead of the table list object. Before this it used a mix of both, which was not good.
  Locked_tables_list::unlock_locked_tables(THD *thd) now requires a valid thd argument.  Old usage of calling this with 0 i changed to instead call Locked_tables_list::reset()
  Added functions Locked_tables_list:restore_lock() and Locked_tables_list::add_back_last_deleted_lock() to be able to easily add back a locked table to the lock list.
  Check for command number instead of open_strategy of CREATE TABLE was used.
  Added restart_trans_for_tables() to be able to restart a transaction.  This was needed in "create or replace ... select" between the drop table and the select.
sql/sql_base.h:
  Added and updated function prototypes
sql/sql_class.h:
  Added new prototypes to Locked_tables_list class
  Added extra argument to select_create to avoid double call to eof() or send_error()
  - I needed this in some edge case where the table was not created against expections.
sql/sql_db.cc:
  New interface for check_if_log_table()
sql/sql_insert.cc:
  Remember position to lock information so that we can reaquire table lock for LOCK TABLES + CREATE OR REPLACE TABLE SELECT. Later add back the lock by calling restore_lock().
  Removed one not needed indentation level in create_table_from_items()
  Ensure we don't call send_eof() or abort_result_set() twice.
sql/sql_lex.h:
  Removed variable that I temporarly added in an earlier changeset
sql/sql_parse.cc:
  Removed old test code (marked with QQ)
  Ensure that we have open_strategy set as TABLE_LIST::OPEN_STUB in CREATE TABLE
  Removed some IF NOT EXISTS code as this is now handled in create_table_table_impl().
  Set OPTION_KEEP_LOGS later. This code had to be moved as the test for IF EXISTS has changed place.
  DROP_ACL is required if one uses CREATE TABLE OR REPLACE.
sql/sql_partition_admin.cc:
  New interface for check_if_log_table()
sql/sql_rename.cc:
  New interface for check_if_log_table()
sql/sql_table.cc:
  New interface for check_if_log_table()
  Moved some code in mysql_rm_table() under a common test.
  - Safe as temporary tables doesn't have statistics.
  - !is_temporary_table(table) test was moved out from drop_temporary_table() and merged with upper level code.
  - Added drop of normal and temporary tables in create_table_imp() if CREATE OR REPLACE was used.
  - Added reacquiring of table locks in mysql_create_table() and mysql_create_like_table()
  - In mysql_create_like_table(), restore table->open_strategy() if it was changed.
  - Re-test if table was a view after opening it.
sql/sql_table.h:
  New prototype for mysql_create_table_no_lock()
sql/sql_yacc.yy:
  Added syntax for CREATE OR REPLACE TABLE
  Reuse new code for CREATE OR REPLACE VIEW
sql/table.h:
  Added name for enum type
sql/table_cache.cc:
  More DBUG
2014-01-29 15:37:17 +02:00
Jan Lindström
d43afb8828 Merge MariaDB-10.0.7 revision 3961. 2014-01-25 11:02:49 +02:00
Sergei Golubchik
2ff76f6750 MDEV-5406 add index to an innodb table with a uniqueness violation crashes mysqld
After table->file->add_index() in mysql_alter_table() the table in the engine
has the intermediate temporary structure, it's neither the original nor the
final table structure (it'll be final after successful table->file->drop_index()
call). So, when add_index() fails with a unique key violation, we cannot simply
get the failed key number and easily map it to the key name and key structure via
table->key_info[key_no].

For now we'll create this "intermediate temporary structure", emulating InnoDB
internal rules.

This bug and the fix will go away in 10.0 that uses completely different online
alter table code.

mysql-test/t/alter_table_trans.test:
  mdev:5406
2014-01-23 11:04:59 +01:00
Sergei Golubchik
d28d3ba40d 10.0-base merge 2013-12-16 13:02:21 +01:00
Sergei Golubchik
ff485d2dc4 MDEV-5438 A view can mask a table that supports discovery 2013-12-13 14:26:10 +01:00
Seppo Jaakola
496e22cf3b merge with MariaDB 5.6 bzr merge lp:maria --rtag:mariadb-10.0.6
and a number of fixes to make this buildable. 
Run also few short multi-master high conflict rate tests, with no issues
2013-12-04 10:32:43 +02:00
Sergei Golubchik
1387e71531 MDEV-5281 Partitioning issue after upgrade from 10.0.3-1 to 10.0.5-1
merged from 5.6:
Bug#14521864: MYSQL 5.1 TO 5.5 BUGS PARTITIONING
Bug#16589511: MYSQL_UPGRADE FAILS TO WRITE OUT ENTIRE ALTER TABLE ... ALGORITHM= ... STATEMENT
Bug#16274455: CAN NOT ACESS PARTITIONED TABLES WHEN DOWNGRADED FROM 5.6.11 TO 5.6.10

plus minor changes from 5.6, mainly comments
2013-11-28 12:10:44 +01:00
Seppo Jaakola
b098b7a84c bzr merge -r3904..3928 lp:codership-mysql/5.5
This is now otherwise on level wsrep-25.9, but storage/innobase has not been fully merged
wsrep-5.5 is not good source for that, so we probably have to cherry pick innodb changes from wsrep-5.6
2013-11-27 00:18:44 +02:00
Sergei Golubchik
c6d30805db 5.5 merge 2013-11-23 00:50:54 +01:00
Sergei Golubchik
fa3f8a18b2 mysql-5.5.34 merge
(some patches reverted, test case added)
2013-11-19 13:16:25 +01:00
Alexander Barkov
383de0fd1f Merge 10.0-monty -> 10.0 2013-11-11 22:46:14 +04:00
Alexey Botchkov
06a91b18d7 MDEV-4436 CHANGE COLUMN IF EXISTS does not work and throws wrong warning.
Use sql_field->change parameter as the name of the field.
2013-11-11 19:45:55 +04:00
Alexey Botchkov
3cf7e283a6 MDEV-4435 Server crashes in my_strcasecmp_utf8 on ADD KEY IF NOT EXISTS with implicit name when the key exists.
Use field name as a key name if the key name wasn't specified.
2013-11-11 18:23:53 +04:00
Sergei Golubchik
5ffa6904d2 MDEV-4880 Attempt to create a table without columns produces ER_ILLEGAL_HA instead of ER_TABLE_MUST_HAVE_COLUMNS 2013-11-10 17:51:20 +01:00
Michael Widenius
192678e7bf MDEV-5241: Collation incompatibilities with MySQL-5.6
- Character set code & tests from Alexander Barkov
- Integration with ALTER TABLE, REPAIR and open_table from Monty

The problem was that MySQL 5.6 added some croatian and vitanamese character set collations that are incompatible with MariaDB.

The fix is to move the MariaDB conflicting collation numbers out of the region that MySQL is likely to use.
mysql_upgrade, REPAIR TABLE or ALTER TABLE will fix the collations.
If one tries to access and old incompatible table, one will get the error "Table upgrade required...."
After this patch, MariaDB supports all the MySQL character set collations and the old MariaDB croatian collations, which are closer to the latest standard than the MySQL versions.

New character sets:
ucs2_croatian_mysql561_uca_ci
utf8_croatian_mysql561_uca_ci
utf16_croatian_mysql561_uca_ci
utf32_croatian_mysql561_uca_ci
utf8mb4_croatian_mysql561_uca_ci

Other things:
- Fixed some compiler warnings
- mysql_upgrade prints information about repaired tables.
- Increased version number

VERSION:
  Increased VERSION number
client/mysqlcheck.c:
  Print repaired table name when using --verbose
include/m_ctype.h:
  Add new MariaDB collation regions that are not likely to conflict with MySQL
include/my_base.h:
  Added flag to detect if table was opened for ALTER TABLE
mysql-test/r/ctype_ldml.result:
  Updated result
mysql-test/r/ctype_uca.result:
  Updated result
mysql-test/r/ctype_upgrade.result:
  Updated result
mysql-test/r/ctype_utf16_uca.result:
  Updated result
mysql-test/r/ctype_utf32_uca.result:
  Updated result
mysql-test/r/ctype_utf8mb4_uca.result:
  Updated result
mysql-test/std_data/ctype_upgrade:
  Test files for testing upgrading of conflicting collations
mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result:
  New collations added
mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result:
  New collations added
mysql-test/suite/innodb/r/innodb_ctype_ldml.result:
  Updated test result
mysql-test/suite/innodb/t/innodb_ctype_ldml.test:
  Updated test result
mysql-test/suite/plugins/r/show_all_plugins.result:
  Updated version number
mysql-test/suite/roles/create_and_drop_role_invalid_user_table.result:
  Updated version number
mysql-test/t/ctype_ldml.test:
  Updated test
mysql-test/t/ctype_uca.test:
  Testing of new collations
mysql-test/t/ctype_upgrade.test:
  Testing of upgrading tables with old collations
  The test ensures that:
  - We will get an error if we try to open a table with old collations.
  - CHECK TABLE will detect that the table needs to be upgraded.
  - ALTER TABLE and REPAIR will fix the table.
  - mysql_upgrade works as expected
mysql-test/t/ctype_utf16_uca.test:
  Testing of new collations
mysql-test/t/ctype_utf32_uca.test:
  Testing of new collations
mysql-test/t/ctype_utf8mb4_uca.test:
  Testing of new collations
mysys/charset-def.c:
  Added new character sets
mysys/charset.c:
  Always give an error, if requested, if a character set didn't exist
sql/handler.cc:
  - Added upgrade_collation() to check if collation is compatible with old version
  - check_collation_compatibility() checks if we are using an old collation from MariaDB 5.5 or MySQL 5.6
  - ha_check_for_upgrade() returns HA_ADMIN_NEEDS_ALTER if we have an incompatible collation
sql/handler.h:
  Added new prototypes
sql/sql_table.cc:
  - Mark that tables are opened for ALTER TABLE
  - If table needs to be upgraded, ensure we are not using online alter table.
sql/table.cc:
  - If we are using an old incompatible collation, change to use the new one and mark table as incompatible.
  - Give an error if we try to open an incompatible table.
sql/table.h:
  Added error that table needs to be rebuild
storage/connect/ha_connect.cc:
  Fixed compiler warning
strings/ctype-uca.c:
  New character sets
2013-11-09 00:20:07 +02:00
Sergei Golubchik
0150dc6ed9 10.0-base merge 2013-11-04 21:47:54 +01:00
Sergei Golubchik
032a61fc0a restore the condition in filename_to_tablename()
(broken in the revid:sergii@pisem.net-20130615170931-bn2h8j30vu5bfp0t)
2013-11-04 13:40:20 +01:00
Seppo Jaakola
06a7eeb992 Merged revisions 3411..3417 from mariadb-galera-5.5 2013-10-07 00:18:26 +03:00
unknown
192bafe526 Check for duplicate index (port from mysql)
(pre fts)
2013-09-20 22:30:19 +03:00
Sergei Golubchik
20031c6273 Enable TokuDB online ALTER
sql/create_options.cc:
  an utility function to compare two filled-in engine_option structures
sql/sql_table.cc:
  * two keys are different if their option_struct's differ
    (for ALTER TABLE DROP key, ADD key)
  * engines doing inplace alter must see the new frm image
2013-09-25 19:42:22 +02:00
Sergei Golubchik
9af177042e 10.0-base merge.
Partitioning/InnoDB changes are *not* merged (they'll come from 5.6)
TokuDB does not compile (not updated to 10.0 SE API)
2013-09-21 10:14:42 +02:00
Sergei Golubchik
4ec2e9d7ed 5.5 merge and fixes for compiler/test errors 2013-09-18 13:07:31 +02:00
Sergei Golubchik
b838d081ad mysql-5.5.33 merge 2013-09-06 22:31:30 +02:00
Jan Lindström
0880db5640 Fix merge error 2013-09-04 09:54:40 +03:00
Jan Lindström
6e8bfb0b26 Fixed merge errors and XA prepare 2013-09-04 08:47:05 +03:00
Jan Lindström
ba3ff50ab2 Merge 10.0 to galera-10.0 2013-09-03 17:50:36 +03:00
Sergei Golubchik
214c43ba96 bugfix: storage engine might return a negative error code, but it shouldn't
be ignored on return
2013-08-26 21:14:34 +04:00
Dmitry Lenev
fc2c669297 Fix for bug#14188793 - "DEADLOCK CAUSED BY ALTER TABLE DOEN'T CLEAR
STATUS OF ROLLBACKED TRANSACTION" and bug #17054007 - "TRANSACTION
IS NOT FULLY ROLLED BACK IN CASE OF INNODB DEADLOCK".

The problem in the first bug report was that although deadlock involving
metadata locks was reported using the same error code and message as InnoDB
deadlock it didn't rollback transaction like the latter. This caused
confusion to users as in some cases after ER_LOCK_DEADLOCK transaction
could have been restarted immediately and in some cases rollback was
required.

The problem in the second bug report was that although InnoDB deadlock
caused transaction rollback in all storage engines it didn't cause release
of metadata locks. So concurrent DDL on the tables used in transaction was
blocked until implicit or explicit COMMIT or ROLLBACK was issued in the
connection which got InnoDB deadlock.

The former issue has stemmed from the fact that when support for detection
and reporting metadata locks deadlocks was added we erroneously assumed
that InnoDB doesn't rollback transaction on deadlock but only last statement
(while this is what happens on InnoDB lock timeout actually) and so didn't
implement rollback of transactions on MDL deadlocks.

The latter issue was caused by the fact that rollback of transaction due
to deadlock is carried out by setting THD::transaction_rollback_request
flag at the point where deadlock is detected and performing rollback
inside of trans_rollback_stmt() call when this flag is set. And
trans_rollback_stmt() is not aware of MDL locks, so no MDL locks are
released.

This patch solves these two problems in the following way:

- In case when MDL deadlock is detect transaction rollback is requested
  by setting THD::transaction_rollback_request flag.

- Code performing rollback of transaction if THD::transaction_rollback_request
  is moved out from trans_rollback_stmt(). Now we handle rollback request
  on the same level as we call trans_rollback_stmt() and release statement/
  transaction MDL locks.
2013-08-20 13:12:34 +04:00
Dmitry Lenev
b07ec61f85 Fix for bug#14188793 - "DEADLOCK CAUSED BY ALTER TABLE DOEN'T CLEAR
STATUS OF ROLLBACKED TRANSACTION" and bug #17054007 - "TRANSACTION
IS NOT FULLY ROLLED BACK IN CASE OF INNODB DEADLOCK".

The problem in the first bug report was that although deadlock involving
metadata locks was reported using the same error code and message as InnoDB
deadlock it didn't rollback transaction like the latter. This caused
confusion to users as in some cases after ER_LOCK_DEADLOCK transaction
could have been restarted immediately and in some cases rollback was
required.

The problem in the second bug report was that although InnoDB deadlock
caused transaction rollback in all storage engines it didn't cause release
of metadata locks. So concurrent DDL on the tables used in transaction was
blocked until implicit or explicit COMMIT or ROLLBACK was issued in the
connection which got InnoDB deadlock.

The former issue has stemmed from the fact that when support for detection
and reporting metadata locks deadlocks was added we erroneously assumed
that InnoDB doesn't rollback transaction on deadlock but only last statement
(while this is what happens on InnoDB lock timeout actually) and so didn't
implement rollback of transactions on MDL deadlocks.

The latter issue was caused by the fact that rollback of transaction due
to deadlock is carried out by setting THD::transaction_rollback_request
flag at the point where deadlock is detected and performing rollback
inside of trans_rollback_stmt() call when this flag is set. And
trans_rollback_stmt() is not aware of MDL locks, so no MDL locks are
released.

This patch solves these two problems in the following way:

- In case when MDL deadlock is detect transaction rollback is requested
  by setting THD::transaction_rollback_request flag.

- Code performing rollback of transaction if THD::transaction_rollback_request
  is moved out from trans_rollback_stmt(). Now we handle rollback request
  on the same level as we call trans_rollback_stmt() and release statement/
  transaction MDL locks.
2013-08-20 13:12:34 +04:00
Sergey Vojtovich
df3bedb82d MDEV-4864 - Merge tests for EXCHANGE PARTITION feature
Added partition_exchange test.

Do not set HA_OPTION_PACK_RECORD for InnoDB specific row formats
(e.g. COMPACT, REDUNDANT). Adjusted mysql_compare_tables() accordingly.
2013-08-15 16:45:29 +04:00
Sergey Vojtovich
b7f9c89423 MDEV-4702 - Reduce usage of LOCK_open
Following variables do not require LOCK_open protection anymore:
- table_def_cache (renamed to tdc_hash) is protected by rw-lock
  LOCK_tdc_hash;
- table_def_shutdown_in_progress doesn't need LOCK_open protection;
- last_table_id use atomics;
- TABLE_SHARE::ref_count (renamed to TABLE_SHARE::tdc.ref_count)
  is protected by TABLE_SHARE::tdc.LOCK_table_share;
- TABLE_SHARE::next, ::prev (renamed to tdc.next and tdc.prev),
  oldest_unused_share, end_of_unused_share are protected by
  LOCK_unused_shares;
- TABLE_SHARE::m_flush_tickets (renamed to tdc.m_flush_tickets)
  is protected by TABLE_SHARE::tdc.LOCK_table_share;
- refresh_version (renamed to tdc_version) use atomics.
2013-08-14 12:48:50 +04:00
Sergei Golubchik
23b4ccde8b MDEV-4786 merge 10.0-monty -> 10.0
fix simple_rename_or_index_change() to reuse alter_table_manage_keys()
2013-08-12 18:32:53 +02:00
Sergei Golubchik
9747fbb411 MDEV-4786 merge 10.0-monty -> 10.0
remove TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE
2013-08-12 15:46:35 +02:00
Venkatesh Duggirala
eb152f86af BUG#16290902 DROP TEMP TABLE IF EXISTS CAN CAUSE POINT
IN TIME RECOVERY FAILURE ON SLAVES

Problem:
DROP TEMP TABLE IF EXISTS commands can cause point
in time recovery (re-applying binlog) failures.

Analyses:
In RBR, 'DROP TEMPORARY TABLE' commands are
always binlogged by adding 'IF EXISTS' clauses.
Also, the slave SQL thread will not check replicate.* filter
rules for "DROP TEMPORARY TABLE IF EXISTS" queries.
If log-slave-updates is enabled on slave, these queries
will be binlogged in the format of "USE `db`;
DROP TEMPORARY TABLE IF EXISTS `t1`;" irrespective
of filtering rules and irrespective of the `db` existence.
When users try to recover slave from it's own binlog,
use `db` command might fail if `db` is not present on slave.

Fix:
At the time of writing the 'DROP TEMPORARY TABLE
IF EXISTS' query into the binlog, 'use `db`' will not be
present and the table name in the query will be a fully
qualified table name.
Eg:
'USE `db`; DROP TEMPORARY TABLE IF EXISTS `t1`;'
will be logged as
'DROP TEMPORARY TABLE IF EXISTS `db`.`t1`;'.
2013-07-27 17:35:02 +05:30
Venkatesh Duggirala
bf2c49d33c BUG#16290902 DROP TEMP TABLE IF EXISTS CAN CAUSE POINT
IN TIME RECOVERY FAILURE ON SLAVES

Problem:
DROP TEMP TABLE IF EXISTS commands can cause point
in time recovery (re-applying binlog) failures.

Analyses:
In RBR, 'DROP TEMPORARY TABLE' commands are
always binlogged by adding 'IF EXISTS' clauses.
Also, the slave SQL thread will not check replicate.* filter
rules for "DROP TEMPORARY TABLE IF EXISTS" queries.
If log-slave-updates is enabled on slave, these queries
will be binlogged in the format of "USE `db`;
DROP TEMPORARY TABLE IF EXISTS `t1`;" irrespective
of filtering rules and irrespective of the `db` existence.
When users try to recover slave from it's own binlog,
use `db` command might fail if `db` is not present on slave.

Fix:
At the time of writing the 'DROP TEMPORARY TABLE
IF EXISTS' query into the binlog, 'use `db`' will not be
present and the table name in the query will be a fully
qualified table name.
Eg:
'USE `db`; DROP TEMPORARY TABLE IF EXISTS `t1`;'
will be logged as
'DROP TEMPORARY TABLE IF EXISTS `db`.`t1`;'.
2013-07-27 17:35:02 +05:30
Sergey Vojtovich
b385fdc6cc MDEV-4786 - merge 10.0-monty - 10.0
Fixed maria.maria and funcs_1.is_tables failure.

sql/sql_table.cc:
  C_ALTER_TABLE_FRM_ONLY lost it's meaning after merge of inplace alter:
  now it is used even if table is to be copied.
  Otherwise: how can row format change go without notifying storage engine?
  Removed check for create_table_mode for now, to be discussed.
2013-07-26 13:11:43 +04:00
Sergey Vojtovich
43946c0888 MDEV4786 - merge 10.0-monty → 10.0
sql/sql_table.cc:
  Removed false assertion that HA_NO_COPY_ON_ALTER is merge specific.
  This flag is used at least by Spider and Connect.
storage/spider/ha_spider.cc:
  Renamed THD::stmt_da -> THD::get_stmt_da().
  Renamed KEY::key_parts -> KEY::user_defined_key_parts.
  Renamed ALTER_* flags -> Alter_info::ALTER_*.
storage/spider/spd_conn.cc:
  Renamed THD::stmt_da -> THD::get_stmt_da().
storage/spider/spd_db_conn.cc:
  Renamed MYSQL_ERROR -> Sql_condition.
  Renamed KEY::key_parts -> KEY::user_defined_key_parts.
storage/spider/spd_db_include.h:
  current_comment_start argument of generate_parition_syntax()
  was removed during merge.
storage/spider/spd_db_mysql.cc:
  Renamed KEY::key_parts -> KEY::user_defined_key_parts.
storage/spider/spd_ping_table.cc:
  Renamed THD::stmt_da -> THD::get_stmt_da().
storage/spider/spd_table.cc:
  Include my_getopt.h so that it exports my_defaults_file and
  my_defaults_extra_file.
  Renamed KEY::key_parts -> KEY::user_defined_key_parts.
2013-07-23 17:22:02 +04:00
Sergei Golubchik
13dca0125a more post-merge fixes:
* update results
* don't force HA_CREATE_DELAY_KEY_WRITE on all temp tables,
  (bad for CREATE ... LIKE) instead imply it in myisam/aria
* restore HA_ERR_TABLE_DEF_CHANGED in archive
* increase the default number of rwlock classes in P_S to fit all our rwlocks
2013-07-21 19:24:20 +02:00
Sergei Golubchik
d1fdb17bfb cosmetic fixes 2013-07-21 16:43:42 +02:00
Sergei Golubchik
b7b5f6f1ab 10.0-monty merge
includes:
* remove some remnants of "Bug#14521864: MYSQL 5.1 TO 5.5 BUGS PARTITIONING"
* introduce LOCK_share, now LOCK_ha_data is strictly for engines
* rea_create_table() always creates .par file (even in "frm-only" mode)
* fix a 5.6 bug, temp file leak on dummy ALTER TABLE
2013-07-21 16:39:19 +02:00
Sergei Golubchik
5f6380adde 10.0-base merge 2013-07-18 16:46:57 +02:00
Sergei Golubchik
97e640b9ae 5.5 merge 2013-07-17 21:24:29 +02:00
Sergei Golubchik
c1d6a2d7e1 merge few bug fixes from 5.6 2013-07-17 18:51:12 +02:00
Sergei Golubchik
005c7e5421 mysql-5.5.32 merge 2013-07-16 19:09:54 +02:00
Sergei Golubchik
05c0103ad8 in field_conv() don't simply check to->type() == MYSQL_TYPE_BLOB, this
misses GEOMETRY columns.
2013-07-15 21:17:08 +02:00
Sergei Golubchik
e1c76b80d9 Fixes for innodb suite, merging tests from 5.6.
Includes 5.6 changesets for:
*****
Fix for BUG#13489996 valgrind:conditional jump or move depends on uninitialised values-field_blob.
blob_ptr_size was not initialized properly: remove this variable.
*****
Bug#14021323 CRASH IN FIELD::SET_NULL WHEN INSERTING ROWS TO NEW TABLE
*****
2013-07-15 18:01:22 +02:00
Vladislav Vaintroub
b427da7651 Fix main test suite on Windows 2013-07-15 13:43:15 +02:00
Seppo Jaakola
db0cfba638 Merged with lp:maria revision #3766 2013-07-13 13:30:03 +03:00
Seppo Jaakola
0a9216835f Initial merge result with mariaDB 10: lp:maria 2013-07-13 13:01:13 +03:00
Sergei Golubchik
7da16844ea fix the maria suite
sql/handler.h:
  not "unused"
sql/sql_table.cc:
  move this check where it is in 10.0
2013-07-12 23:07:32 +02:00
Sergei Golubchik
ee8195a731 fix lost vcol checks in sql_table.cc,
remove unused FIELD_IS_xxx flags
change vcol tests to use innodb, not xtradb.
2013-07-12 13:32:37 +02:00
Sergei Golubchik
f672d6b7d8 restore ha_example::check_if_incompatible_data(), create_info->fields_option_struct,
create_info->indexes_option_struct lost in the merge.
add test cases.
2013-07-12 11:36:54 +02:00
Sergei Golubchik
2f14d5747e fix alter_table.test: remove old assert as it was removed from 5.6,
add extra_func code from 5.5, that was lost in a merge
2013-07-11 14:08:51 +02:00
Alexander Barkov
5b0774ee1c Adding support for MySQL-5.6 temporal column types:
TIME, DATETIME, TIMESTAMP


added:
  mysql-test/r/type_temporal_mysql56.result
  mysql-test/std_data/mysql56datetime.MYD
  mysql-test/std_data/mysql56datetime.MYI
  mysql-test/std_data/mysql56datetime.frm
  mysql-test/std_data/mysql56time.MYD
  mysql-test/std_data/mysql56time.MYI
  mysql-test/std_data/mysql56time.frm
  mysql-test/std_data/mysql56timestamp.MYD
  mysql-test/std_data/mysql56timestamp.MYI
  mysql-test/std_data/mysql56timestamp.frm
  mysql-test/suite/rpl/r/rpl_temporal_mysql56.result
  mysql-test/suite/rpl/t/rpl_temporal_mysql56.test
  mysql-test/t/type_temporal_mysql56.test
  sql/compat56.cc
  sql/compat56.h
modified:
  client/mysqlbinlog.cc
  include/my_time.h
  include/mysql.h.pp
  include/mysql_com.h
  mysql-test/r/statistics.result
  mysql-test/r/strict.result
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
  sql-common/my_time.c
  sql/CMakeLists.txt
  sql/field.cc
  sql/field.h
  sql/item.cc
  sql/item_strfunc.cc
  sql/item_sum.cc
  sql/item_timefunc.cc
  sql/log_event.cc
  sql/opt_range.cc
  sql/opt_table_elimination.cc
  sql/protocol.cc
  sql/rpl_utility.cc
  sql/rpl_utility.h
  sql/sql_partition.cc
  sql/sql_prepare.cc
  sql/sql_select.cc
  sql/sql_table.cc
  sql/table.cc
  storage/perfschema/pfs_engine_table.cc
2013-07-10 11:49:17 +04:00
Sergei Golubchik
e06cc1adce MDEV-4758 10.0-monty tree: ALTER TABLE CHANGE COLUMN doesn't drop EITS stats
add missing rename_column_in_stat_tables(), delete_statistics_for_column(),
delete_statistics_for_index(), rename_table_in_stat_tables() calls.
2013-07-09 22:36:53 +02:00
Sergey Petrunya
964d42631c Fix test failure in myisam.test:
- Put back the code tht produces the warning about 
  "Table storage engine %s does not support the create option 'TRANSACTIONAL=1'"
2013-07-08 18:14:24 +04:00
Sergey Petrunya
50dda403b7 Fix test errors like:
-Note 1031 Table storage engine for 't1' doesn't have this option
+Note 1031 Table storage engine for 'InnoDB' doesn't have this option

They were caused by a change in MariaDB which changed ER_ILLEGAL_HA message 
text to be like:
"Storage engine InnoDB of the table `test`.`t1` doesn't have this option"

Some the error calls were changed to pass new parameters, but some were left
to be old. Also the error text in errmsg-ut8.txt was not changed.
2013-07-08 12:57:58 +04:00
Michael Widenius
a9d1d76e5e Fixed issues with partitions and create temporary table SELECT ...
Merged all ddl_logging code.
Merged sql_partition.cc
innodb_mysql_lock2.test and partition_cache.test now works.
Changed interface to strconvert() to make it easier to use with not \0 terminated strings.

sql/sql_partition.cc:
  Full merge with 5.6
sql/sql_table.cc:
  Merged all ddl_logging code
sql/strfunc.cc:
  Added from_length argument to strconvert() to make it possible to use without end terminated strings.
sql/strfunc.h:
  Added from_length argument to strconvert() to make it possible to use without end terminated strings.
2013-07-03 22:50:34 +03:00
Michael Widenius
99aae21ed2 mdl_sync now works.
mysql-test/r/mdl_sync.result:
  Full merge with 5.6
mysql-test/t/mdl_sync.test:
  Full merge with 5.6
sql/debug_sync.cc:
  Full merge with 5.6
sql/debug_sync.h:
  Full merge with 5.6
sql/mdl.cc:
  Full merge with 5.6
sql/sql_base.cc:
  Removed code not in 5.6 anymore
2013-07-02 20:43:35 +03:00
Michael Widenius
ecf9b1b754 Fixed some wrong format strings.
Fixed OPTIMIZE with innodb


include/my_sys.h:
  Removed ATTRIBUTE_FORMAT() as it gave warnings for %'s
sql/log_event.cc:
  Optimization: 
  use my_b_write() and my_b_write_byte() instead of my_b_printf()
  use strmake() instead of my_snprintf()
sql/sql_admin.cc:
  Fixed bug in admin_recreate_table()
  Fixed OPTIMIZE with innodb
sql/sql_table.cc:
  Indentation fixes
strings/my_vsnprintf.c:
  Changed fprintf() to fputs()
2013-06-28 01:53:41 +03:00
unknown
70092601bc merge of 2876.430.11 & 2876.430.1
CF_PREOPEN_TMP_TABLES & CF_HA_CLOSE & Patch for Bug#11746602 (27480: Extend CREATE TEMPORARY TABLES 
  privilege to allow temp table operations).
2013-06-27 17:42:18 +03:00
Michael Widenius
2534521f9a Fixed some merge issues:
- temporary tables now works
- mysql-system_tables updated to not use temporary tables
- PASSWORD() function fixed
- Support for STATS_AUTO_RECALC, STATS_PERSISTENT and STATS_SAMPLE_PAGES table options
2013-06-18 02:01:34 +03:00
unknown
0b7f8ed973 Debugging output fixed to make finding executing commands easy.
Error processing in mysql_create_table() fixed.
2013-06-17 13:34:54 +03:00
Sergei Golubchik
8bc6aed491 plugin_hton helper 2013-06-15 19:09:47 +02:00
Sergei Golubchik
68a6705ed1 MDEV-4441 DROP DATABASE with a newly created ARCHIVE table does not work
1. DROP DATABASE should use ha_discover_table_names(), not look at .frm files.
2. filename_to_tablename() also encodes temp file names #sql- -> #mysql50##sql
3. no special treatment for #sql- files, no TABLE_LIST::internal_tmp_table
4. discover also table file names, that start from #
2013-06-15 19:09:31 +02:00
Michael Widenius
5f1f2fc0e4 Applied all changes from Igor and Sanja 2013-06-15 18:32:08 +03:00
Tor Didriksen
45f739bd9d Bug#14834378 ADDRESSSANITIZER BUG IN FILENAME_TO_TABLENAME
Backport to 5.5


sql/sql_table.cc:
  gcc asan crashes in filename_to_tablename() on this: memcmp("-@", "#sql", 4)
  during loading of the innobase plugin
2013-06-14 16:38:27 +02:00
Tor Didriksen
82d9c8e8d9 Bug#14834378 ADDRESSSANITIZER BUG IN FILENAME_TO_TABLENAME
Backport to 5.5
2013-06-14 16:38:27 +02:00
Sivert Sorumgard
c8fc3db1b0 Bug #14227431: CHARACTER SET MISMATCH WHEN ALTERING FOREIGN KEYS
CAN LEAD TO MISSING TABLES

Overview
--------
If the FOREIGN_KEY_CHECKS system variable is set to 0, it is
possible to break a foreign key constraint by changing the type
or character set of the foreign key column, or by dropping the
foreign key index (without carrying out corresponding changes on
another table in the relationship).

If we subsequently set FOREIGN_KEY_CHECKS to 1 and execute ALTER
TABLE involving the COPY algorithm on such a table, the following
happens:

1) If ALTER TABLE does not contain a RENAME clause, the attempt 
   to install the new version of the table instead of the old one
   will fail due to the fact that the inconsistency will be 
   detected. An attempt to revert the partially executed alter 
   table operation by restoring the old table definition will 
   fail as well due to FOREIGN_KEY_CHECKS == 1. As a result, the 
   table being altered will be lost.
2) If ALTER TABLE contains the RENAME clause, the inconsistency 
   will not be detected (most probably due to other bugs). But if
   an attempt to install the new version of the table fails (for 
   example, due to a failure when updating triggers associated 
   with the table), reverting the partially executed alter table 
   by restoring the old table definition will fail too. So the 
   table being altered might be lost as well.


Suggested fix
-------------
The suggested fix is to temporarily unset the option bit
representing FOREIGN_KEY_CHECKS when the old table definition is
restored while reverting the partially executed operation.
2013-06-12 09:35:33 +02:00
Sivert Sorumgard
e7d8f19bc1 Bug #14227431: CHARACTER SET MISMATCH WHEN ALTERING FOREIGN KEYS
CAN LEAD TO MISSING TABLES

Overview
--------
If the FOREIGN_KEY_CHECKS system variable is set to 0, it is
possible to break a foreign key constraint by changing the type
or character set of the foreign key column, or by dropping the
foreign key index (without carrying out corresponding changes on
another table in the relationship).

If we subsequently set FOREIGN_KEY_CHECKS to 1 and execute ALTER
TABLE involving the COPY algorithm on such a table, the following
happens:

1) If ALTER TABLE does not contain a RENAME clause, the attempt 
   to install the new version of the table instead of the old one
   will fail due to the fact that the inconsistency will be 
   detected. An attempt to revert the partially executed alter 
   table operation by restoring the old table definition will 
   fail as well due to FOREIGN_KEY_CHECKS == 1. As a result, the 
   table being altered will be lost.
2) If ALTER TABLE contains the RENAME clause, the inconsistency 
   will not be detected (most probably due to other bugs). But if
   an attempt to install the new version of the table fails (for 
   example, due to a failure when updating triggers associated 
   with the table), reverting the partially executed alter table 
   by restoring the old table definition will fail too. So the 
   table being altered might be lost as well.


Suggested fix
-------------
The suggested fix is to temporarily unset the option bit
representing FOREIGN_KEY_CHECKS when the old table definition is
restored while reverting the partially executed operation.
2013-06-12 09:35:33 +02:00
Sergei Golubchik
6625fad8ca MDEV-4564 ALTER on a temporary table generates an audit event 2013-06-07 10:02:50 +02:00
Sergei Golubchik
72ba95873a 10.0-base merge
(without InnoDB - all InnoDB changes were ignored)
2013-06-06 21:32:29 +02:00
Sergei Golubchik
4749d40c63 5.5 merge 2013-06-06 17:51:28 +02:00
Michael Widenius
3143ad589a Push a lot of small fixes to get larger parts to compile 2013-05-21 22:00:08 +03:00
Sergei Golubchik
b381cf843c mysql-5.5.31 merge 2013-05-07 13:05:09 +02:00
Sergei Golubchik
337c1b3ee8 fix plugin locking/unlocking when assisted discovery fails 2013-04-19 20:35:37 +02:00
Sergei Golubchik
45912599ca 10.0 merge 2013-04-19 20:35:04 +02:00
Sergei Golubchik
b9b3d5330a MDEV-260 auditing table accesses 2013-04-19 12:50:16 +02:00
Sergei Golubchik
f398ced7f0 don't compare table names to detect temporary tables
(also fixes a bug with unaccounted table names like #sql-123,
see drop and alter_table tests)
2013-04-16 18:25:36 +02:00
Sergei Golubchik
1035a16a73 remove a sleep from the test 2013-04-16 17:14:26 +02:00
Sergei Golubchik
821db3801d remove numerous #ifdef HAVE_PSI_TABLE_INTERFACE
simplify ha_table_share_psi()
2013-04-15 18:47:47 +02:00
Sergei Golubchik
a9035be5b7 10.0-base merge 2013-04-15 15:09:22 +02:00
Alexey Botchkov
d8dccde6df MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
Syntax modified to allow statements:
               ALTER TABLE ADD/DROP COLUMN
               ALTER TABLE ADD/DROP INDEX
               ALTER TABLE ADD/DROP FOREIGN KEY
               ALTER TABLE ADD/DROP PARTITION
               ALTER TABLE CHANGE COLUMN
               ALTER TABLE MODIFY COLUMN
               DROP INDEX
         to have IF (NOT) EXISTS options.
         Appropriate implementations added to mysql_alter_table().
      
      per-file comments:
        mysql-test/r/alter_table.result
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              test result updated.
        mysql-test/r/fulltext.result
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
        mysql-test/r/partition.result
              test result updated.
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
        mysql-test/t/alter_table.test
              tests added.
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
        mysql-test/t/fulltext.test
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              tests added.
        mysql-test/t/partition.test
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              tests added.
        sql/field.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              create_if_not_exists field added.
        sql/field.h
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              create_if_not_exists field added.
        sql/partition_info.h
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              has_unique_name made public.
        sql/sp_head.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
        sql/sql_class.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              create_if_not_exists inited.
        sql/sql_class.h
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              create_if_not_exists inited.
        sql/sql_lex.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              check_exists inited.
        sql/sql_lex.h
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              check_exists inited.
        sql/sql_parse.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
        check_exists inited.
        sql/sql_table.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              handle_if_exists_options() added.
              it's called in mysql_alter_table().
        sql/sql_trigger.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              check_exists instead of drop_if_exists.
        sql/sql_view.cc
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              check_exists instead of drop_if_exists.
        sql/sql_yacc.yy
      MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).
              sintax modified.
2013-04-13 11:59:16 +05:00
Sergei Golubchik
5f293dd694 MDEV-4022 table attributes with sysvar as a default value 2013-04-09 23:27:24 +02:00
Sergei Golubchik
3ad01d00f2 error messages: name the storage engine explicitly,
instead of "used storage engine" and similar changes.
2013-04-09 23:27:07 +02:00
Sergei Golubchik
ffbd15eb32 post-review comments and other minor edits 2013-04-09 16:20:59 +02:00
Sergei Golubchik
050d7d6d75 optimize discovery for cases when the storage engine is known in advance 2013-04-09 16:20:48 +02:00
Sergei Golubchik
32ee15d851 Assisted discovery 2013-04-09 16:19:14 +02:00
Sergei Golubchik
db7809e817 dead code, remove unused argument 2013-04-09 16:19:05 +02:00
Sergei Golubchik
a53200d4e7 remove HA_CREATE_INFO::frm_only - it's internal server flag,
not part of the SE API, and, again, mutually exclusive with
C_ORDINARY_CREATE and C_CREATE_SELECT.
2013-04-09 16:19:01 +02:00
Sergei Golubchik
0c4cf3c7e5 small cleanup 2013-04-09 16:18:56 +02:00
Sergei Golubchik
e71cda83c6 cleanup: merge two mutually dependent function arguments into one,
eliminating reduncancy and a possibility of setting them to a pair of
invalid values.
2013-04-09 16:18:44 +02:00
Sergei Golubchik
336da6e270 cleanup 2013-04-09 16:18:37 +02:00
Sergei Golubchik
2d788ff5ca test_sql_discovery storage engine
use it to test main test cases with need_full_discover_for_existence > 0
2013-04-09 16:07:35 +02:00
Sergei Golubchik
4853c7192d discovery using sql CREATE TABLE statement 2013-04-09 16:07:17 +02:00
Sergei Golubchik
e06cb31719 CREATE TABLE and frm-less discovering engines.
Now CREATE TABLE does not write the frm file on disk,
if the engine can discover it
2013-04-09 15:57:09 +02:00
Sergei Golubchik
b3e70c4ae7 split mysql_create_frm() in create_frm_image() and writefrm() 2013-04-09 15:56:59 +02:00
Sergei Golubchik
cdc01e29d3 remove dd_frm_type(), dd_frm_storage_engine(), dd_check_storage_engine_flag()
from everywhere - now RENAME, SHOW FULL TABLES, and TRUNCATE work with discovery.
improve error messages in truncate
2013-04-09 15:50:30 +02:00
Sergei Golubchik
07b2523918 rename a handler method to more precisely reflect what kind of a hack it does 2013-04-09 15:49:13 +02:00
Sergei Golubchik
a489ae89b9 fix mysql_rm_table_no_locks() not to use dd_frm_type, because the frm file
may not exist (the table exists only in the engine).
2013-04-09 15:47:25 +02:00
Sergei Golubchik
e5a323e107 single table discovery: handlerton::discover_table() method.
fixes for need_full_discover_for_existence mode
2013-04-09 15:45:31 +02:00
Sergei Golubchik
6a839ff40d handlerton::discover_table_existence() method 2013-04-09 15:35:57 +02:00
Sergei Golubchik
b0a5dd73fa * remove ha_check_if_table_exists() and get_table_share_with_discover().
* rename check_if_table_exists() -> table_exists() and remove unneeded arguments
2013-04-09 15:35:15 +02:00
Sergei Golubchik
87a9d60ec6 revert
"
  revision-id: sanja@askmonty.org-20110511110948-4kdevwzomvk56y1w
  committer: sanja@askmonty.org
  branch nick: work-maria-5.1-CREATE-merge
  timestamp: Wed 2011-05-11 14:09:48 +0300
    Bugfix: New table creation/renaming block added if old encoded table present
"
the old behavior was less inconsistent than the new one.
In the new one the error message was sometimes different (under LOCK TABLES e.g.),
and there were race conditions (if this CREATE happened when a concurrent ALTER
has renamed the old table away but haven't put the new table in place)

The old one was like "(when using old table names) for DML #mysql50# prefix
is optional, for DDL it's required".
2013-04-09 15:35:07 +02:00
Sergei Golubchik
163882665e * don't use 1-8 numbers for open_table_error codes, use an enum.
* print "table doesn't exist in engine" when a table doesn't exist in the engine,
  instead of "file not found" (if no file was involved)
* print a complete filename that cannot be found ('t1.MYI', not 't1')
* it's not an error for a DROP if a table doesn't exist in the engine (or some table
  files cannot be found) - if the DROP succeeded regardless
2013-04-09 15:34:17 +02:00
Sergei Golubchik
5ad68a0d2f don't use I_S constants for open_table_def and get_table_share,
have a specially defined enum with clearly named values
2013-04-09 15:34:09 +02:00
Sergei Golubchik
09ece94fac remove handlerton::find_files (new implementation is coming),
and handlerton::table_exists_in_engine (new implementation is coming),
and handlerton::license (redundant)
2013-04-07 15:57:38 +02:00
Sergei Golubchik
028ce66c9e simplify test case 2013-04-07 15:36:37 +02:00
Alexander Barkov
73d39bba95 Merge from the latest mariadb-10.0.
added:
  include/mysql/service_kill_statement.h
  libmysql/libmysql_rpm_version.in
  libmysql/rpm_support.cc
  libservices/kill_statement_service.c
  mysql-test/include/ctype_heap.inc
  mysql-test/include/ctype_strtoll10.inc
  mysql-test/r/change_user_notembedded.result
  mysql-test/r/create_delayed.result
  mysql-test/r/ctype_utf16le.result
  mysql-test/r/failed_auth_3909.result
  mysql-test/r/gis2.result
  mysql-test/r/grant_lowercase.result
  mysql-test/r/group_by_innodb.result
  mysql-test/r/information_schema2.result
  mysql-test/suite/innodb/r/innodb_bug14704286.result
  mysql-test/suite/innodb/t/innodb_bug14704286.test
  mysql-test/suite/plugins/r/audit_null_debug.result
  mysql-test/suite/plugins/r/cassandra.result
  mysql-test/suite/plugins/r/cassandra_qcache.result
  mysql-test/suite/plugins/t/audit_null_debug.test
  mysql-test/suite/plugins/t/cassandra.opt
  mysql-test/suite/plugins/t/cassandra.test
  mysql-test/suite/plugins/t/cassandra_qcache.opt
  mysql-test/suite/plugins/t/cassandra_qcache.test
  mysql-test/suite/rpl/r/rpl_password_boundaries.result
  mysql-test/suite/rpl/t/rpl_password_boundaries.test
  mysql-test/suite/sys_vars/r/innodb_locking_fake_changes_basic.result
  mysql-test/suite/sys_vars/r/innodb_max_bitmap_file_size_basic.result
  mysql-test/suite/sys_vars/t/innodb_locking_fake_changes_basic.test
  mysql-test/suite/sys_vars/t/innodb_max_bitmap_file_size_basic.test
  mysql-test/t/change_user_notembedded.test
  mysql-test/t/create_delayed.test
  mysql-test/t/ctype_utf16le.test
  mysql-test/t/failed_auth_3909.test
  mysql-test/t/gis2.test
  mysql-test/t/grant_lowercase.opt
  mysql-test/t/grant_lowercase.test
  mysql-test/t/group_by_innodb.test
  mysql-test/t/information_schema2.test
  packaging/rpm-uln/
  packaging/rpm-uln/CMakeLists.txt
  packaging/rpm-uln/README-ULN
  packaging/rpm-uln/README.mysql-docs
  packaging/rpm-uln/filter-requires-mysql.sh
  packaging/rpm-uln/generate-tarball.sh
  packaging/rpm-uln/my.cnf
  packaging/rpm-uln/my_config.h
  packaging/rpm-uln/mysql-5.5-errno.patch
  packaging/rpm-uln/mysql-5.5-fix-tests.patch
  packaging/rpm-uln/mysql-5.5-libdir.patch
  packaging/rpm-uln/mysql-5.5-mtr1.patch
  packaging/rpm-uln/mysql-5.5-stack-guard.patch
  packaging/rpm-uln/mysql-5.5-testing.patch
  packaging/rpm-uln/mysql-chain-certs.patch
  packaging/rpm-uln/mysql-embedded-check.c
  packaging/rpm-uln/mysql-expired-certs.patch
  packaging/rpm-uln/mysql-install-test.patch
  packaging/rpm-uln/mysql-strmov.patch
  packaging/rpm-uln/mysql.init
  packaging/rpm-uln/mysql.spec.sh
  packaging/rpm-uln/scriptstub.c
  scripts/mysql_performance_tables.sql
  storage/cassandra/
  storage/cassandra/CMakeLists.txt
  storage/cassandra/cassandra.cnf
  storage/cassandra/cassandra_se.cc
  storage/cassandra/cassandra_se.h
  storage/cassandra/gen-cpp/
  storage/cassandra/gen-cpp/Cassandra.cpp
  storage/cassandra/gen-cpp/Cassandra.h
  storage/cassandra/gen-cpp/Cassandra_server.skeleton.cpp
  storage/cassandra/gen-cpp/cassandra_constants.cpp
  storage/cassandra/gen-cpp/cassandra_constants.h
  storage/cassandra/gen-cpp/cassandra_types.cpp
  storage/cassandra/gen-cpp/cassandra_types.h
  storage/cassandra/ha_cassandra.cc
  storage/cassandra/ha_cassandra.h
  storage/innobase/mysql-test/storage_engine/alter_tablespace.rdiff
renamed:
  mysql-test/include/mysqlbinlog_row_engine.inc => mysql-test/extra/binlog_tests/mysqlbinlog_row_engine.inc
  mysql-test/r/mysqlbinlog-cp932.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog-cp932.result
  mysql-test/r/mysqlbinlog2.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result
  mysql-test/r/mysqlbinlog_base64.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_base64.result
  mysql-test/r/mysqlbinlog_row.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result
  mysql-test/r/mysqlbinlog_row_innodb.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
  mysql-test/r/mysqlbinlog_row_myisam.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
  mysql-test/r/mysqlbinlog_row_trans.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result
  mysql-test/suite/innodb/t/innodb-autoinc-master.opt => mysql-test/suite/innodb/t/innodb-autoinc.opt
  mysql-test/t/mysqlbinlog-cp932-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932-master.opt
  mysql-test/t/mysqlbinlog-cp932.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932.test
  mysql-test/t/mysqlbinlog2-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog2-master.opt
  mysql-test/t/mysqlbinlog2.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test
  mysql-test/t/mysqlbinlog_base64.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_base64.test
  mysql-test/t/mysqlbinlog_row-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row-master.opt
  mysql-test/t/mysqlbinlog_row.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test
  mysql-test/t/mysqlbinlog_row_innodb-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb-master.opt
  mysql-test/t/mysqlbinlog_row_innodb.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test
  mysql-test/t/mysqlbinlog_row_myisam-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam-master.opt
  mysql-test/t/mysqlbinlog_row_myisam.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test
  mysql-test/t/mysqlbinlog_row_trans-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans-master.opt
  mysql-test/t/mysqlbinlog_row_trans.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test
  mysql-test/t/plugin_load_option-master.opt => mysql-test/t/plugin_load_option.opt
modified:
  BUILD/FINISH.sh
  BUILD/SETUP.sh
  CMakeLists.txt
  TODO
  VERSION
  client/completion_hash.cc
  client/mysql.cc
  client/mysql_upgrade.c
  client/mysqlbinlog.cc
  client/mysqlcheck.c
  client/mysqldump.c
  client/mysqltest.cc
  cmake/build_configurations/mysql_release.cmake
  cmake/character_sets.cmake
  cmake/configure.pl
  cmake/cpack_rpm.cmake
  cmake/create_initial_db.cmake.in
  cmake/info_macros.cmake.in
  cmake/install_layout.cmake
  cmake/mysql_version.cmake
  cmake/package_name.cmake
  cmake/plugin.cmake
  debian/dist/Debian/mariadb-server-10.0.files
  debian/dist/Debian/rules
  debian/dist/Ubuntu/mariadb-server-10.0.files
  debian/dist/Ubuntu/rules
  debian/patches/38_scripts__mysqld_safe.sh__signals.dpatch
  extra/comp_err.c
  extra/replace.c
  extra/resolve_stack_dump.c
  include/hash.h
  include/heap.h
  include/m_ctype.h
  include/ma_dyncol.h
  include/my_dir.h
  include/my_global.h
  include/my_pthread.h
  include/my_sys.h
  include/my_tree.h
  include/myisamchk.h
  include/mysql.h.pp
  include/mysql/plugin.h
  include/mysql/plugin_audit.h.pp
  include/mysql/plugin_auth.h.pp
  include/mysql/plugin_ftparser.h.pp
  include/mysql/service_thd_wait.h
  include/mysql/services.h
  include/mysql_com.h
  include/service_versions.h
  include/violite.h
  libmysql/CMakeLists.txt
  libmysql/libmysql.c
  libmysqld/CMakeLists.txt
  libmysqld/emb_qcache.cc
  libmysqld/lib_sql.cc
  libservices/CMakeLists.txt
  mysql-test/extra/binlog_tests/binlog.test
  mysql-test/include/have_dbi_dbd-mysql.inc
  mysql-test/include/plugin.defs
  mysql-test/include/rpl_start_server.inc
  mysql-test/lib/v1/mysql-test-run.pl
  mysql-test/mysql-test-run.pl
  mysql-test/r/alias.result
  mysql-test/r/contributors.result
  mysql-test/r/create.result
  mysql-test/r/ctype_ucs.result
  mysql-test/r/ctype_utf16.result
  mysql-test/r/ctype_utf32.result
  mysql-test/r/ctype_utf8.result
  mysql-test/r/datetime_456.result
  mysql-test/r/derived_view.result
  mysql-test/r/distinct.result
  mysql-test/r/dyncol.result
  mysql-test/r/func_encrypt_ucs2.result
  mysql-test/r/func_gconcat.result
  mysql-test/r/func_misc.result
  mysql-test/r/func_time.result
  mysql-test/r/group_by.result
  mysql-test/r/group_min_max.result
  mysql-test/r/handlersocket.result
  mysql-test/r/loaddata.result
  mysql-test/r/mysql.result
  mysql-test/r/mysqltest.result
  mysql-test/r/plugin.result
  mysql-test/r/plugin_auth.result
  mysql-test/r/show_check.result
  mysql-test/r/show_explain.result
  mysql-test/r/sp.result
  mysql-test/r/sp_notembedded.result
  mysql-test/r/stat_tables_par.result
  mysql-test/r/stat_tables_par_innodb.result
  mysql-test/r/subselect.result
  mysql-test/r/subselect3.result
  mysql-test/r/subselect3_jcl6.result
  mysql-test/r/subselect4.result
  mysql-test/r/subselect_innodb.result
  mysql-test/r/subselect_mat_cost.result
  mysql-test/r/subselect_no_mat.result
  mysql-test/r/subselect_no_opts.result
  mysql-test/r/subselect_no_scache.result
  mysql-test/r/subselect_sj.result
  mysql-test/r/subselect_sj_jcl6.result
  mysql-test/r/sum_distinct-big.result
  mysql-test/r/type_year.result
  mysql-test/r/user_var.result
  mysql-test/r/view.result
  mysql-test/suite.pm
  mysql-test/suite/binlog/r/binlog_database.result
  mysql-test/suite/binlog/r/binlog_row_annotate.result
  mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result
  mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_verbose.result
  mysql-test/suite/engines/funcs/r/tc_rename_error.result
  mysql-test/suite/engines/iuds/r/insert_time.result
  mysql-test/suite/funcs_1/datadict/processlist_priv.inc
  mysql-test/suite/funcs_1/datadict/processlist_val.inc
  mysql-test/suite/funcs_1/r/innodb_func_view.result
  mysql-test/suite/funcs_1/r/is_columns_is.result
  mysql-test/suite/funcs_1/r/is_columns_is_embedded.result
  mysql-test/suite/funcs_1/r/memory_func_view.result
  mysql-test/suite/funcs_1/r/myisam_func_view.result
  mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
  mysql-test/suite/funcs_1/r/processlist_priv_ps.result
  mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
  mysql-test/suite/funcs_1/r/processlist_val_ps.result
  mysql-test/suite/innodb/r/binlog_consistent.result
  mysql-test/suite/innodb/r/innodb-autoinc.result
  mysql-test/suite/innodb/r/innodb-zip.result
  mysql-test/suite/innodb/r/innodb.result
  mysql-test/suite/innodb/r/innodb_bug53591.result
  mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result
  mysql-test/suite/innodb/t/innodb-autoinc.test
  mysql-test/suite/innodb/t/innodb-zip.test
  mysql-test/suite/innodb/t/innodb.test
  mysql-test/suite/innodb/t/innodb_bug53591.test
  mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test
  mysql-test/suite/maria/truncate.result
  mysql-test/suite/maria/truncate.test
  mysql-test/suite/multi_source/multisource.result
  mysql-test/suite/multi_source/multisource.test
  mysql-test/suite/perfschema/include/upgrade_check.inc
  mysql-test/suite/perfschema/r/digest_table_full.result
  mysql-test/suite/perfschema/r/func_file_io.result
  mysql-test/suite/perfschema/r/func_mutex.result
  mysql-test/suite/perfschema/r/pfs_upgrade.result
  mysql-test/suite/perfschema/r/statement_digest.result
  mysql-test/suite/perfschema/r/statement_digest_consumers.result
  mysql-test/suite/perfschema/r/statement_digest_long_query.result
  mysql-test/suite/perfschema/t/func_file_io.test
  mysql-test/suite/perfschema/t/func_mutex.test
  mysql-test/suite/plugins/suite.pm
  mysql-test/suite/rpl/r/rpl_semi_sync.result
  mysql-test/suite/rpl/t/rpl_semi_sync.test
  mysql-test/suite/sphinx/sphinx.result
  mysql-test/suite/storage_engine/misc.result
  mysql-test/suite/sys_vars/r/character_set_client_basic.result
  mysql-test/suite/sys_vars/r/character_set_connection_basic.result
  mysql-test/suite/sys_vars/r/character_set_database_basic.result
  mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result
  mysql-test/suite/sys_vars/r/character_set_results_basic.result
  mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result
  mysql-test/suite/sys_vars/r/innodb_changed_pages_limit_basic.result
  mysql-test/suite/sys_vars/r/pseudo_thread_id_basic.result
  mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test
  mysql-test/suite/sys_vars/t/innodb_changed_pages_limit_basic.test
  mysql-test/suite/sys_vars/t/pseudo_thread_id_basic.test
  mysql-test/suite/vcol/r/vcol_misc.result
  mysql-test/suite/vcol/t/vcol_misc.test
  mysql-test/t/alias.test
  mysql-test/t/ctype_ucs.test
  mysql-test/t/ctype_utf16.test
  mysql-test/t/ctype_utf32.test
  mysql-test/t/ctype_utf8.test
  mysql-test/t/derived_view.test
  mysql-test/t/distinct.test
  mysql-test/t/dyncol.test
  mysql-test/t/file_contents.test
  mysql-test/t/func_gconcat.test
  mysql-test/t/func_misc.test
  mysql-test/t/group_by.test
  mysql-test/t/group_min_max.test
  mysql-test/t/loaddata.test
  mysql-test/t/mysql.test
  mysql-test/t/plugin.test
  mysql-test/t/plugin_auth.test
  mysql-test/t/show_check.test
  mysql-test/t/show_explain.test
  mysql-test/t/sp.test
  mysql-test/t/sp_notembedded.test
  mysql-test/t/stat_tables_par.test
  mysql-test/t/subselect4.test
  mysql-test/t/subselect_innodb.test
  mysql-test/t/subselect_sj.test
  mysql-test/t/sum_distinct-big.test
  mysql-test/t/user_var.test
  mysql-test/t/view.test
  mysql-test/valgrind.supp
  mysys/array.c
  mysys/charset-def.c
  mysys/default.c
  mysys/hash.c
  mysys/ma_dyncol.c
  mysys/mf_tempdir.c
  mysys/my_alloc.c
  mysys/my_chmod.c
  mysys/my_chsize.c
  mysys/my_copy.c
  mysys/my_create.c
  mysys/my_delete.c
  mysys/my_error.c
  mysys/my_fopen.c
  mysys/my_fstream.c
  mysys/my_getwd.c
  mysys/my_lib.c
  mysys/my_lock.c
  mysys/my_malloc.c
  mysys/my_open.c
  mysys/my_pread.c
  mysys/my_read.c
  mysys/my_redel.c
  mysys/my_rename.c
  mysys/my_seek.c
  mysys/my_sync.c
  mysys/my_thr_init.c
  mysys/my_write.c
  mysys/mysys_priv.h
  mysys/safemalloc.c
  mysys/string.c
  mysys/tree.c
  mysys/waiting_threads.c
  plugin/feedback/utils.cc
  scripts/CMakeLists.txt
  scripts/mysql_install_db.pl.in
  scripts/mysql_install_db.sh
  scripts/mysql_system_tables.sql
  scripts/mysql_system_tables_fix.sql
  scripts/mysqlaccess.sh
  scripts/mysqld_multi.sh
  scripts/mysqld_safe.sh
  sql-common/client.c
  sql-common/client_plugin.c
  sql/CMakeLists.txt
  sql/debug_sync.cc
  sql/event_data_objects.cc
  sql/event_db_repository.cc
  sql/event_scheduler.cc
  sql/events.cc
  sql/field.cc
  sql/field.h
  sql/filesort.cc
  sql/filesort_utils.cc
  sql/ha_ndbcluster.cc
  sql/ha_ndbcluster_binlog.cc
  sql/ha_partition.cc
  sql/ha_partition.h
  sql/handler.cc
  sql/handler.h
  sql/hostname.cc
  sql/item.cc
  sql/item.h
  sql/item_cmpfunc.cc
  sql/item_cmpfunc.h
  sql/item_create.cc
  sql/item_create.h
  sql/item_func.cc
  sql/item_func.h
  sql/item_geofunc.cc
  sql/item_geofunc.h
  sql/item_row.cc
  sql/item_strfunc.cc
  sql/item_strfunc.h
  sql/item_subselect.cc
  sql/item_sum.cc
  sql/item_sum.h
  sql/item_timefunc.cc
  sql/item_timefunc.h
  sql/item_xmlfunc.cc
  sql/item_xmlfunc.h
  sql/lex.h
  sql/log.cc
  sql/log_event.cc
  sql/log_event.h
  sql/log_event_old.cc
  sql/mdl.cc
  sql/mysqld.cc
  sql/mysqld.h
  sql/net_serv.cc
  sql/opt_range.cc
  sql/opt_range_mrr.cc
  sql/opt_subselect.cc
  sql/protocol.cc
  sql/records.cc
  sql/rpl_filter.cc
  sql/rpl_handler.cc
  sql/rpl_handler.h
  sql/rpl_mi.cc
  sql/rpl_mi.h
  sql/rpl_rli.cc
  sql/rpl_tblmap.cc
  sql/rpl_utility.cc
  sql/scheduler.cc
  sql/set_var.cc
  sql/set_var.h
  sql/slave.cc
  sql/sp.cc
  sql/sp_head.cc
  sql/sp_pcontext.cc
  sql/sp_rcontext.cc
  sql/sp_rcontext.h
  sql/sql_acl.cc
  sql/sql_analyse.h
  sql/sql_array.h
  sql/sql_audit.cc
  sql/sql_audit.h
  sql/sql_base.cc
  sql/sql_base.h
  sql/sql_cache.cc
  sql/sql_class.cc
  sql/sql_class.h
  sql/sql_connect.cc
  sql/sql_const.h
  sql/sql_db.cc
  sql/sql_delete.cc
  sql/sql_error.cc
  sql/sql_error.h
  sql/sql_handler.cc
  sql/sql_help.cc
  sql/sql_insert.cc
  sql/sql_join_cache.cc
  sql/sql_lex.cc
  sql/sql_lex.h
  sql/sql_list.h
  sql/sql_load.cc
  sql/sql_parse.cc
  sql/sql_plugin.cc
  sql/sql_plugin_services.h
  sql/sql_prepare.cc
  sql/sql_priv.h
  sql/sql_profile.cc
  sql/sql_profile.h
  sql/sql_reload.cc
  sql/sql_repl.cc
  sql/sql_repl.h
  sql/sql_select.cc
  sql/sql_servers.cc
  sql/sql_show.cc
  sql/sql_signal.cc
  sql/sql_statistics.cc
  sql/sql_string.cc
  sql/sql_string.h
  sql/sql_table.cc
  sql/sql_test.cc
  sql/sql_time.cc
  sql/sql_trigger.cc
  sql/sql_truncate.cc
  sql/sql_udf.cc
  sql/sql_union.cc
  sql/sql_update.cc
  sql/sql_yacc.yy
  sql/sys_vars.cc
  sql/sys_vars.h
  sql/table.cc
  sql/table.h
  sql/thr_malloc.cc
  sql/thr_malloc.h
  sql/tztime.cc
  sql/uniques.cc
  sql/unireg.cc
  storage/archive/ha_archive.cc
  storage/archive/ha_archive.h
  storage/csv/ha_tina.cc
  storage/federated/ha_federated.cc
  storage/federated/ha_federated.h
  storage/federatedx/federatedx_io_mysql.cc
  storage/federatedx/ha_federatedx.cc
  storage/federatedx/ha_federatedx.h
  storage/heap/ha_heap.cc
  storage/heap/heapdef.h
  storage/heap/hp_block.c
  storage/heap/hp_create.c
  storage/heap/hp_open.c
  storage/heap/hp_write.c
  storage/innobase/btr/btr0btr.cc
  storage/innobase/btr/btr0cur.cc
  storage/innobase/buf/buf0buf.cc
  storage/innobase/buf/buf0lru.cc
  storage/innobase/dict/dict0dict.cc
  storage/innobase/fil/fil0fil.cc
  storage/innobase/fts/fts0fts.cc
  storage/innobase/handler/ha_innodb.cc
  storage/innobase/handler/ha_innodb.h
  storage/innobase/handler/handler0alter.cc
  storage/innobase/ibuf/ibuf0ibuf.cc
  storage/innobase/include/btr0cur.h
  storage/innobase/include/dict0mem.h
  storage/innobase/include/fil0fil.h
  storage/innobase/include/lock0lock.h
  storage/innobase/include/page0zip.h
  storage/innobase/include/row0undo.h
  storage/innobase/include/row0upd.ic
  storage/innobase/lock/lock0lock.cc
  storage/innobase/log/log0recv.cc
  storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff
  storage/innobase/os/os0file.cc
  storage/innobase/page/page0cur.cc
  storage/innobase/page/page0page.cc
  storage/innobase/page/page0zip.cc
  storage/innobase/row/row0mysql.cc
  storage/innobase/row/row0sel.cc
  storage/innobase/row/row0umod.cc
  storage/innobase/row/row0undo.cc
  storage/maria/ha_maria.cc
  storage/maria/ma_bitmap.c
  storage/maria/ma_blockrec.c
  storage/maria/ma_check.c
  storage/maria/ma_ft_boolean_search.c
  storage/maria/ma_ft_nlq_search.c
  storage/maria/ma_ft_parser.c
  storage/maria/ma_loghandler.c
  storage/maria/ma_open.c
  storage/maria/ma_sort.c
  storage/maria/ma_write.c
  storage/maria/maria_pack.c
  storage/maria/unittest/sequence_storage.c
  storage/myisam/ft_boolean_search.c
  storage/myisam/ft_nlq_search.c
  storage/myisam/ft_parser.c
  storage/myisam/ft_stopwords.c
  storage/myisam/mi_check.c
  storage/myisam/mi_open.c
  storage/myisam/mi_write.c
  storage/myisam/myisamchk.c
  storage/myisam/myisamlog.c
  storage/myisam/myisampack.c
  storage/myisam/sort.c
  storage/myisammrg/ha_myisammrg.cc
  storage/myisammrg/mysql-test/storage_engine/vcol.rdiff
  storage/perfschema/pfs.cc
  storage/perfschema/pfs_check.cc
  storage/perfschema/pfs_instr.cc
  storage/perfschema/pfs_server.cc
  storage/sphinx/ha_sphinx.cc
  storage/xtradb/btr/btr0cur.c
  storage/xtradb/btr/btr0pcur.c
  storage/xtradb/buf/buf0lru.c
  storage/xtradb/buf/buf0rea.c
  storage/xtradb/fsp/fsp0fsp.c
  storage/xtradb/handler/ha_innodb.cc
  storage/xtradb/handler/ha_innodb.h
  storage/xtradb/handler/i_s.cc
  storage/xtradb/ibuf/ibuf0ibuf.c
  storage/xtradb/include/btr0btr.h
  storage/xtradb/include/btr0cur.h
  storage/xtradb/include/log0online.h
  storage/xtradb/include/srv0srv.h
  storage/xtradb/include/univ.i
  storage/xtradb/include/ut0ut.h
  storage/xtradb/include/ut0ut.ic
  storage/xtradb/lock/lock0lock.c
  storage/xtradb/log/log0log.c
  storage/xtradb/log/log0online.c
  storage/xtradb/os/os0file.c
  storage/xtradb/row/row0ins.c
  storage/xtradb/row/row0mysql.c
  storage/xtradb/row/row0upd.c
  storage/xtradb/srv/srv0srv.c
  storage/xtradb/srv/srv0start.c
  strings/ctype-latin1.c
  strings/ctype-ucs2.c
  strings/my_vsnprintf.c
  support-files/compiler_warnings.supp
  support-files/mysql.spec.sh
  tests/mysql_client_test.c
  vio/viosocket.c
  win/create_def_file.js
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result
  mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test
  mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test
pending merges:
  Sergei Golubchik 2013-03-28 MDEV-4207 Invalid code in fts_savepoint_rele...
    Alexander Barkov 2013-03-28 Fixing test failure in the previous comm...
    Alexander Barkov 2013-03-28 Merging utf16le from MySQL-5.6
    Vladislav Vaintroub 2013-02-19 MDEV-156 Threadpool - add thd_wait_be...
    Michael Widenius 2013-02-15 [merge] Automatic merge
    Elena Stepanova 2013-02-08 Fix for MDEV-4149, backport from 10.0:
    timour@askmonty.org 2013-02-07 MDEV-537 Make multi-column non-top le...
    Sergei Golubchik 2013-02-05 set THR_THD key and current_thd=NULL as ...
    sanja@askmonty.org 2013-02-04 [merge] merge
    sanja@askmonty.org 2013-02-04 MDEV-3873: post-merge fix.
    Sergei Golubchik 2013-02-04 missing cast added
    Sergey Petrunya 2013-02-04 Skip cassandra_qcache.test if there is no...
    Sergey Petrunya 2013-02-04 [merge] Merge fix for MDEV-3997.
    Sergey Petrunya 2013-02-04 MDEV-3997: Querying a Cassandra table on ...
    Sergey Petrunya 2013-02-04 Fix mysql-test/suite/plugins/suite.pm to ...
    sanja@askmonty.org 2013-02-04 [merge] merge
    sanja@askmonty.org 2013-02-04 MDEV-4091: Dynamic columns C functions...
    knielsen@knielse... 2013-01-31 MDEV-4121: binlog.binlog_row_binlog s...
    Sergei Golubchik 2013-02-02 remove "invisible sysvars" oxymoron
    Sergei Golubchik 2013-01-31 fix for a valgrind builds.
    Sergei Golubchik 2013-01-31 avoid mtr errors for --plugin-add=EXAMPL...
    Sergei Golubchik 2013-01-31 skip cassandra.test unless cassandra is ...
    Sergei Golubchik 2013-01-31 [merge] 10.0-base merge
    Sergei Golubchik 2013-01-30 don't disable the cassandra engine by de...
    knielsen@knielse... 2013-01-30 MDEV-3984: Double free of Master_info...
    Sergei Golubchik 2013-01-29 move cassandra-related code from cmake/c...
    Sergei Golubchik 2013-01-29 buildbot fixes for storage/cassandra/CMa...
    Sergei Golubchik 2013-01-29 [merge] 5.5 merge
    Sergei Golubchik 2013-01-29 more changes for fedora18
    Sergei Golubchik 2013-01-29 fix 'compat' rpm for fedora18
    Vladislav Vaintroub 2013-01-28 fix embedded build with for cmake 2.6...
    timour@askmonty.org 2013-01-28 Fix for MDEV-3948, and backport of th...
    Sergei Golubchik 2013-01-28 [merge] 5.3 merge
    Sergei Golubchik 2013-01-28 [merge] 5.2 merge
    Sergei Golubchik 2013-01-28 compilation error with -Wuninitialized -...
    Sergei Golubchik 2013-01-25 [merge] 5.1 merge
    Sergei Golubchik 2013-01-25 MDEV-729 lp:998028 - Server crashes on n...
    Sergei Golubchik 2013-01-25 MDEV-759 lp:998340 - Valgrind complains ...
    Sergei Golubchik 2013-01-26 MDEV-3875 Wrong result (missing row) on ...
    sanja@askmonty.org 2013-01-25 The problem was that expression with f...
    sanja@askmonty.org 2013-01-28 MDEV-4091: Dynamic columns C functions...
    Vladislav Vaintroub 2013-01-26 [merge] Merge MDEV-3842, MDEV-3923, M...
    Vladislav Vaintroub 2013-01-25 fix embedded
    Vladislav Vaintroub 2013-01-25 Fix embedded build
    Vladislav Vaintroub 2013-01-25 MDEV-3842,  MDEV-3923 :
    Vladislav Vaintroub 2013-01-25 MDEV-3971  : problems installing Mari...
    Michael Widenius 2013-01-26 [merge] Automatic merge
    Michael Widenius 2013-01-25 Fixed MDEV-3890: Server crash inserting ...
    Sergei Golubchik 2013-01-25 [merge] 5.3 merge
    Sergei Golubchik 2013-01-25 [merge] 5.2 merge
    Sergei Golubchik 2013-01-25 MDEV-4040 Replace deprecated SET OPTION ...
    Sergei Golubchik 2013-01-25 MDEV-3909 remote user enumeration
    Sergei Golubchik 2013-01-25 report "using password: YES/NO" correctl...
    Sergei Golubchik 2013-01-25 MDEV-3915 COM_CHANGE_USER allows fast pa...
    Igor Babaev 2013-01-23 [merge] Merge 5.3->5.5
    Igor Babaev 2013-01-21 [merge] Merge 5.2->5.3
    Igor Babaev 2013-01-21 [merge] Merge 5.1->5.2
    Igor Babaev 2013-01-21 [merge] Merge.
    Igor Babaev 2013-01-21 Fixed bug mdev-4063 (bug #56927).
    Sergei Golubchik 2013-01-21 MDEV-4029 SELECT on information_schema u...
    Igor Babaev 2013-01-19 Corrected the test case for bug mdev-3938.
    Igor Babaev 2013-01-16 Corrected the fix for bug mdev-3938.
    Igor Babaev 2013-01-15 Fixed bug mdev-3938.
    sanja@montyprogr... 2013-01-16 MDEV-4056 fix.
    timour@askmonty.org 2013-01-17 MDEV-3900 Optimizer difference betwee...
    sanja@montyprogr... 2013-01-17 backport of:
    sanja@montyprogr... 2013-01-16 MDEV-3988 fix.
    Igor Babaev 2013-01-11 Fixed bug mdev-4025.
    Vladislav Vaintroub 2013-01-11 MDEV-4020 : Make sure strmov symbol i...
    Sergei Golubchik 2013-01-23 remove one particularly stupid test 
    Sergei Golubchik 2013-01-21 MDEV-4069 thd_wait_end does not called i...
    sanja@montyprogr... 2013-01-22 Fixed typo in the function name.
    sanja@montyprogr... 2013-01-21 MDEV-3873: fixed functions absend in ...
    Sergei Golubchik 2013-01-20 fix a strict aliasing warning - remove a...
    Sergei Golubchik 2013-01-20 MDEV-3952 Incompatible change in MariaDB...
    Sergei Golubchik 2013-01-20 MDEV-3934 Assertion `((keypart_map+1) & ...
    Sergei Golubchik 2013-01-20 MDEV-4029 SELECT on information_schema u...
    Sergei Golubchik 2013-01-19 MDEV-3832 MariaDB conflicts with package...
    Sergei Golubchik 2013-01-18 MDEV-633 lp:1024058 - mysqld XA crash in...
    Sergei Golubchik 2013-01-18 simplify THD::binlog_setup_trx_data() usage
    Sergei Golubchik 2013-01-18 MDEV-3908 crash in multi-table delete an...
    Sergei Golubchik 2013-01-18 MDEV-4065 thd_kill_statement service
    Vladislav Vaintroub 2013-01-18 Fix Windows installers' bootstrapper ...
    Michael Widenius 2013-01-17 Don't reset maybe_null in update_used_ta...
    Michael Widenius 2013-01-17 Fixed compiler warning
    Sergei Golubchik 2013-01-16 [merge] xtradb merge. Percona-Server-5.5...
    Sergei Golubchik 2013-01-15 Percona-Server-5.5.28-rel29.3
    Sergei Golubchik 2013-01-15 Test case and a different fix for MySQL ...
    Sergei Golubchik 2013-01-15 small cleanups
    Sergei Golubchik 2013-01-15 backport a test case for a 5.5 bug fix f...
    Sergei Golubchik 2013-01-15 [merge] mysql-5.5.29 merge
    Dmitry Lenev 2012-12-10 Bug #15954896 "SP, MULTI-TABLE DELETE AND LO...
    mysql-builder@or... 2012-12-07 
    Harin Vadodaria 2012-12-06 Bug#15912213: BUFFER OVERFLOW IN ACL_GET()
    Gleb Shchepa 2012-12-05 Bug #15948123: SERVER WORKS INCORRECT WITH L...
    Gleb Shchepa 2012-12-05 Bug #15948123: SERVER WORKS INCORRECT WITH L...
    Joerg Bruehe 2012-11-08 Building RPMs for ULN:
    Joerg Bruehe 2012-11-08 Placement change:
    Tor Didriksen 2012-11-01 [merge] merge 5.1 => 5.5
    Venkata Sidagam 2012-10-31 BUG#13556441: CHECK AND REPAIR TABLE SHOU...
    Ashish Agarwal 2012-10-31 [merge] BUG#14485479: Merge into mysql-5.5...
    Ashish Agarwal 2012-10-31 BUG#14485479: INSTALL AUDIT PLUGIN HANGS I...
    Anirudh Mangipudi 2012-10-30 [merge] BUG#11754894: MYISAMCHK ERROR H...
    Anirudh Mangipudi 2012-10-30 [merge] BUG#11754894: MYISAMCHK ERROR H...
    Anirudh Mangipudi 2012-10-30 BUG#11754894: MYISAMCHK ERROR HAS INCOR...
    Shivji Kumar Jha 2012-10-30 [merge] BUG#14659685: main.mysqlbinlog_r...
    mysql-builder@or... 2012-10-29 
    mysql-builder@or... 2012-10-29 [merge] 
    mysql-builder@or... 2012-10-29 
    Alexander Nozdrin 2012-10-29 [merge] Merge from 5.1.
    Tor Didriksen 2012-10-24 Bug#14737559 BZR JOIN PLUGIN TREES INTO INT...
    Tor Didriksen 2012-10-23 [merge] local merge
    Tor Didriksen 2012-10-23 Use MESSAGE(STATUS ...) as we don't want an...
    Marko Mäkelä 2012-10-22 [merge] Merge mysql-5.1 to mysql-5.5.
    Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS...
    Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS...
    Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS...
    Nuno Carvalho 2012-10-12 [merge] BUG#14629727: USER_VAR_EVENT IS MIS...
    Joerg Bruehe 2012-10-19 Fix formatting in 'INFO_BIN' on Windows - ba...
    Joerg Bruehe 2012-10-19 [merge] Upmerge a backport - empty
    Annamalai Gurusami 2012-10-19 Bug #14226171  EXCESSIVE ROW LOCKING W...
    Neeraj Bisht 2012-10-18 [merge] Bug#13726751 - 8 BYTE MEMORY LEAK IN...
    Marko Mäkelä 2012-10-18 [merge] Merge mysql-5.1 to mysql-5.5.
    Krunal Bauskar 2012-10-17 [merge] merge from mysql-5.1 -> mysql-5.5
    Krunal Bauskar 2012-10-17 removing .... will re-add using merge. for...
    Tatjana Azundris... 2012-10-17 [merge] NULL merge
    mysql-builder@or... 2012-10-17 [merge] 
    mysql-builder@or... 2012-08-27 
    mysql-builder@or... 2012-08-22 
    mysql-builder@or... 2012-08-22 
    mysql-builder@or... 2012-08-09 
    mysql-builder@or... 2012-08-09 
    mysql-builder@or... 2012-08-08 
    mysql-builder@or... 2012-07-25 
    mysql-builder@or... 2012-07-24 
    mysql-builder@or... 2012-07-23 
    mysql-builder@or... 2012-07-23 
    mysql-builder@or... 2012-07-20 
    mysql-builder@or... 2012-07-19 
    mysql-builder@or... 2012-07-19 
    mysql-builder@or... 2012-07-18 
    mysql-builder@or... 2012-07-17 
    mysql-builder@or... 2012-06-28 
    mysql-builder@or... 2012-06-22 
    mysql-builder@or... 2012-06-21 
    mysql-builder@or... 2012-06-20 
    mysql-builder@or... 2012-06-20 
    mysql-builder@or... 2012-06-19 
    mysql-builder@or... 2012-06-11 
    mysql-builder@or... 2012-06-08 
    mysql-builder@or... 2012-06-04 
    mysql-builder@or... 2012-04-28 
    mysql-builder@or... 2012-02-16 
    mysql-builder@or... 2011-06-28 
    mysql-builder@or... 2011-06-09 
    mysql-builder@or... 2011-04-18 
    mysql-builder@or... 2011-03-18 
    mysql-builder@or... 2011-03-11 
    mysql-builder@or... 2011-03-05 
    mysql-builder@or... 2011-03-04 
    mysql-builder@or... 2011-03-02 
    mysql-builder@or... 2011-03-02 
    mysql-builder@or... 2011-03-02 
    mysql-builder@or... 2011-03-01 
    mysql-builder@or... 2011-02-22 
    mysql-builder@or... 2011-02-22 
    mysql-builder@or... 2011-02-14 
    mysql-builder@or... 2011-02-09 [merge] 
    mysql-builder@or... 2011-02-09 
    mysql-builder@or... 2011-02-09 
    mysql-builder@or... 2011-02-08 
    mysql-builder@or... 2011-02-08 
    mysql-builder@or... 2011-02-09 
    mysql-builder@or... 2011-02-05 
    mysql-builder@or... 2010-12-29 
    mysql-builder@or... 2010-12-29 
    mysql-builder@or... 2010-12-28 
    mysql-builder@or... 2010-12-27 
    mysql-builder@or... 2010-09-06 
    mysql-builder@or... 2010-08-09 
    mysql-builder@or... 2010-06-23 
    mysql-builder@or... 2010-06-09 
    mysql-builder@or... 2010-06-08 
    mysql-builder@or... 2012-02-16 
    mysql-builder@or... 2012-01-31 
    mysql-builder@or... 2012-01-26 
    mysql-builder@or... 2011-09-08 
    mysql-builder@or... 2011-09-08 
    mysql-builder@or... 2011-09-28 
    mysql-builder@or... 2011-09-01 
    mysql-builder@or... 2011-08-30 
    mysql-builder@or... 2011-08-26 
    mysql-builder@or... 2011-08-24 
    mysql-builder@or... 2011-08-18 
    mysql-builder@or... 2011-07-22 
    mysql-builder@or... 2011-05-20 
    mysql-builder@or... 2011-03-22 
    mysql-builder@or... 2011-01-21 
    mysql-builder@or... 2011-01-20 
    mysql-builder@or... 2011-01-19 
    mysql-builder@or... 2011-01-19 
    mysql-builder@or... 2011-01-19 
    mysql-builder@or... 2011-01-13 
    mysql-builder@or... 2011-01-13 
    mysql-builder@or... 2011-01-07 [merge] 
    mysql-builder@or... 2011-01-06 
    mysql-builder@or... 2011-01-06 
    mysql-builder@or... 2010-11-30 
    mysql-builder@or... 2010-11-25 
    mysql-builder@or... 2010-11-25 
    mysql-builder@or... 2010-11-25 
    mysql-builder@or... 2010-11-25 
    mysql-builder@or... 2012-08-28 
    mysql-builder@or... 2012-07-25 
    mysql-builder@or... 2012-03-19 
    mysql-builder@or... 2011-12-21 
    mysql-builder@or... 2011-09-21 [merge] 
    mysql-builder@or... 2011-08-19 [merge] 
    mysql-builder@or... 2011-08-18 
    mysql-builder@or... 2011-08-15 
    mysql-builder@or... 2011-07-28 
    mysql-builder@or... 2011-07-26 
    mysql-builder@or... 2011-07-26 
    mysql-builder@or... 2011-06-20 
    mysql-builder@or... 2011-06-14 
    mysql-builder@or... 2011-06-11 
    mysql-builder@or... 2011-06-10 
    mysql-builder@or... 2011-06-10 
    mysql-builder@or... 2011-06-10 
    mysql-builder@or... 2011-06-09 
    mysql-builder@or... 2011-06-06 
    mysql-builder@or... 2011-06-03 
    mysql-builder@or... 2011-06-02 
    mysql-builder@or... 2011-06-01 
    mysql-builder@or... 2011-06-01 
    mysql-builder@or... 2011-06-01 
    mysql-builder@or... 2011-06-01 
    mysql-builder@or... 2011-06-01 
    mysql-builder@or... 2011-06-01 
    mysql-builder@or... 2011-06-01 
    mysql-builder@or... 2011-05-30 
    mysql-builder@or... 2011-05-30 
    mysql-builder@or... 2011-05-30 
    mysql-builder@or... 2011-05-30 
    mysql-builder@or... 2011-05-30 
    mysql-builder@or... 2011-05-26 
    mysql-builder@or... 2011-05-26 
    mysql-builder@or... 2011-05-26 
    mysql-builder@or... 2011-05-26 
    mysql-builder@or... 2011-05-26 
    mysql-builder@or... 2011-05-25 
    mysql-builder@or... 2011-05-25 
    mysql-builder@or... 2011-05-25 
    mysql-builder@or... 2011-05-25 
    mysql-builder@or... 2011-05-25 
    mysql-builder@or... 2011-05-25 
    mysql-builder@or... 2012-10-17 
    mysql-builder@or... 2012-10-16 
    mysql-builder@or... 2012-09-21 
    mysql-builder@or... 2011-11-17 
    mysql-builder@or... 2011-09-28 
    mysql-builder@or... 2011-09-28 
    mysql-builder@or... 2011-09-21 [merge] 
    mysql-builder@or... 2011-09-08 
    mysql-builder@or... 2011-09-07 
    mysql-builder@or... 2011-09-07 
    mysql-builder@or... 2011-09-07 [merge] 
    mysql-builder@or... 2011-09-02 
    mysql-builder@or... 2011-09-01 
    mysql-builder@or... 2011-09-01 
    mysql-builder@or... 2011-05-20 
    mysql-builder@or... 2011-04-28 
    mysql-builder@or... 2011-04-28 
    mysql-builder@or... 2011-02-04 
    mysql-builder@or... 2010-11-29 
    mysql-builder@or... 2010-11-27 
    mysql-builder@or... 2010-11-23 
    mysql-builder@or... 2010-11-18 
    mysql-builder@or... 2010-11-18 
    mysql-builder@or... 2010-11-18 
    mysql-builder@or... 2010-11-18 
    mysql-builder@or... 2010-10-29 
    mysql-builder@or... 2010-10-29 
    mysql-builder@or... 2010-10-16 
    mysql-builder@or... 2010-10-16 
    mysql-builder@or... 2010-10-16 
    mysql-builder@or... 2010-10-15 
    mysql-builder@or... 2010-10-15 
    mysql-builder@or... 2010-10-15 
    mysql-builder@or... 2010-10-15 
    mysql-builder@or... 2010-10-14 
    mysql-builder@or... 2010-10-14 
    mysql-builder@or... 2010-10-13 
    mysql-builder@or... 2010-10-12 
    mysql-builder@or... 2010-10-12 
    mysql-builder@or... 2010-10-12 
    Yasufumi Kinoshita 2012-10-17 [merge] Bug #13702112 : WAIT_FOR_READ ...
    Tatjana Azundris... 2012-10-17 [merge] Bug#11764559: UMASK IS IGNORE...
    Neeraj Bisht 2012-10-16 [merge] Bug#11745891 - LAST_INSERT(ID) DOES ...
    mysql-builder@or... 2012-10-16 
    Marko Mäkelä 2012-10-16 [merge] Merge mysql-5.1 to mysql-5.5.
    Krunal Bauskar 2012-10-15 removed warning message as they have chang...
    Krunal Bauskar 2012-10-15 bug#14704286
    Marc Alff 2012-10-12 [merge] Merge mysql-5.1 --> mysql-5.5
    Vasil Dimov 2012-10-10 [merge] Null merge mysql-5.1 -> mysql-5.5 (th...
    Vasil Dimov 2012-10-09 [merge] Merge mysql-5.1 -> mysql-5.5
    Harin Vadodaria 2012-10-09 Bug #14211140: CRASH WHEN GRANTING OR REV...
    Annamalai Gurusami 2012-10-09 Fixing a compilation issue. 
    Praveenkumar Hul... 2012-10-08 Bug#11756600 - SLAVE THREAD CAN CRASH...
    Annamalai Gurusami 2012-10-08 Bug #14036214 MYSQLD CRASHES WHEN EXEC...
    Marko Mäkelä 2012-10-08 [merge] Merge mysql-5.1 to mysql-5.5.
    Jon Olav Hauglid 2012-10-04 Bug#14640599 MEMORY LEAK WHEN EXECUTING ...
    Tor Didriksen 2012-10-03 Bug#13713525 CREATE_INITIAL_DB.CMAKE IS FAI...
    Jon Olav Hauglid 2012-10-03 Bug#14495351: CRASH IN HA_PARTITION::HAN...
    Mattias Jonsson 2012-09-10 Bug#14495351: CRASH IN HA_PARTITION::HAND...
    Serge Kozlov 2012-10-02 BUG#12604949. Increased timeout for switchin...
    Tor Didriksen 2012-10-01 [merge] merge 5.1 => 5.5
    Joerg Bruehe 2012-10-01 [merge] Empty upmerge of 5.1.66 into 5.5
    hery.ramilison@o... 2012-10-01 Merge from mysql-5.5.28-release
    Annamalai Gurusami 2012-09-28 [merge] Merge from mysql-5.1 to mysql-...
    mysql-builder@or... 2012-09-27 
    Akhila Maddukuri 2012-09-27 Description:
    mysql-builder@or... 2012-09-26 [merge] 
    Akhila Maddukuri 2012-09-26 [merge] Description:
    Tor Didriksen 2012-09-25 [merge] merge 5.1 => 5.5
    mysql-builder@or... 2012-09-25 [merge] 
    mysql-builder@or... 2012-09-25 [merge] 
    Jon Olav Hauglid 2012-09-25 [merge] Merge from mysql-5.1 to mysql-5.5
    Raghav Kapoor 2012-09-25 [merge] BUG#13864642: DROP/CREATE USER BEHA...
    Rohit Kalhans 2012-09-23 [merge] bug#14548159: upmerge from mysql-5....
    Rohit Kalhans 2012-09-22 [merge] upmerge to bug#14548159
    Nirbhay Choubey 2012-09-21 [merge] Merge of fix for Bug#14645196 fro...
    Joerg Bruehe 2012-09-21 [merge] Merge changes for ULN RPMs into main...
    Joerg Bruehe 2012-09-18 Spec file for ULN RPMs:
    Joerg Bruehe 2012-07-26 Spec file: Declare conflicts with the ULN RPMs.
    Joerg Bruehe 2012-07-26 ULN spec file: Some comment or message text ...
    Joerg Bruehe 2012-07-26 Spec file: transfer the 'runselftest' macro ...
    Joerg Bruehe 2012-07-26 Spec file for ULN RPMs:
    Joerg Bruehe 2012-07-26 Spec file polishing: Handle 'MySQL-*' and 'm...
    Joerg Bruehe 2012-07-25 [merge] Merge 5.5.27 into the tree for ULN R...
    Joerg Bruehe 2012-06-14 Copyright text in the spec file for ULN RPMs.
    Joerg Bruehe 2012-06-12 One file still missing for ULN RPMs.
    Joerg Bruehe 2012-06-12 Still work on getting the "SPECIFIC-ULN/" fi...
    Joerg Bruehe 2012-06-11 Protect traditional RPMs that "SPECIFIC-ULN/...
    Joerg Bruehe 2012-06-11 cmake syntax error: missed ${...}
    Joerg Bruehe 2012-06-11 Files in "SPECIFIC-ULN" need to be mentioned...
    Joerg Bruehe 2012-06-11 Adape "SPECIFIC-ULN/mysql-5.5-libdir.patch" ...
    Joerg Bruehe 2012-06-11 More changes to supporting the build of RPMs...
    Joerg Bruehe 2012-06-08 First version of supporting the build of RPM...
    Inaam Rana 2012-09-20 Bug#14594600 ASSERT FROM DROP TABLE CONCURRENT...
    mysql-builder@or... 2012-09-20 
    Marko Mäkelä 2012-09-20 [merge] Null merge mysql-5.1 to mysql-5.5.
    Marko Mäkelä 2012-09-20 Do not try innodb_change_buffering_debug=2.
    Marko Mäkelä 2012-09-19 [merge] Merge mysql-5.1 to mysql-5.5.
    Tor Didriksen 2012-09-18 Bug#14542543 FIX BUG #12694872 IN 5.5
    Marko Mäkelä 2012-09-17 [merge] Null merge mysql-5.1 to mysql-5.5.
    Marko Mäkelä 2012-09-17 [merge] Merge mysql-5.5 to working copy.
    Harin Vadodaria 2012-09-17 [merge] Bug#11753779: MAX_CONNECT_ERRORS ...
    Marko Mäkelä 2012-09-17 [merge] Merge mysql-5.1 to mysql-5.5.
    Sujatha Sivakumar 2012-09-17 [merge] merge from 5.1 to 5.5
    mysql-builder@or... 2012-09-12 [merge] 
    Tor Didriksen 2012-09-12 [merge] merge 5.1 => 5.5
    Georgi Kodinov 2012-09-11 [merge] merge
    Jon Olav Hauglid 2012-09-11 WL#6454: Deprecate SHOW AUTHORS and SHOW...
    Georgi Kodinov 2012-08-27 Bug #13548161: MYSQLD_SAFE IMPROVEMENTS FO...
    Georgi Kodinov 2012-08-24 Bug #14181049: MYSQL_INSTALL_DB.PL CREATES...
    Andrei Elkin 2012-09-10 [merge] merge bug14597605 to 5.5.
    Marc Alff 2012-09-07 [merge] Local merge
    Marc Alff 2012-09-07 [merge] local merge
    Akhil Mohan 2012-09-07 [merge] Empty version change upmerge
    Marc Alff 2012-09-07 Bug#14072995 - PERFSCHEMA.FUNC_FILE_IO FAILS WI...
    Marc Alff 2012-09-07 Bug#14100113 - PERFSCHEMA.FUNC_MUTEX FAILS WITH...
    Tor Didriksen 2012-09-07 Bug#14593123 CONFIGURE.PL WITH CMAKE2.8 BRE...
    Tor Didriksen 2012-09-05 [merge] merge 5.1 => 5.5
    Annamalai Gurusami 2012-09-04 Bug #14500557 CRASH WHEN USING LONG IN...
    Annamalai Gurusami 2012-09-03 [merge] Merge from mysql-5.1 to mysql-...
    Annamalai Gurusami 2012-09-01 [merge] Merge from mysql-5.1 to mysql-...
    mysql-builder@or... 2012-08-31 [merge] 
    Marko Mäkelä 2012-08-30 [merge] Merge mysql-5.1 to mysql-5.5.
    Jorgen Loland 2012-08-30 [merge] Null-merge from 5.1
    mysql-builder@or... 2012-08-29 
    Tor Didriksen 2012-08-28 [merge] merge 5.5.28-release => 5.5
    mysql-builder@or... 2012-08-27 
    Aditya A 2012-08-27 Bug#14145950 AUTO_INCREMENT ON DOUBLE WILL FAIL ...
    hery.ramilison@o... 2012-08-24 Raise version number after cloning 5....
    Sergei Golubchik 2013-01-15 update debian patch to apply
    Sergei Golubchik 2013-01-15 [merge] 5.3 merge
    Sergei Golubchik 2013-01-10 [merge] 5.2->5.3 merge
    Sergei Golubchik 2013-01-10 [merge] 5.1 merge
    Sergei Golubchik 2013-01-09 [merge] mysql-5.1.67 merge
    Joerg Bruehe 2012-12-07 Last-minute fix to 5.1.67,
    akhil.mohan@orac... 2012-11-29 applying patch for BUG15912213
    Tor Didriksen 2012-11-01 Bug#14840488 VALGRIND ERRORS IN MYSQL_CLIEN...
    Anirudh Mangipudi 2012-10-30 BUG#11754894: MYISAMCHK ERROR HAS INCOR...
    Shivji Kumar Jha 2012-10-30 BUG#14659685 - main.mysqlbinlog_row_myis...
    mysql-builder@or... 2012-10-29 
    Alexander Nozdrin 2012-10-29 Fix sp_notembedded.test.
    Marko Mäkelä 2012-10-22 Backport from 5.6: Bug#14769820 ASSERT FLEN ...
    Nuno Carvalho 2012-10-21 BUG#14629727: USER_VAR_EVENT IS MISSING RAN...
    Nuno Carvalho 2012-10-21 [merge] BUG#14629727: USER_VAR_EVENT IS MIS...
    Nuno Carvalho 2012-10-12 BUG#14629727: USER_VAR_EVENT IS MISSING RAN...
    Joerg Bruehe 2012-10-19 [merge] Automerge into main 5.1
    Joerg Bruehe 2012-09-11 Backport this change from MySQL 5.5 to 5.1:
    Neeraj Bisht 2012-10-18 Bug#13726751 - 8 BYTE MEMORY LEAK IN DO_SAVE...
    Marko Mäkelä 2012-10-18 Bug#14758405: ALTER TABLE: ADDING SERIAL NUL...
    Krunal Bauskar 2012-10-17 bug#14765606: ensure select is active befo...
    Tatjana Azundris... 2012-10-17 [merge] Bug#11764559: UMASK IS IGNORE...
    Tatjana Azundris... 2012-10-17 Bug#11764559: UMASK IS IGNORED BY ERR...
    Yasufumi Kinoshita 2012-10-17 Bug #13702112 : WAIT_FOR_READ IS STUCK...
    Neeraj Bisht 2012-10-16 Bug#11745891 - LAST_INSERT(ID) DOES NOT SUPP...
    Marko Mäkelä 2012-10-16 Bug#14729221 IN-PLACE ALTER TABLE REPORTS ''...
    Krunal Bauskar 2012-10-15 bug#14704286
    Marc Alff 2012-10-12 Bug#14629232 SECURITY VULNERABILITY WITH SHOW P...
    Vasil Dimov 2012-10-10 Fix compilation error in debug mode:
    Vasil Dimov 2012-10-09 Port the test for Bug#14708715 from 5.1/innod...
    Vasil Dimov 2012-10-09 Update the ChangeLog with the fix of Bug#1470...
    Vasil Dimov 2012-10-09 Fix Bug#14708715 CREATE TABLE MEMORY LEAK ON ...
    Marko Mäkelä 2012-10-08 Bug#14731482 UPDATE OR DELETE CORRUPTS A REC...
    Tor Didriksen 2012-10-01 Bug#14683676 ENDLESS MEMORY CONSUMPTION IN ...
    Joerg Bruehe 2012-10-01 [merge] Merge 5.1.66 into main 5.1
    Annamalai Gurusami 2012-09-28 Bug #13249921 ASSERT !BPAGE->FILE_PAGE...
    mysql-builder@or... 2012-09-26 
    Akhila Maddukuri 2012-09-26 Description:
    Tor Didriksen 2012-09-25 Backport
    mysql-builder@or... 2012-09-25 
    mysql-builder@or... 2012-09-25 
    Jon Olav Hauglid 2012-09-25 Bug#14621627 THREAD CACHE IS UNFAIR
    Raghav Kapoor 2012-09-25 BUG#13864642: DROP/CREATE USER BEHAVING ODDLY 
    Rohit Kalhans 2012-09-23 BUG#14548159: Followup patch to fix some is...
    Rohit Kalhans 2012-09-22 BUG#14548159: NUMEROUS CASES OF INCORRECT I...
    Nirbhay Choubey 2012-09-21 Bug#14645196 MYSQL CLIENT'S USE COMMAND F...
    mysql-builder@or... 2012-09-20 
    Marko Mäkelä 2012-09-19 Bug#14636528 INNODB CHANGE BUFFERING IS NOT ...
    Marko Mäkelä 2012-09-17 [merge] Merge mysql-5.1 to working copy.
    Harin Vadodaria 2012-09-17 Bug#11753779: MAX_CONNECT_ERRORS WORKS ON...
    Marko Mäkelä 2012-09-17 Bug#12701488 ASSERT PAGE_ZIP_VALIDATE, UNIV_...
    Sujatha Sivakumar 2012-09-17 Bug#11750014:ASSERTION TRX_DATA->EMPTY(...
    mysql-builder@or... 2012-09-12 
    Tor Didriksen 2012-09-12 Backport Bug#13724099
    Andrei Elkin 2012-09-10 [merge] merge bug14597605 to the main repo.
    Andrei Elkin 2012-09-10 Bug#14597605 Issue with Null-value user on s...
    akhil.mohan@orac... 2012-09-07 Raise version number after cloning 5....
    Sergei Golubchik 2012-12-04 proactive s/strmov/strnmov/ in sql_acl.c...
    Vladislav Vaintroub 2012-12-21 [merge] merge
    Vladislav Vaintroub 2012-12-21 Support VS2012. Exclude compiler-defi...
    Vladislav Vaintroub 2012-12-21 [merge] merge
    Vladislav Vaintroub 2012-12-06 MDEV-3918: myisamchk  bogus error for...
    Sergei Golubchik 2012-12-11 one-byte overflow with old passwords
    Vladislav Vaintroub 2012-11-26 Fix broken feedback plugin after MDEV...
    Vladislav Vaintroub 2012-11-23 MDEV-712  -  LP:1024239 - Mysqlclient...
    Vladislav Vaintroub 2012-11-22 [merge] merge 5.1
    Vladislav Vaintroub 2012-11-22 Feedback plugin now recognizes  Windo...
    Sergei Golubchik 2013-01-08 MDEV-3942 FROM_DAYS(<timestamp column>) ...
    sanja@askmonty.org 2012-12-28 MDEV-3873 & MDEV-3876 & MDEV-3912 : Wr...
    timour@askmonty.org 2012-12-19 MDEV-3928: Assertion `example' failed...
    sanja@montyprogr... 2012-12-05 MDEV-3914 fix.
    Sergei Golubchik 2012-11-23 bump the version to 5.3.11
    Igor Babaev 2012-11-22 [merge] Merge
    Igor Babaev 2012-11-21 Fixed LP bug #1002146 (bug mdev-645).
    Sergei Golubchik 2013-01-15 remove thd_mark_as_hard_kill()
    timour@askmonty.org 2013-01-15 Fix for bug MDEV-3992, second attempt
    timour@askmonty.org 2013-01-14 Fix for bug MDEV-3992
    Michael Widenius 2013-01-11 Buildbot fixes and cleanups:
    Michael Widenius 2013-01-11 Fixed crashing bug in GROUP_CONCAT with ...
    Michael Widenius 2013-01-11 Fixed problem with failing mysql_upgrade...
    Michael Widenius 2013-01-11 Fixed MDEV-4013: Password length in repl...
    Michael Widenius 2013-01-11 Fixed some race conditons and bugs relat...
    Michael Widenius 2013-01-10 Fix for MDEV-4009: main.delayed sporadic...
    Sergei Golubchik 2013-01-09 MDEV-3846 REFRESH_CHECKPOINT and REFRESH...
    Sergei Golubchik 2013-01-09 MDEV-3985 crash: uninstall soname 'a'
    Sergei Golubchik 2013-01-08 MDEV-3883 Show global status not in order
    Sergei Golubchik 2013-01-08 MDEV-3987 uninitialized read in Item_con...
    Sergei Golubchik 2013-01-07 non-functional cleanup, clarifying CONVE...
    Sergei Golubchik 2013-01-28 my_alloca() when it's mapped to malloc()...
    Sergei Golubchik 2013-01-24 fix ha_cassandra to compile
    Sergei Golubchik 2013-01-24 workaround for incorrectly (?) generated...
    Sergei Golubchik 2013-01-24 race conditions in show_explain.test
    Sergei Golubchik 2013-01-23 main.partition_myisam crashes in embedded.
    Sergei Golubchik 2013-01-23 fix the failing federated.federated_inno...
    Sergei Golubchik 2013-01-23 32-bit fix: first cast the value to a si...
    Sergei Golubchik 2013-01-23 test suite fixes
    Sergei Golubchik 2013-01-23 cleanup:
    Sergei Golubchik 2013-01-23 cleanup:
    Sergei Golubchik 2013-01-23 cleanup: remove unused init_dynamic_arra...
    Sergei Golubchik 2013-01-23 cleanup: use MYF() for mysys flags
    Michael Widenius 2013-01-23 MDEV-4011 Added per thread memory counti...
    Jani Tolonen 2013-01-23 MDEV-3931 Cassandra SE packaging
    knielsen@knielse... 2013-01-21 Fix uninitialised variable in binlog ...
    knielsen@knielse... 2013-01-16 Fix missing #include
    Elena Stepanova 2013-01-16 [merge] MDEV-3990: engine tests went out ...
    Elena Stepanova 2013-01-13 MDEV-3990: engine tests went out of sync ...
    sanja@askmonty.org 2013-01-14 Compiler warning fixed.
    Igor Babaev 2013-01-13 [merge] Merged the fix for bug mdev-4019.
    Igor Babaev 2013-01-13 Fixed bug mdev-4019.
    sanja@askmonty.org 2013-01-11 Windows compiler warnings fix.
    sanja@askmonty.org 2013-01-11 Fix windows compiler warnings.
    sanja@askmonty.org 2013-01-10 fixed crossplatform double values repr...
    Sergey Petrunya 2013-01-10 MDEV-3982: show_explain.test fails, times...
    sanja@askmonty.org 2013-01-10 32 bit systems warnings fixed.
    sanja@askmonty.org 2013-01-10 append_identifier() declaration fixed.
    sanja@askmonty.org 2013-01-10 fix cassandra SE test to be working in...
    sanja@askmonty.org 2013-01-10 Make cassandra not built by default
    sanja@askmonty.org 2013-01-10 [merge] Cassandra SE merge
    sanja@askmonty.org 2013-01-10 Make cassandra module and do not load ...
    sanja@askmonty.org 2013-01-09 fixed feature counter.
    sanja@askmonty.org 2013-01-09 The library interface fixed.
    sanja@askmonty.org 2013-01-09 MDEV-4005 fix.
    Sergey Petrunya 2012-12-24 Post-merge fixes:
    sanja@askmonty.org 2012-12-23 [merge] pre-merge
    sanja@askmonty.org 2012-12-23 Post-post review fixes.
    sanja@askmonty.org 2012-12-23 backport to 5.5 dyncol changes and nam...
    Sergey Petrunya 2012-12-20 Cassandra Storage Engine: Address review ...
    Sergey Petrunya 2012-12-20 Cassandra Storage Engine: Address review ...
    Sergey Petrunya 2012-12-20 Cassandra Storage Engine: 
    sanja@montyprogr... 2012-09-30 Check of deleting whole dynamic columns.
    sanja@montyprogr... 2012-09-29 Fix of MDEV-565: Server crashes in ha...
    Sergey Petrunya 2012-09-28 Include cassandra storage engine in tarballs
    Sergey Petrunya 2012-09-28 Fix compile: expect Thrift where it is at...
    Sergey Petrunya 2012-09-28 Fix compile warnings
    sanja@montyprogr... 2012-09-28 Ending spaces removed.
    sanja@montyprogr... 2012-09-28 MDEV-506 Cassandra dynamic columns ac...
    sanja@montyprogr... 2012-09-28 MDEV-377 Name support for dynamic col...
    Sergey Petrunya 2012-09-27 Cassandra SE: lazy connections
    Sergey Petrunya 2012-09-27 Cassandra SE
    Sergey Petrunya 2012-09-26 - Update testcases
    Sergey Petrunya 2012-09-26 Cassandra SE:
    Sergey Petrunya 2012-09-26 Cassandra SE: Add capability to retry fai...
    Sergey Petrunya 2012-09-25 Cassandra SE: more datatypes support
    Sergey Petrunya 2012-09-24 Cassandra SE: varint datatype support: 
    Sergey Petrunya 2012-09-24 Cassandra SE
    Sergey Petrunya 2012-09-22 Cassandra SE: make consistency settings u...
    Sergey Petrunya 2012-09-20 Cassandra SE:
    Sergey Petrunya 2012-09-16 Cassandra SE: 
    Sergey Petrunya 2012-09-14 MDEV-530: Cassandra SE: Locking is incorrect
    Sergey Petrunya 2012-09-14 Cassandra SE
    Sergey Petrunya 2012-09-14 Cassandra SE
    Sergey Petrunya 2012-09-12 Cassandra SE: small optimization: StringC...
    Sergey Petrunya 2012-09-12 Update test results after last cset
    Sergey Petrunya 2012-09-10 Cassandra SE: add support for reading cou...
    Sergey Petrunya 2012-09-10 Cassandra SE
    Sergey Petrunya 2012-09-07 Cassandra SE: added support for boolean t...
    Sergey Petrunya 2012-08-31 MDEV-498: Cassandra: Inserting a timestam...
    Sergey Petrunya 2012-08-31 Cassandra SE
    Sergey Petrunya 2012-08-29 Cassandra SE: fix batched insert to flush...
    Sergey Petrunya 2012-08-29 Fix for the previous cset: Field::store_T...
    Sergey Petrunya 2012-08-29 Cassandra SE: Timestamp data type support.
    Sergey Petrunya 2012-08-29 Cassandra SE
    Sergey Petrunya 2012-08-29 Cassandra storage engine: add @@rnd_batch...
    Sergey Petrunya 2012-08-28 MDEV-494, part #1: phantom row for big fu...
    Sergey Petrunya 2012-08-28 MDEV-480: TRUNCATE TABLE on a Cassandra t...
    Sergey Petrunya 2012-08-27 Cassandra storage engine: BKA support
    Sergey Petrunya 2012-08-26 Cassandra storage engine: bulk INSERT sup...
    Sergey Petrunya 2012-08-23 - Enable mapping of CHAR(n)
    Sergey Petrunya 2012-08-23 # MDEV-476: Cassandra: Server crashes in ...
    Sergey Petrunya 2012-08-21 Make ha_cassandra work with filesort().
    Sergey Petrunya 2012-08-20 Read records in batches when doing full t...
    Sergey Petrunya 2012-08-19 position() and rnd_pos() implementations.
    Sergey Petrunya 2012-08-19 MDEV-431: Cassandra storage engine
    Sergey Petrunya 2012-08-19 MDEV-431: Cassandra storage engine
    Sergey Petrunya 2012-08-18 MDEV-431: Cassandra storage engine
    Sergey Petrunya 2012-08-18 MDEV-431: Cassandra storage engine
    Sergey Petrunya 2012-08-18 MDEV-431: Cassandra storage engine
    Sergey Petrunya 2012-08-17 Initial commit for Cassandra storage engine.
2013-03-29 11:33:42 +04:00
Sergei Golubchik
993ea79f2d 5.5 merge 2013-03-27 23:41:02 +01:00
Michael Widenius
068c61978e Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
Annamalai Gurusami
b6bd199850 Bug #16051728 SERVER CRASHES IN ADD_IDENTIFIER ON CONCURRENT ALTER TABLE AND
SHOW ENGINE INNOD

Problem:

The purpose of explain_filename() is to provide useful additional
information regarding the partitions given the filename.  This function
was returning an error when it was not able to parse the given filename.
For example, within InnoDB, temporary files are created with #sql-
prefix.  But this function was not able to parse it correctly.

Solution:

It is not an error, if explain_filename() could not parse the given
filename.  If there is no partition information to explain, then silently
return from the function.

rb#1940 approved by mattiasj
2013-03-21 11:40:43 +05:30
Annamalai Gurusami
63dc91d7da Bug #16051728 SERVER CRASHES IN ADD_IDENTIFIER ON CONCURRENT ALTER TABLE AND
SHOW ENGINE INNOD

Problem:

The purpose of explain_filename() is to provide useful additional
information regarding the partitions given the filename.  This function
was returning an error when it was not able to parse the given filename.
For example, within InnoDB, temporary files are created with #sql-
prefix.  But this function was not able to parse it correctly.

Solution:

It is not an error, if explain_filename() could not parse the given
filename.  If there is no partition information to explain, then silently
return from the function.

rb#1940 approved by mattiasj
2013-03-21 11:40:43 +05:30
Michael Widenius
ab1c228836 Fix for assert found by mysql-test-run
sql/sql_table.cc:
  Don't call allow_access_to_protected_table() if we haven't protected table against usage.
  Table is mainly protected against usage when one disables keys with alter table.
2013-03-05 20:15:36 +02:00
Michael Widenius
e2a72fefb4 Fixed issue with LOCK TABLE + ALTER TABLE ENABLE KEYS + SHOW commands.
sql/sql_table.cc:
  Remove version protection from share when repair has been done.
  Without this one can't run SHOW commands on the table if it was locked until it's unlocked.
sql/table.h:
  Allow one to remove version protection with allow_access_to_protected_table()
2013-03-05 00:53:18 +02:00
Michael Widenius
4cace76d4d Automatic merge 2013-03-01 18:09:06 +02:00
Michael Widenius
8ed283d882 Fixed bug MPDEV-628 / LP:989055 - Querying myisam table metadata may corrupt the table.
The issue was that there was that SHOW commands could open the table in the store engine, even in cases
where it should not be allowed to do that (ie, the storage engines meta data for that table was under big changes).

The cases where this should not be allowed are:
- ALTER TABLE DISABLE KEYS
- ALTER TABLE ENABLE KEYS
- REPAIR TABLE
- OPTIMIZE TABLE
- DROP TABLE

This patch adds a new mode, protected_against_usage(). If this is used then the SHOW command will wait until the table
is accessable. This is implemented by re-using the already exising 'version' flag for TABLE_SHARE.
It also added functions to be used to change TABLE_SHARE->version instead of changing it directly.
	


mysql-test/r/myisam-metadata.result:
  Added test case
mysql-test/t/myisam-metadata.test:
  Added test case
sql/mysqld.cc:
  Start from refresh_version 2 as 0 and 1 are reserved.
sql/sql_admin.cc:
  Added MYSQL_OPEN_FOR_REPAIR
  Updated call to wait_while_table_is_used()
sql/sql_base.cc:
  Updated call to wait_while_table_is_used()
  - Allow one to specify how the table should be removed (for all commands except show or for all commands).
  - Don't allow one to reopen the table if one has called share->protect_against_usage()
sql/sql_base.h:
  Added TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE, which is used to mark that no one can reopen this table, except with MYSQL_OPEN_FOR_REPAIR .
  - Added MYSQL_OPEN_FOR_REPAIR
  - Updated prototype for wait_while_table_is_used()
sql/sql_table.cc:
  Updated call to wait_while_table_is_used()
  Use MYSQL_OPEN_FOR_REPAIR for open tables that where repaired.
sql/sql_truncate.cc:
  Updated call to wait_while_table_is_used()
sql/table.cc:
  Use set_refresh_version()
sql/table.h:
  Added functions to be used to change TABLE_SHARE->version instead of changing it directly
2013-03-01 18:01:44 +02:00
Sergei Golubchik
213f1c76a0 5.3->5.5 merge 2013-02-28 22:47:29 +01:00
Sergei Golubchik
c4341d5095 5.2 -> 5.3 2013-02-28 21:48:47 +01:00
Sergei Golubchik
5dec570d7c 5.1 -> 5.2 merge 2013-02-28 19:00:58 +01:00