1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-05 12:42:17 +03:00
Commit Graph

34399 Commits

Author SHA1 Message Date
fee78df313 MDEV-4651 Crash in my_decimal2decimal in a ORDER BY query
modified:
  mysql-test/r/ps_2myisam.result
  mysql-test/r/ps_3innodb.result
  mysql-test/r/ps_4heap.result
  mysql-test/r/ps_5merge.result
  mysql-test/r/type_datetime_hires.result
  mysql-test/suite/maria/r/ps_maria.result
  mysql-test/t/type_datetime_hires.test
  sql/item_timefunc.h
2013-06-17 17:04:51 +04:00
d7e0c3cc73 MDEV-4456 Reverse discovery of ARCHIVE table on SELECT after disappearance of ARZ file
Implement discovery of table non-existence, and related changes:

1. Split GTS_FORCE_DISCOVERY (that was meaning two different things in
two different functions) into GTS_FORCE_DISCOVERY and GTS_USE_DISCOVERY.
2. Move GTS_FORCE_DISCOVERY implementation into open_table_def().
3. In recover_from_failed_open() clear old errors *before* discovery,
not after successful discovery. The final error should come
from the discovery.
4. On forced discovery delete table .frm first. Discovery will write
a new one, if desired.
5. If the frm file exists, but not the table in the engine, force
rediscovery if the engine supports it.
2013-06-16 22:01:07 +02:00
bae5b92ae6 remove extraneous statement from the test 2013-06-16 17:26:27 +02:00
935817e985 Fix to compile without partitioning.
Remove few ifdef's
2013-06-15 19:09:40 +02:00
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
5f1f2fc0e4 Applied all changes from Igor and Sanja 2013-06-15 18:32:08 +03:00
b54a4b7621 5.3 -> 5.5 Merge 2013-06-17 20:33:36 +03:00
291e0296d5 Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
TO INCONSISTENCY 
[Merge from 5.1]
2013-06-14 11:28:29 +05:30
dfb6f63bcf Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
TO INCONSISTENCY 

PROBLEM
--------
When we drop a partitoned table , we first gather the
information about partitions in the table from the 
table_name.par file and store it in an internal data 
structure.Then we delete this file and the data in 
the table. If the server crashes  after deleting the
file,then after recovering we cannot access the table
.Even we cannot drop the table ,because drop algorithm
requires par file to read the partition information.


FIX
---
1. We move the part of deleting par file after deleting 
   all the table data from the storage egine.
2. During drop operation if we detect that the par 
   file is missing then we delete the .frm file,since 
   there is no way of recovering without par file.
  
