1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-21 16:03:24 +03:00
Commit Graph

73 Commits

Author SHA1 Message Date
Marko Mäkelä
14c6f00a9f Merge 10.1 into 10.2
Also, include fixes by Vladislav Vaintroub to the
aws_key_management plugin. The AWS C++ SDK specifically depends on
OPENSSL_LIBRARIES, not generic SSL_LIBRARIES (such as YaSSL).
2017-05-06 14:36:46 +03:00
Vladislav Vaintroub
db39107413 MDEV-11663 Create services for functionality used by plugins
Added service for
- encryption (AES)
- error reporting, e.g my_printf_error()
2017-04-27 19:12:38 +02:00
Sergei Golubchik
da4d71d10d Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
Sergei Golubchik
227f63db3b cleanup: sort various lists of services 2017-03-10 18:21:28 +01:00
Sergei Golubchik
0877eff401 thd_rnd service 2017-03-10 18:21:27 +01:00
Sergei Golubchik
051851b9a6 base64 service 2017-03-10 18:21:27 +01:00
Sergei Golubchik
d6a7aece08 my_sha2 service 2017-03-10 18:21:26 +01:00
Monty
9c846373f0 Merge commit 'd5822a3ad0657040114cdc185c6387b9eb3a12b2' into 10.2 2016-04-28 16:59:33 +03:00
Monty
b4ff64568c Fixed wrong counting of global Memory_used 2016-04-28 13:39:55 +03:00
Sergey Vojtovich
a8d97fb818 MDEV-9651 - Simplify audit event dispatching
Simplified audit event dispatching call chain from:
  mysql_audit_notify_connection_connect() // can be inlined
  mysql_audit_notify()                    // can't be inlined
  connection_class_handler()              // can't be inlined
  event_class_dispatch()                  // can be inlined
  plugins_dispatch()                      // can be inlined
  plugin->event_notify()                  // can't be inlined
to:
  mysql_audit_notify_connection_connect() // can be inlined
  mysql_audit_notify()                    // can't be inlined
  plugins_dispatch()                      // can be inlined
  plugin->event_notify()                  // can't be inlined
2016-03-08 11:26:28 +04:00
Sergei Golubchik
66b9a9409c New encryption API. Piece-wise encryption.
Instead of encrypt(src, dst, key, iv) that encrypts all
data in one go, now we have encrypt_init(key,iv),
encrypt_update(src,dst), and encrypt_finish(dst).

This also causes collateral changes in the internal my_crypt.cc
encryption functions and in the encryption service.

There are wrappers to provide the old all-at-once encryption
functionality. But binlog events are often written piecewise,
they'll need the new api.
2015-09-04 10:33:50 +02:00
Sergei Golubchik
658992699b Merge tag 'mariadb-10.0.20' into 10.1 2015-06-27 20:35:26 +02:00
Sergei Golubchik
810cf362ea Merge branch '5.5' into 10.0 2015-06-11 20:20:35 +02:00
Sergei Golubchik
0ffef5d2a7 MDEV-8052 abi detection incorrect with clang
don't include #include directives into .pp files
2015-06-03 09:54:56 +02:00
Sergei Golubchik
2300fe2e0e Identical key derivation code in XtraDB/InnoDB/Aria
* Extract it into the "encryption_scheme" service.
* Make these engines to use the service, remove duplicate code.
* Change MY_AES_xxx error codes, to return them safely
  from encryption_scheme_encrypt/decrypt without conflicting
  with ENCRYPTION_SCHEME_KEY_INVALID error
2015-05-15 18:12:01 +02:00
Sergei Golubchik
97d5de4ccf Add encryption key id to the API as a distinct concept
which is separate from the encryption key version
2015-04-09 19:35:40 +02:00
Sergei Golubchik
65e7826070 renames to follow single consistent naming style
with namespace prefixes
2015-04-09 18:42:44 +02:00
Sergei Golubchik
c0878f64c5 remove wrappers in encryption_keys.cc
invoke plugin methods directly
2015-04-09 18:42:43 +02:00
Sergei Golubchik
bb1b61b312 encryption plugin controls the encryption
* no --encryption-algorithm option anymore
* encrypt/decrypt methods in the encryption plugin
* ecnrypt/decrypt methods in the encryption_km service
* file_km plugin has --file-key-management-encryption-algorithm
* debug_km always uses aes_cbc
* example_km changes between aes_cbc and aes_ecb for different key versions
2015-04-09 18:42:43 +02:00
Sergei Golubchik
ef5b4889c2 optimize encryption api
only one encryption key lookup in most cases instead of three
(has_key, get_key_size, get_key).
2015-04-08 10:58:50 +02:00
Sergei Golubchik
5d8dbee97b remove get_iv() from the key management plugin API
now IVs are always handled internally
2015-04-08 10:58:47 +02:00
Sergei Golubchik
18feb62fee MDEV-6819 st_mysql_show_var::value should be void* not char* 2015-03-07 13:27:56 +01:00
Sergei Golubchik
21430e4378 encryption keys service 2015-02-10 10:21:18 +01:00
Monty
0ee879ff8a Improve performance for calculating memory allocation
Extend interface for 'show variables' with current scope
2015-02-01 15:24:22 +02:00
Sergei Golubchik
8360e1a5b5 MDEV-6712 THD specifics for plugins
thd_specifics service
2014-12-04 10:41:55 +01:00
Sergei Golubchik
d6141a553c MD5 service 2014-10-01 23:38:28 +02:00
Sergei Golubchik
11b6452a0f extend SHA1 service. cleanup of sha1 wrappers 2014-10-01 23:38:28 +02:00
unknown
b352969118 MDEV-5914: Parallel replication deadlock due to InnoDB lock conflicts
Due to how gap locks work, two transactions could group commit together on the
master, but get lock conflicts and then deadlock due to different thread
scheduling order on slave.

