summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge MDEV-7936 into 10.1Kristian Nielsen2015-04-138-35/+289
|\
| * MDEV-7936: Assertion `!table || table->in_use == _current_thd()' failed on ↵Kristian Nielsen2015-04-135-41/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * MDEV-7668: Intermediate master groups CREATE TEMPORARY with INSERT, causing ↵Kristian Nielsen2015-04-134-13/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | parallel replication failure [This commit cherry-picked to be able to merge MDEV-7936, of which it is a pre-requisite, into both 10.0 and 10.1.] Parallel replication depends on locking (table locks, row locks, etc.) to prevent two conflicting transactions from running and committing in parallel. But temporary tables are designed to be visible only to one thread, and have no such locking. In the concrete issue, an intermediate master could commit a CREATE TEMPORARY TABLE in the same group commit as in INSERT into that table. Thus, a lower-level master could attempt to run them in parallel and get an error. More generally, we need protection from parallel replication trying to run transactions in parallel that access a common temporary table. This patch simply causes use of a temporary table from parallel replication to wait for all previous transactions to commit, serialising the replication at that point. (A more fine-grained locking could be added later, possibly. However, using temporary tables in statement-based replication is in any case normally undesirable; for example a restart of the server will lose temporary tables and can break replication). Note that row-based replication is not affected, as it does not do any temporary tables on the slave-side. This patch also cleans up the locking around protecting the list of temporary tables in Relay_log_info. This used to take the rli->data_lock at the end of every statement, which is very bad for concurrency. With this patch, the lock is not taken unless temporary tables (with statement-based binlogging) are in use on the slave.
* | MDEV-7920 main.group_min_max fails in buildbot with valgrindAlexander Barkov2015-04-132-18/+33
| |
* | Merge branch 'bb-10.1-explain-analyze' into 10.1mariadb-10.1.4Sergei Petrunia2015-04-124-37/+89
|\ \
| * | MDEV-7836: ANALYZE FORMAT=JSON should provide info about GROUP/ORDER BYSergei Petrunia2015-04-125-48/+103
| | | | | | | | | | | | | | | Fix EXPLAIN FORMAT=JSON to produce output that's not worse than the tabular form.
| * | Merge ../10.1-explain-analyze into bb-10.1-explain-analyzeSergei Petrunia2015-04-120-0/+0
| |\ \
| * \ \ Merge branch '10.1' into bb-10.1-explain-analyzeSergei Petrunia2015-04-12347-9418/+6528
| |\ \ \
* | | | | Update test results after previous pushesSergei Petrunia2015-04-123-15/+18
| |_|/ / |/| | |
* | | | Merge branch '10.1' of github.com:MariaDB/server into 10.1Sergei Petrunia2015-04-12347-9418/+6528
|\ \ \ \ | |/ / / |/| / / | |/ /
| * | mtr: make search_pattern_in_file.inc more verboseSergei Golubchik2015-04-1111-6/+32
| | | | | | | | | | | | | | | report when a pattern is found do not abort, but merely report when a pattern is not found
| * | update tokudb test results after dd8f93195Sergei Golubchik2015-04-1180-225/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that is, after commit dd8f931957e0c6fb538fffff76f40239e624096c Author: Sergei Golubchik <serg@mariadb.org> Date: Fri Apr 10 02:36:54 2015 +0200 be less annoying about sysvar-based table attributes do not *always* add them to the create table definition, but only when a sysvar value is different from a default. also, when adding them - don't quote numbers
| * | fix a crash in innodb.innodb-wl5522-zip,xtradbSergei Golubchik2015-04-112-0/+4
| | | | | | | | | | | | | | | dereferencing of the uninitialized pointer bpade->slot (when compiled without UNIV_DEBUG)
| * | Merge branch '10.1' into bb-10.1-sergSergei Golubchik2015-04-1043-146/+11763
| |\ \
| | * | A cleanup for the contributed patch forAlexander Barkov2015-04-103-5/+23
| | | | | | | | | | | | | | | | MDEV-7816 ALTER with DROP INDEX and ADD INDEX .. COMMENT='comment2' ignores the new comment
| | * | Merge branch 'MDEV-7816' of git://github.com/f4rnham/server into 10.1Alexander Barkov2015-04-103-0/+25
| | |\ \
| | | * | MDEV-7816 ALTER with DROP INDEX and ADD INDEX .. COMMENT='comment2' ignores ↵f4rnham2015-03-263-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the new comment Consider two indexes different if their comments differ
| * | | | add encryption plugins to deb packagesSergei Golubchik2015-04-103-0/+4
| | | | |
| * | | | move debug_ and example_key_management plugins to test componentSergei Golubchik2015-04-102-2/+2
| | | | |
| * | | | smarter MY_CHECK_AND_SET_COMPILER_FLAGSergei Golubchik2015-04-101-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a flag is supported only for C or C++ - add it to the corresponding compiler option list. Old behavior was to add always to both, but only if supported in both.
| * | | | disable scrubbing tests on windowsSergei Golubchik2015-04-103-0/+3
| | | | | | | | | | | | | | | | | | | | unportable, use grep
| * | | | fix "use mutex before initialization" bug in example_km pluginSergei Golubchik2015-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | that for some reasons worked on linux, but crashed on windows
| * | | | add support for --innodb-encrypt-tables=FORCESergei Golubchik2015-04-1014-35/+143
| | | | | | | | | | | | | | | | | | | | this will prevent user from creating tables with ENCRYPTED=OFF
| * | | | mtr: *.opt files, always enable innodb-encrypt-logSergei Golubchik2015-04-109-13/+13
| | | | | | | | | | | | | | | | | | | | because one is supposed always to use it with innodb-encrypt-tables
| * | | | allow srv_encrypt_tables and ENCRYPTED=YES to be used togetherSergei Golubchik2015-04-102-40/+19
| | | | |
| * | | | rename table attribute ENCRYPTION=ON/OFF to ENCRYPTED=YES/NOSergei Golubchik2015-04-1020-105/+105
| | | | |
| * | | | s/innodb_default_encryption_key/innodb_default_encryption_key_id/Sergei Golubchik2015-04-1012-164/+14
| | | | | | | | | | | | | | | | | | | | | | | | | and make it a session variable, not global, as any decent default sysvar for a table attribute should be
| * | | | change ENCRYPTION_KEY_ID to be HA_TOPTION_SYSVARSergei Golubchik2015-04-103-32/+24
| | | | | | | | | | | | | | | | | | | | instead of manually implenting "default from a sysvar" in the code
| * | | | be less annoying about sysvar-based table attributesSergei Golubchik2015-04-106-37/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | do not *always* add them to the create table definition, but only when a sysvar value is different from a default. also, when adding them - don't quote numbers
| * | | | SET STATEMENT timestamp=xxx ....Sergei Golubchik2015-04-095-42/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix sys_var->is_default() method (that was using default_val property in a global sys_var object to track per-session state): * move timestamp to a dedicated Sys_var_timestamp class (in fact, rename Sys_var_session_special_double to Sys_var_timestamp) * make session_is_default a virtual method with a special implementation for timestamps * other variables don't have a special behavior for default values and can have session_is_default() to be always false.
| * | | | Store the key id in the tablespace and read it backSergei Golubchik2015-04-0910-32/+52
| | | | |
| * | | | Add encryption key id to the API as a distinct conceptSergei Golubchik2015-04-0927-143/+196
| | | | | | | | | | | | | | | | | | | | which is separate from the encryption key version
| * | | | Merge branch 'bb-10.1-jan-encryption' into bb-10.1-sergSergei Golubchik2015-04-09108-4898/+3390
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With changes: * update tests to pass (new encryption/encryption_key_id syntax). * not merged the code that makes engine aware of the encryption mode (CRYPT_SCHEME_1_CBC, CRYPT_SCHEME_1_CTR, storing it on disk, etc), because now the encryption plugin is handling it. * compression+encryption did not work in either branch before the merge - and it does not work after the merge. it might be more broken after the merge though - some of that code was not merged. * page checksumming code was not moved (moving of page checksumming from fil_space_encrypt() to fil_space_decrypt was not merged). * restored deleted lines in buf_page_get_frame(), otherwise innodb_scrub test failed.
| | * | | | Fix test failure on these scrub tests.Jan Lindström2015-04-072-28/+13
| | | | | |
| | * | | | InnoDB/XtraDB Encryption cleanupJan Lindström2015-04-0737-437/+466
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Step 5: -- Rename encryption_key -> encryption_key_id -- Remove unnecessary code -- Fix few bugs found -- Fix test cases and results files
| | * | | | InnoDB/XtraDB Encryption code cleanupJan Lindström2015-04-0713-213/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Step 4: -- Review fixes -- Rename pages_page_* to pages_* -- Remove unnecessary code
| | * | | | Encryption cleanupJan Lindström2015-04-0730-186/+676
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Step 3: -- Make encrytion_algorithm changeable by SUPER -- Remove AES_ECB method from encryption_algorithms -- Support AES method change by storing used method on InnoDB/XtraDB objects -- Store used AES method to crypt_data as different crypt types -- Store used AES method to redo/undo logs and checkpoint -- Store used AES method on every encrypted page after key_version -- Add test
| | * | | | InnoDB/XtraDB Encryption cleanupJan Lindström2015-04-0731-570/+824
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Step 2: -- Introduce temporal memory array to buffer pool where to allocate temporary memory for encryption/compression -- Rename PAGE_ENCRYPTION -> ENCRYPTION -- Rename PAGE_ENCRYPTION_KEY -> ENCRYPTION_KEY -- Rename innodb_default_page_encryption_key -> innodb_default_encryption_key -- Allow enable/disable encryption for tables by changing ENCRYPTION to enum having values DEFAULT, ON, OFF -- In create table store crypt_data if ENCRYPTION is ON or OFF -- Do not crypt tablespaces having ENCRYPTION=OFF -- Store encryption mode to crypt_data and redo-log
| | * | | | InnoDB/XtraDB Encryption cleanup.Jan Lindström2015-04-0764-3957/+2450
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Step 1: -- Remove page encryption from dictionary (per table encryption will be handled by storing crypt_data to page 0) -- Remove encryption/compression from os0file and all functions before that (compression will be added to buf0buf.cc) -- Use same CRYPT_SCHEME_1 for all encryption methods -- Do some code cleanups to confort InnoDB coding style
| * | | | | fix log_blocks_crypt() to actually decrypt the encrypted logSergei Golubchik2015-04-092-34/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It used to double-encrypt it, relying on the fact that second encrypt() call was (like XOR) negating the effect of the first one.
| * | | | | update XtraDB/InnoDB plugin maturity to match the serverSergei Golubchik2015-04-095-70/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | because of encryption changes - make it beta and let it mature together with the server
| * | | | | make innodb_encryption_debug test more robustSergei Golubchik2015-04-092-12/+20
| | | | | |
| * | | | | clarify/simplify new innodb sysvars: help textsSergei Golubchik2015-04-093-12/+16
| | | | | |
| * | | | | clarify/simplify new innodb sysvars: innodb-scrub-force-testingSergei Golubchik2015-04-098-122/+122
| | | | | | | | | | | | | | | | | | | | | | | | rename to innodb-debug-force-scrubbing
| * | | | | clarify/simplify new innodb sysvars: innodb-scrub-log-intervalSergei Golubchik2015-04-0910-113/+103
| | | | | | | | | | | | | | | | | | | | | | | | rename to innodb-scrub-log-speed
| * | | | | small cleanups as per reviewSergei Golubchik2015-04-098-78/+11
| | | | | |
| * | | | | remove now-empty my_aes.{h,cc}Sergei Golubchik2015-04-0916-164/+100
| | | | | | | | | | | | | | | | | | | | | | | | move remaning defines to my_crypt, add MY_ namespace prefix
| * | | | | renames to follow single consistent naming styleSergei Golubchik2015-04-0932-193/+198
| | | | | | | | | | | | | | | | | | | | | | | | with namespace prefixes
| * | | | | remove wrappers in encryption_keys.ccSergei Golubchik2015-04-0910-179/+68
| | | | | | | | | | | | | | | | | | | | | | | | invoke plugin methods directly
| * | | | | encryption plugin controls the encryptionSergei Golubchik2015-04-0936-477/+405
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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