[Approved by Mattias rb#2576 ]
2013-06-14 11:22:05 +05:30
85a8de31b1 MDEV-4578 information_schema.processlist reports incorrect value for Time (2147483647)
SHOW PROCESSLIST might see a thread that started executing a query *after*
processlist has started. Don't show a negative or huge wrapped-around query execution time.
2013-06-13 20:19:32 +02:00
1fb33e4a67 MDEV-4529 Assertion `tmp->state == 4' fails on mix of INSTALL SONAME / UNINSTALL PLUGIN
fix incorrect assert
2013-06-13 20:19:11 +02:00
36c7535198 MDEV-4519 SHOW EVENTS and SHOW PROCEDURE STATUS truncate long user names
fix I_S table definitions in sql_show.cc
2013-06-13 20:18:40 +02:00
2533313895 MDEV-4515 Long user names are truncated to 48 symbols in error messages 2013-06-13 15:33:02 +02:00
3ddfab5e3c MDEV-4444 Server crashes with "safe_mutex: Trying to destroy a mutex share->mutex that was locked" on attempt to recover an archive table 2013-06-13 15:13:13 +02:00
acad1cc03c MDEV-4573 UNINSTALL PLUGIN misleading error message for non-dynamic plugins
change WARN_PLUGIN_DELETE_BUILTIN to ER_PLUGIN_DELETE_BUILTIN
2013-06-13 14:14:47 +02:00
f722b15dc2 MDEV-4636 use mysql_cleartext_plugin from auth_pam
add a new command-line option --pam-use-cleartext-plugin
2013-06-11 12:53:35 +02:00
2db4392bf4 MDEV-4297 mysql --binary-mode
backport mysql --binary-mode (bug#11747577, bug#33048)
2013-06-10 21:45:30 +02:00
16807b5856 MDEV-4629 MTR tests main.variables and some of sys_vars.* fail on 32-bit builds
Additional fix for remaining issues with sys_vars.* tests
2013-06-12 05:09:28 +04:00
894cfcf780 Fixed tests that failed on 32 bit because of my earlier fixes of 32 bit limits. 2013-06-11 13:49:43 +03:00
4179b9a53e Merge. 2013-06-10 15:07:55 +04:00
6a0a4f00a1 Forgotten .result file update. 2013-06-08 12:36:21 +02:00
a2cfb8023f Merge from 10.0-connect
added:
  include/mysql/service_thd_timezone.h
  libservices/thd_timezone_service.c
  storage/connect/inihandl.h
  storage/connect/mysql-test/connect/r/grant.result
  storage/connect/mysql-test/connect/r/ini_grant.result
  storage/connect/mysql-test/connect/r/mysql_grant.result
  storage/connect/mysql-test/connect/r/occur.result
  storage/connect/mysql-test/connect/r/odbc_sqlite3_grant.result
  storage/connect/mysql-test/connect/r/pivot.result
  storage/connect/mysql-test/connect/r/xcol.result
  storage/connect/mysql-test/connect/r/xml_grant.result
  storage/connect/mysql-test/connect/std_data/expenses.txt
  storage/connect/mysql-test/connect/t/grant.test
  storage/connect/mysql-test/connect/t/have_odbc_sqlite3.inc
  storage/connect/mysql-test/connect/t/ini_grant.test
  storage/connect/mysql-test/connect/t/mysql_grant.test
  storage/connect/mysql-test/connect/t/occur.test
  storage/connect/mysql-test/connect/t/odbc_sqlite3_grant.test
  storage/connect/mysql-test/connect/t/pivot.test
  storage/connect/mysql-test/connect/t/xcol.test
  storage/connect/mysql-test/connect/t/xml_grant.test
  storage/connect/rcmsg.h
  storage/connect/taboccur.cpp
  storage/connect/taboccur.h
  storage/connect/tabutil.cpp
  storage/connect/tabutil.h
  storage/connect/tabxcl.cpp
  storage/connect/tabxcl.h
modified:
  include/my_global.h
  include/my_time.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/services.h
  include/mysql_time.h
  include/probes_mysql_nodtrace.h
  include/service_versions.h
  libservices/CMakeLists.txt
  mysql-test/r/handlersocket.result
  mysql-test/r/plugin.result
  mysql-test/suite/plugins/r/show_all_plugins.result
  sql/item_func.cc
  sql/mysqld.cc
  sql/set_var.cc
  sql/sql_class.cc
  sql/sql_plugin.cc
  sql/sql_plugin.h
  sql/sql_plugin_services.h
  sql/sql_show.cc
  sql/sys_vars.cc
  storage/connect/CMakeLists.txt
  storage/connect/catalog.h
  storage/connect/colblk.cpp
  storage/connect/colblk.h
  storage/connect/connect.cc
  storage/connect/connect.h
  storage/connect/filamdbf.cpp
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/inihandl.c
  storage/connect/maputil.h
  storage/connect/mycat.cc
  storage/connect/myconn.cpp
  storage/connect/myconn.h
  storage/connect/mysql-test/connect/r/bin.result
  storage/connect/mysql-test/connect/r/csv.result
  storage/connect/mysql-test/connect/r/dbf.result
  storage/connect/mysql-test/connect/r/dir.result
  storage/connect/mysql-test/connect/r/fix.result
  storage/connect/mysql-test/connect/r/fmt.result
  storage/connect/mysql-test/connect/r/ini.result
  storage/connect/mysql-test/connect/r/mysql.result
  storage/connect/mysql-test/connect/r/odbc_sqlite3.result
  storage/connect/mysql-test/connect/r/tbl.result
  storage/connect/mysql-test/connect/r/upd.result
  storage/connect/mysql-test/connect/r/vec.result
  storage/connect/mysql-test/connect/r/xml.result
  storage/connect/mysql-test/connect/t/bin.test
  storage/connect/mysql-test/connect/t/csv.test
  storage/connect/mysql-test/connect/t/dbf.test
  storage/connect/mysql-test/connect/t/dir.test
  storage/connect/mysql-test/connect/t/fix.test
  storage/connect/mysql-test/connect/t/fmt.test
  storage/connect/mysql-test/connect/t/ini.test
  storage/connect/mysql-test/connect/t/mysql.test
  storage/connect/mysql-test/connect/t/odbc_sqlite3.test
  storage/connect/mysql-test/connect/t/tbl.test
  storage/connect/mysql-test/connect/t/vec.test
  storage/connect/mysql-test/connect/t/xml.test
  storage/connect/odbconn.cpp
  storage/connect/osutil.c
  storage/connect/osutil.h
  storage/connect/plgcnx.h
  storage/connect/plgdbsem.h
  storage/connect/plgdbutl.cpp
  storage/connect/plugutil.c
  storage/connect/rcmsg.c
  storage/connect/reldef.cpp
  storage/connect/tabcol.cpp
  storage/connect/tabcol.h
  storage/connect/tabfmt.cpp
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
  storage/connect/tabodbc.cpp
  storage/connect/tabpivot.cpp
  storage/connect/tabpivot.h
  storage/connect/tabsys.cpp
  storage/connect/tabsys.h
  storage/connect/tabtbl.cpp
  storage/connect/tabtbl.h
  storage/connect/tabwmi.cpp
  storage/connect/user_connect.cc
  storage/connect/valblk.cpp
  storage/connect/valblk.h
  storage/connect/value.cpp
  storage/connect/value.h
  storage/connect/xobject.h
  storage/connect/xtable.h
  storage/perfschema/ha_perfschema.cc
pending merges:
  Alexander Barkov 2013-06-08 Fixing a few compiler warnings
    Olivier Bertrand 2013-06-05 - Change CRLF line endings to LF
    Olivier Bertrand 2013-06-04 - Adding parallelism to the TBL table type
    Sergei Golubchik 2013-06-03 compiler warnings
    Alexander Barkov 2013-06-03 Fixing the problem with my_bool_t define...
    Olivier Bertrand 2013-05-28 - Fix crash when a null qrp is returned ...
    Olivier Bertrand 2013-05-28 - Extending connect_assisted_discovery c...
    Alexander Barkov 2013-05-28 Recording test results forgotten in the ...
    Alexander Barkov 2013-05-27 [merge] Merging with the latest 10.0
    Alexander Barkov 2013-05-27 - Fixing embedded verision of the Connec...
    Alexander Barkov 2013-05-27 Fixing ABI template, to take into accoun...
    Alexander Barkov 2013-05-27 Fixing ABI template, to take into accoun...
    Olivier Bertrand 2013-05-27 - Fix Windows compile error
    Alexander Barkov 2013-05-24 Adding the timezone plugin service, to c...
    Alexander Barkov 2013-05-24 Do not run mysql.test in case of embedde...
    Alexander Barkov 2013-05-24 Splitting SQLite3 tests into two parts:
    Alexander Barkov 2013-05-24 Removing more cases of direct use of thd.
    Alexander Barkov 2013-05-24 Removing direct access to thd, using fun...
    Olivier Bertrand 2013-05-24 - Fix setting default type to MYSQL->PRO...
    Alexander Barkov 2013-05-23 Connect: fixing non thread-safe code.
    Olivier Bertrand 2013-05-22 - Changing CONNECT version number and date
    Alexander Barkov 2013-05-21 "mtr --suite=connect --embedded" tests d...
    Olivier Bertrand 2013-05-20 - Correct misplaced parenthesis in last ...
    Olivier Bertrand 2013-05-20 - Save and restore srcdef when getting a...
    Olivier Bertrand 2013-05-19 - Removing unused copy file
    Olivier Bertrand 2013-05-19 [merge] - Commit merged and resolve
    Alexander Barkov 2013-05-13 Fixing warnings (mostly "no previous dec...
    Alexander Barkov 2013-05-13 Fixing compiler warnings ("no previous d...
    Alexander Barkov 2013-05-13 Fixing a few "no previous declaration" w...
    Alexander Barkov 2013-05-13 Fixing a few compilation warnings ("no p...
    Olivier Bertrand 2013-05-19 - Allowing views and queries as paramete...
    Olivier Bertrand 2013-05-13 [merge] - Commit merged changes
    Alexander Barkov 2013-05-13 [merge] Merge from maria-10.0
    Alexander Barkov 2013-05-13 Enabling --suite=connect by default
    Olivier Bertrand 2013-05-13 - Code cleaning. Eliminating unused code...
    Olivier Bertrand 2013-05-13 - fix use of uninitialized variable (colp)
    Olivier Bertrand 2013-05-13 - Set tdbp to NULL when ignored
    Olivier Bertrand 2013-05-12 - Changing mode from +x to -x
    Olivier Bertrand 2013-05-12 - Code cleaning.
    Olivier Bertrand 2013-05-11 - Fix tabpivot compile errors on Linux.
    Olivier Bertrand 2013-05-11 - Added a test case for PIVOT tables
    Olivier Bertrand 2013-05-10 - Add pivot table files and support
    Olivier Bertrand 2013-05-10 - Added table type PIVOT
    Olivier Bertrand 2013-05-09 - Fix inverted test on am in MYSQLDEF::D...
    Olivier Bertrand 2013-05-05 - General code cleaning, eliminating a f...
    Olivier Bertrand 2013-05-04 - Add test for XCOL and OCCUR tables
    Olivier Bertrand 2013-05-02 - Adding a loop test to prevent PROXY ba...
    Olivier Bertrand 2013-04-30 - Change in connect_assisted_discovery t...
    Olivier Bertrand 2013-04-30 - Allow PROXY based tables to specify My...
    Olivier Bertrand 2013-04-29 - Fix a bug causing a crash when using O...
    Olivier Bertrand 2013-04-29 - Adding 3 new table types:
2013-06-08 01:16:00 +04:00
9516510f7f Bug #16917425 -DBUILD_CONFIG=MYSQL_RELEASE -DWITH_DEBUG=ON FAILS 4 AND SKIPS 27 MTR TESTS
Revert fix since it caused mtr tests to not run in pushbuild.
2013-06-07 21:34:34 +02:00
fdf54a0d3a Bug #16917425 -DBUILD_CONFIG=MYSQL_RELEASE -DWITH_DEBUG=ON FAILS 4 AND SKIPS 27 MTR TESTS 2013-06-07 19:29:56 +05:30
d0ce9cb832 MDEV-4468 Assertion `error != 0' fails or timeout occurs on select from a FEDERATED table which points at a non-existent table
Federated uses SHOW TABLE STATUS LIKE for ::info().
For nonexisting remote table it doesn't fail, but returns an empty result set.
We need to fake the error in the handler.
2013-06-07 15:35:13 +02:00
742899e59d MDEV-4480 Assertion `inited == NONE' fails on closing a connection with open handler on temporary table 2013-06-07 15:34:59 +02:00
b5fcf33d24 MDEV-4490: Old-style master position points at the last GTID event after slave restart
Now whenever we reach the GTID point requested from the slave (when using GTID
position to connect), we send a fake Gtid_list event. This event is used by
the slave to know the current old-style position for MASTER_POS_WAIT(), and
later the similar binlog position for MASTER_GTID_WAIT().

Without this fake event, if the slave is already fully up-to-date with the
master, there may be no events sent at the given position for an indeterminate
time.
2013-06-07 14:39:00 +02:00
03aa4876e1 MDEV-4486: Allow to start old-style replication even if mysql.rpl_slave_state is unavailable
If the mysql.gtid_slave_pos table is not available, we cannot load nor update
the current GTID position persistently. This can happen eg. after an upgrade,
before mysql_upgrade_db is run, or if the table is InnoDB and the server is
restarted without the InnoDB storage engine enabled.

Before, replication always failed to start if the table was unavailable. With
this patch, we try to continue with old-style replication, after suitable
complaints in the error log. In strict mode, or if slave is configured to use
GTID, slave still refuses to start.
2013-06-07 10:58:34 +02:00
fb1a8f04ea Merge. 2013-06-07 12:10:45 +04:00
6625fad8ca MDEV-4564 ALTER on a temporary table generates an audit event 2013-06-07 10:02:50 +02:00
dbe2c5060e MDEV-4591:Setting gtid* values from inside a transaction might cause unexpected results
Now we give an error on attempts to set @@SESSION.gtid_domain_id or
@@SESSION.gtid_seq_no when a transaction is active.
2013-06-07 09:31:11 +02:00
7b6ab5638a MDEV-4483: CHANGE MASTER TO master_use_gtid=xxx looses old-style coordinates.
There was some old code that cleared the position in CHANGE MASTER,
it was forgotten to be removed.

In addition, add code that saves/restores the old-style position
when we nuke the old relay logs as part of GTID slave start.
Normally we will not use these, but it could be useful in case
the GTID connect fails and user wants to go back to the old-style
coordinates.
2013-06-07 08:43:21 +02:00
ad947563ac MDEV-4593: p_s: crash in simplify_joins with delete using subselect from view
mysql_derived_merge_for_insert() should not be called for views or derived tables which are not put (directly or via other views) in main SELECT_LEX "join list".
2013-06-06 23:33:40 +03:00
72ba95873a 10.0-base merge
(without InnoDB - all InnoDB changes were ignored)
2013-06-06 21:32:29 +02:00
4749d40c63 5.5 merge 2013-06-06 17:51:28 +02:00
eec66e2f65 MDEV-4594 - CREATE SERVER crashes embedded
mysql-test/r/servers.result:
  Added test case for MDEV-4594.
mysql-test/t/servers.test:
  Added test case for MDEV-4594.
sql/mysqld.cc:
  Move servers_init() call to init_server_components(), so it is called
  for embedded as well.
  
  Call servers_free() even if NO_EMBEDDED_ACCESS_CHECKS defined (because
  we call servers_init() anyway).
2013-06-06 19:27:17 +04:00
5cf5a9a1e8 Fixed timing failure in myisam-metadata.test
mysql-test/include/wait_show_condition.inc:
  Print failing statement if timeout
mysql-test/r/myisam-metadata.result:
  Updated DBUG_SYNC
mysql-test/t/myisam-metadata.test:
  Updated DBUG_SYNC.
  Removed wait_show_condtion, as this is not needed when we use DBUG_SYNC
  This should fix timing issues with the test
mysys/thr_mutex.c:
  Added comments
sql/sql_acl.cc:
  atoi -> atoll()  (Safety)
storage/myisam/ha_myisam.cc:
  Send signal before mi_repair_by_sort.
2013-06-06 15:51:36 +03:00
bef95a4bbe -Run test suite with smaller aria keybuffer size (to make it possible to run more tests in parallel)
-Added test and extra code to ensure we don't leave keyread on for a handler table.
-Create on disk temporary files always with long data pointers if SQL_SMALL_RESULT is not used. This ensures that we can handle temporary files bigger than 4G.

mysql-test/include/default_mysqld.cnf:
  Run test suite with smaller aria keybuffer size
mysql-test/suite/maria/maria3.result:
  Run test suite with smaller aria keybuffer size
mysql-test/suite/sys_vars/r/aria_pagecache_buffer_size_basic.result:
  Run test suite with smaller aria keybuffer size
sql/handler.cc:
  Disable key read (extra safety if something went wrong)
sql/multi_range_read.cc:
  Ensure we have don't leave keyread on for secondary_file
sql/opt_range.cc:
  Simplify code with mark_columns_used_by_index_no_reset()
  Ensure that read_keys_and_merge() disableds keyread if it enables it
sql/opt_subselect.cc:
  Remove not anymore used argument for create_internal_tmp_table()
sql/sql_derived.cc:
  Remove not anymore used argument for create_internal_tmp_table()
sql/sql_select.cc:
  Use 'enable_keyread()' instead of calling HA_EXTRA_RESET. (Makes debugging easier)
  Create on disk temporary files always with long data pointers if SQL_SMALL_RESULT is not used. This ensures that we can handle temporary files bigger than 4G.
  Remove not anymore used argument for create_internal_tmp_table()
  More DBUG
sql/sql_select.h:
  Remove not anymore used argument for create_internal_tmp_table()
2013-06-05 23:53:35 +03:00
5cb486d159 MDEV-26: Global transaction ID.
Fix problems related to reconnect. When we need to reconnect (ie. explict
stop/start of just the IO thread by user, or automatic reconnect due to
loosing network connection with the master), it is a bit complex to correctly
resume at the right point without causing duplicate or missing events in the
relay log. The previous code had multiple problems in this regard.

With this patch, the problem is solved as follows. The IO thread keeps track
(in memory) of which GTID was last queued to the relay log. If it needs to
reconnect, it resumes at that GTID position. It also counts number of events
received within the last, possibly partial, event group, and skips the same
number of events after a reconnect, so that events already enqueued before the
reconnect are not duplicated.

(There is no need to keep any persistent state; whenever we restart slave
threads after both of them being stopped (such as after server restart), we
erase the relay logs and start over from the last GTID applied by SQL thread.
But while the SQL thread is running, this patch is needed to get correct relay
log).
2013-06-05 14:32:47 +02:00
ccdfeb04d8 MDEV-4568 - Port Percona response time distribution as audit plugin
Test fixes.
2013-06-05 13:38:41 +04:00
afd134e212 MDEV-4568 - Port Percona response time distribution as audit plugin
sql/sp_head.cc:
  Trigger MYSQL_AUDIT_GENERAL_STATUS event for each statement in stored
  procedures. Not strictly needed for query_response_time plugin, but
  makes it behave more like Percona patch.
2013-06-04 10:01:31 +04:00
7ad47ab0e0 MDEV-4605: Failing to load GTID slave position from rpl.gtid_slave_pos
There were several cases where the slave GTID position was not loaded
correctly before being used. This caused various failures such as
corrupting the position at slave start and empty values of
@@gtid_slave_pos and @@gtid_current_pos.

Fixed by adding more checks for loaded position, and by always loading
the position at server startup.
2013-06-03 07:41:38 +02:00
1b4164c18a Remove stacktrace from test case 2013-05-31 19:32:57 +09:30
e92058de08 Added some tests for bogus latch 2013-05-31 19:31:02 +09:30
7032a3cf41 Add test with no latch at alL 2013-05-31 18:55:03 +09:30
6feadb1082 MDEV-4485: Incorrect error handling in record_gtid().
Fix the error handling when access to the table mysql.gtid_slave_pos
fails for whatever reason. Add some test cases.
2013-05-29 14:23:40 +02:00
385780f571 MDEV-4485: Master did not allow slave to connect from the very start (empty GTID pos) if GTIDs from other multi_source master was present
The idea in the code was to protect the user that tries to connect a slave
to a master with completely different domains than what was intended. If
none of the domains in the start position are present at all in the master
binlog, we gave an error.

However, this is a stupid idea. Because when a slave connects to a master
to start replication from the very start of binlogs - such as when setting
up new master->slave servers from scratch - there will be just this
situation, the requested slave position is empty for all the domains in the
master's binlog.

So the code that gives this error is wrong, and the solution is simply to
remove it.
2013-05-29 11:41:25 +02:00
04fbdb4f84 Merge 10.0-base -> 10.0 2013-05-28 15:46:32 +02:00
a0fd7382bc Merge 10.0-base -> 10.0 2013-05-28 15:39:56 +02:00
1db0278c8b Updated basic test for varchar latch only 2013-05-28 22:10:27 +09:30