For now, remove these deadlocks by running the parallel slave in READ
COMMITTED mode. And let InnoDB/XtraDB allow statement-based binlogging for the
parallel slave in READ COMMITTED.

We are also investigating a different solution long-term, which is based on
relaxing the gap locks only between the transactions running in parallel for
one slave, but not against possibly external transactions.
2014-03-21 13:30:55 +01:00
Sergei Golubchik
59662bfb67 remove a deprecated API function from the plugin.h 2013-12-22 17:11:20 +01:00
Alexander Barkov
1345a75922 MroongaSE: addint thd_autoinc and thd_error_context plugin services 2013-12-12 19:18:49 +04:00
unknown
57a267a8c0 Merge from 10.0-base to 10.0 the feature MDEV-4506: Parallel replication.
The merge is still missing a few hunks related to temporary tables and
InnoDB log file size. The associated code did not seem to exist in
10.0, so the merge of that needs more work. Until this is fixed, there
are a number of test failures as a result.
2013-11-01 12:00:11 +01:00
unknown
cb86ce60b9 Merge MDEV-4506: Parallel replication into 10.0-base. 2013-11-01 09:17:06 +01:00
unknown
2842f6b5dc MDEV-4506: Parallel replication: error handling.
Add an error code to the wait_for_commit facility.

Now, when a transaction fails, it can signal the error to
any subsequent transaction that is waiting for it to commit.
The waiting transactions then receive the error code back from
wait_for_prior_commit() and can handle the error appropriately.

Also fix one race that could cause crash if @@slave_parallel_threads
were changed several times quickly in succession.
2013-10-14 15:28:16 +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
Alexey Botchkov
92265da9d7 MDEV-4472 Audit-plugin. Server-related part of the task.
file_logger became the service.
     Data like query_id now are sent to the audit plugin.
     Fix for MDEV-4770 ported from 10.0.
     Fix added for the read_maria_plugin_info().
     Log rotation can be disabled with 'set rotations=0'.
2013-09-09 16:56:35 +05: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
3e9446a742 SHA1 service
(because mysql_ssl library is built with -fvisibility=hidden)
2013-07-13 17:48:06 +02:00
unknown
7e5dc4f074 MDEV-4506: Parallel replication. Intermediate commit.
Implement facility for the commit in one thread to wait for the commit of
another to complete first. The wait is done in a way that does not hinder
that a waiter and a waitee can group commit together with a single fsync()
in both binlog and InnoDB. The wait is done efficiently with respect to
locking.

The patch was originally made to support TaoBao parallel replication with
in-order commit; now it will be adapted to also be used for parallel
replication of group-committed transactions.

A waiter THD registers itself with a prior waitee THD. The waiter will then
complete its commit at the earliest in the same group commit of the waitee
(when using binlog). The wait can also be done explicitly by the waitee.
2013-06-26 12:10:35 +02:00
Alexander Barkov
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
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
Alexander Barkov
1fe92fb87d Fixing the problem with my_bool_t defined two times.
(it worked fine with the modern gcc, but failed on some other compilers).


modified:
  include/my_global.h
  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_timezone.h
  sql/item_func.cc
  sql/mysqld.cc
  sql/set_var.cc
  sql/sql_plugin.cc
  sql/sql_plugin.h
  sql/sql_show.cc
  sql/sys_vars.cc
  storage/perfschema/ha_perfschema.cc
2013-06-03 11:57:34 +04:00
Alexander Barkov
d9f90dc0cc Fixing ABI template, to take into account the latest change in
the thd_time_zone_service.

modified:
  include/mysql/plugin_audit.h.pp
2013-05-27 12:38:15 +04:00
Alexander Barkov
32bd0c7d1f Adding the timezone plugin service, to convert between
MYSQL_TIME and my_time_t and back.

Using the new service instead of direct access to thd.

added:
  include/mysql/service_thd_timezone.h
  libservices/thd_timezone_service.c
modified:
  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/service_versions.h
  libservices/CMakeLists.txt
  sql/sql_class.cc
  sql/sql_plugin_services.h
  storage/connect/value.cpp
2013-05-24 19:09:59 +04:00
Sergei Golubchik
b9b3d5330a MDEV-260 auditing table accesses 2013-04-19 12:50:16 +02:00
Sergei Golubchik
a9035be5b7 10.0-base merge 2013-04-15 15:09:22 +02:00
Sergei Golubchik
48bb551328 remove the service for installing the closed-source mysql thread pool plugin 2013-04-07 14:50:01 +02:00
Michael Widenius
068c61978e Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
Vladislav Vaintroub
41013f16a0 MDEV-156 Threadpool - add thd_wait_begin/thd_wait_end to the network IO functions 2013-02-19 20:44:33 +01:00