summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* BUG#25250768: WRITING ON A READ_ONLY=ON SERVER WITHOUT SUPER PRIVILEGESergei Golubchik2017-07-183-17/+14
| | | | | simplify. add a test case.
* test case for loadxml and spacesSergei Golubchik2017-07-182-12/+12
|
* Merge remote-tracking branch 'mysql/5.5' into 5.5Sergei Golubchik2017-07-1835-112/+530
|\
| * Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLEDmysql-5.5.57Piotr Obrzut2017-06-052-26/+31
| | | | | | | | | | | | Corrected the revert. (cherry picked from commit f637e524bf9b692c3ed46d856e2beac193b42a3e)
| * Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLEDPiotr Obrzut2017-06-021-31/+0
| | | | | | | | | | | | Temporary revert of the VS2008 redist check. (cherry picked from commit 36ec550fe5fa6b2a997cb39d3b9e33988f525c96)
| * Bug#26181622 MSI BUILD FAIL DUE TO DUPLICATED FILE IDPiotr Obrzut2017-06-021-7/+22
| | | | | | | | | | | | Fixed generated mysql_server.wxs not to contain duplicates, or too long ids (cherry picked from commit bf47fb74dcc3e84057314817c56e6f8e05af094c)
| * Bug#18950197 RPL_SEMI_SYNC_UNINSTALL_PLUGIN FAILS BECAUSEVenkatesh Duggirala2017-05-252-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | RPL_SEMI_SYNC_MASTER_CLIENTS=1 Analysis: Uninstalling rpl_semi_sync_slave on slave will trigger removing the slave logic on Master which will reduce Rpl_semi_sync_master_clients by one number. But it happens asynchronously on Master. Having assert to check this value with zero will have problems on slow pb2 machines. Fix: Change assert into wait_for_status_var condition.
| * Bug #25658832 VALIDATION CHECK FOR MSVC REDIST NEEDED IN SERVER COMMUNITY MSIPiotr Obrzut2017-05-242-2/+29
| | | | | | | | Added matching redist prerequisite check to the server msi installer.
| * Bug #24595639: INCORRECT BEHAVIOR IN QUERY WITH UNION ANDSreeharsha Ramanavarapu2017-05-242-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GROUP BY Issue 1: -------- This problem occurs in the following conditions: 1) A UNION is present in the subquery of select list and handles multiple columns. 2) Query has a GROUP BY. A temporary table is created to handle the UNION. Item_field objects are based on the expressions of the result of the UNION (ie. the fake_select_lex). While checking validity of the columns in the GROUP BY list, the columns of the temporary table are checked in Item_ident::local_column. But the Item_field objects created for the temporary table don't have information like the Name_resolution_context that they belong to or whether they are dependent on an outer query. Since these members are null, incorrect behavior is caused. This can happen when such Item objects are cached to apply the IN-to-EXISTS transform for Item_row. Solution to Issue 1: -------------------- Context information of the first select in the UNION will be assigned to the new Item_field objects. Issue 2: -------- This problem occurs in the following conditions: 1) A UNION is present in the subquery of select list. 2) A column in the UNION's first SELECT refers to a table in the outer-query making it a dependent union. 3) GROUP BY column refers to the outer-referencing column. While resolving the select list with an outer-reference, an Item_outer_ref object is created to handle the outer-query's GROUP BY list. The Item_outer_ref object replaces the Item_field object in the item tree. Item_outer_ref::fix_fields will be called only while fixing the inner references of the outer query. Before resolving the outer-query, an Item_type_holder object needs to be created to handle the UNION. But as explained above, the Item_outer_ref object has not been fixed yet. Having a fixed Item object is a pre-condition for creating an Item_type_holder. Solution to Issue 2: -------------------- Use the reference (real_item()) of an Item_outer_ref object instead of the object itself while creating an Item_type_holder.
| * (no commit message)mysql-builder@oracle.com2017-05-230-0/+0
| |
| * Bug#25988681: USE-AFTER-FREE IN MYSQL_STMT_CLOSE()Harin Vadodaria2017-05-231-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: If mysql_stmt_close() encountered error, it recorded error in prepared statement but then frees memory assigned to prepared statement. If mysql_stmt_error() is used to get error information, it will result into use after free. In all cases where mysql_stmt_close() can fail, error would have been set by cli_advanced_command in MYSQL structure. Solution: Don't copy error from MYSQL using set_stmt_errmsg. There is no automated way to test the fix since it is in mysql_stmt_close() which does not expect any reply from server. Reviewed-By: Georgi Kodinov <georgi.kodinov@oracle.com> Reviewed-By: Ramil Kalimullin <ramil.kalimullin@oracle.com>
| * Bug#16212207 - LOAD XML INFILE PERFORMANCE WITH INDENTEDShishir Jaiswal2017-05-231-1/+3
| | | | | | | | | | | | | | XML Post-push fix for build failure on Linux machine sles11-x86-64bit
| * Bug# 25998635: Client does not escape the USE statementIvo Roylev2017-05-221-9/+10
| | | | | | | | | | | | | | | | | | | | When there are quotes in the USE statement, the mysql client does not correctly escape them. The USE statement is processed line by line from the client's parser, and cannot handle multi-line commands as the server. The fix is to escape the USE parameters whenever quotes are used.
| * Bug#16212207 - LOAD XML INFILE PERFORMANCE WITH INDENTEDShishir Jaiswal2017-05-161-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | XML DESCRIPTION =========== LOAD XML INFILE performance becomes painfully slow if the tags' value has any space(s) in between them. They're usually kept intentionally for indentation purpose. ANALYSIS ======== The extra spaces are calling clear_level() many a times which is having overhead of clearing taglist etc. This can be avoided altogether by skipping all such spaces. FIX === Trim all the starting whitespaces from the value before passing it to read_value()
| * Bug #25436469: BUILDS ARE NOT REPRODUCIBLETor Didriksen2017-05-162-0/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport to 5.5 Current MySQL builds, even on Pushbuild, are not reproducible; they return different results depending on which directory they are built from (and Pushbuild uses several different directories). This is because absolute paths leak into debug information, and even worse, __FILE__. The latter moves code around enough that we've actually seen sysbench changes on the order of 4% in some tests. CMake seemingly insists on using absolute paths, but we can insert our own layer between CMake and GCC to relativize all paths. Also give the right flags to get debug information reproducible and turn off build stamping. This makes the mysqld build 100% bit-for-bit reproducible between runs on my machine, even when run from different directories.
| * (no commit message)mysql-builder@oracle.com2017-05-130-0/+0
| |
| * BUG#25451091:CREATE TABLE DATA DIRECTORY / INDEX DIRECTORYNisha Gopalakrishnan2017-05-124-19/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SYMLINK CHECK RACE CONDITIONS ANALYSIS: ========= A potential defect exists in the handling of CREATE TABLE .. DATA DIRECTORY/ INDEX DIRECTORY which gives way to the user to gain access to another user table or a system table. FIX: ==== The lstat and fstat output of the target files are now stored which help in determining the identity of the target files thus preventing the unauthorized access to other files.
| * Bug#25998285 - ADD MYSQLADMIN DOCKER/MINIMAL SERVER BUILDSBalasubramanian Kandasamy2017-05-041-1/+2
| | | | | | | | - mysqladmin is needed by InnoDB Cluster, add tool to docker/minimal package.
| * Bug#25340722 - PRINT BINARY DATA AS HEX IN THE MYSQLAnushree Prakash B2017-05-033-13/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CLIENT (CONTRIBUTION) DESCRIPTION: ============ Binary data should be printed as hex in the mysql client when the option binary-as-hex is enabled. ANALYSIS: ========= The fix deals only with mysql command line client. It does not change, at all, the data sent to the applications. Printing binary data as hex also allows to use the output in the where clause of the query. FIX: ==== A new option 'binary-as-hex' is introduced to print the binary contents as hex in the mysql client. The option is disabled by default. When the option is enabled, we convert the binary data to hex before printing the contents irrespective of whether it is in tabular, xml or html format.
| * Merge branch 'mysql-5.5.56-release' into mysql-5.5Hery Ramilison2017-05-020-0/+0
| |\
| | * Bug#25942414: SSL VARIABLES USAGE WHEN LIBMYSQL IS COMPILED WITH WITH_SSL=NOmysql-5.5.56Harin Vadodaria2017-04-272-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: If libmysql is compiled with WITH_SSL=NO, --ssl-* are not useful. Solution: 1. Restricted WITH_SSL to values : bundled | yes | system 2. Made "bundled" as default value for WITH_SSL. Also, not specifying WITH_SSL or even specifying WITH_SSL=no will be treated as/converted to WITH_SSL=bundled. Reviewed-By: Tor Didriksen <tor.didriksen@oracle.com> Reviewed-By: Georgi Kodinov <georgi.kodinov@oracle.com> (cherry picked from commit 3eb2058be34d1a21771fe89ff1a0c08f156899bc)
| | * Raise version number after cloning 5.5.55Balasubramanian Kandasamy2017-04-271-1/+1
| | | | | | | | | | | | (cherry picked from commit 7df8dc750c26ead87c643f87dccba28a66cf3c9b)
| * | Raise version number after cloning 5.5.56Balasubramanian Kandasamy2017-04-271-1/+1
| | |
| * | Bug#25942414: SSL VARIABLES USAGE WHEN LIBMYSQL IS COMPILED WITH WITH_SSL=NOHarin Vadodaria2017-04-272-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: If libmysql is compiled with WITH_SSL=NO, --ssl-* are not useful. Solution: 1. Restricted WITH_SSL to values : bundled | yes | system 2. Made "bundled" as default value for WITH_SSL. Also, not specifying WITH_SSL or even specifying WITH_SSL=no will be treated as/converted to WITH_SSL=bundled. Reviewed-By: Tor Didriksen <tor.didriksen@oracle.com> Reviewed-By: Georgi Kodinov <georgi.kodinov@oracle.com>
| * | Added plugins for commercial docker rpm buildsBalasubramanian Kandasamy2017-04-251-1/+11
| | |
| * | Bug#25043674 - MYSQLACCESS SCRIPT LOADS AND EXECUTES CODEShishir Jaiswal2017-04-172-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FROM THE CURRENT DIRECTORY DESCRIPTION =========== When 'mysqlaccess' tool is run, it reads (and executes) the content of its configuration file 'mysqlaccess.conf' from the current directory. This is not a recommended behaviour as someone with ill intentions can insert malicious instructions into this file which could be executed whenever this tool is run. ANALYSIS ======== The configuration file is presently looked for, in the following folders (in given order): 1. Current directory 2. SYSCONFDIR //This gets expanded 3. /etc/ Owing to the reasons mentioned above, we should not permit the file to be in the current directory. Since the other two folders are assumed to be accessible only to authorized people, the config file is safe to be read from there. FIX === Modified the script so that it looks for the config file now in the following two folders (in the given order): 1. SYSCONFDIR 2. /etc/ If it's absent from above locations but present in current directory, an error is thrown asking the user to move the file to one of the above locations and retry. NOTE ==== The location paths and their precedence are not documented for this tool. It needs to be noted as part of the associated documentation.
| * | Merge branch 'mysql-5.5.55-release' into mysql-5.5Gipson Pulla2017-04-100-0/+0
| |\ \ | | |/
| * | (no commit message)mysql-builder@oracle.com2017-04-100-0/+0
| | |
| * | BUG#25250768: WRITING ON A READ_ONLY=ON SERVER WITHOUT SUPERNisha Gopalakrishnan2017-04-071-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PRIVILEGE. Backport from mysql-5.7 to mysql-5.5 and mysql-5.6. BUG#13969578: TEMPORARY TABLE IN A DATABASE ON A READ-ONLY INSTANCE CAN BE OVERWRITTEN Analysis: ======== Creation or modification of a persistent table by a non-super user is NOT ALLOWED in read_only mode. Only TEMPORARY tables are allowed to be created or modified in read_only mode. But the creation of a persistent table was being allowed when a temporary table of the same name existed. The routine which denies updating a non-temporary table in a read_only mode does not handle the case of creation of a regular table when a temporary table of the same exists. Fix: === Handled the condition where an attempt is made to create a persistent table having the same name as that of the temporary table. Hence the creation of a persistent table by a non-super user when a temporary table of the same exists is denied under read_only mode.
| * | BUG#25719975 SHEBANG HARD CODED AS /USR/BIN/PERL IN SCRIPTS, BREAKS ON FREEBSDTerje Rosten2017-03-2815-38/+33
| | | | | | | | | | | | Use cmake variable to adjust shebang to platform.
| * | (no commit message)mysql-builder@oracle.com2017-03-230-0/+0
| | |
| * | Bug #25717383: MYSQLDUMP MAY EXECUTE ANY ARBITRARY QUERYBharathy Satish2017-03-173-12/+155
| | | | | | | | | | | | | | | | | | | | | While writing comments if database object names has a new line character, then next line is considered a command, rather than a comment. This patch fixes the way comments are constructed in mysqldump.
| * | Bug #25447551: HANDLE_FATAL_SIGNAL (SIG=11) INKailasnath Nagarkar2017-03-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FT_BOOLEAN_CHECK_SYNTAX_STRING ISSUE: my_isalnum macro used for checking if character is alphanumeric dereferences uninitialized pointer in default character set structure resulting in server exiting abnormally. FIX: Used standard isalnum function instead of macro my_isalnum.
| * | BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING ↵Ramil Kalimullin2017-03-132-2/+5
| | | | | | | | | | | | | | | | | | SSL CONNECTION Changed MYSQL_OPT_SSL_MODE to be the same as in 5.6 (ABI compatibility).
| * | BUG#24807826: UINT3KORR SHOULD STOP READING FOUR INSTEAD OFKarthik Kamath2017-03-101-1/+1
| | | | | | | | | | | | | | | | | | THREE BYTES ON X86 Post push fix for resolving main.archive test failure in valgrind.
| * | BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING ↵Ramil Kalimullin2017-03-1018-55/+134
| | | | | | | | | | | | | | | | | | | | | SSL CONNECTION MYSQL_OPT_SSL_MODE option introduced. It is set in case of --ssl-mode=REQUIRED and permits only SSL connection.
| * | BUG#25364806 MYSQLD_SAFE FAILING TO START IF DATADIR GIVEN IS NOT ABSOLUTE PATHTerje Rosten2017-03-091-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | mysqld_safe is working on real files, however passing these file paths as is to mysqld as options gives different meaning when paths are relative. mysqld_safe uses current working directory as basedir for relative paths, while mysqld uses $datadir as basedir.
| * | BUG#24807826: UINT3KORR SHOULD STOP READING FOUR INSTEAD OFKarthik Kamath2017-03-093-23/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | THREE BYTES ON X86 Analysis: ========= The macro uint3korr reads 4 bytes of data instead of 3 on on x86 machines. Multiple definitions were created for this macro for optimization in WIN32. The idea was to optimize reading of 3 byte ints by reading an ordinary int and masking away the unused byte. However this is an undefined behavior. It will be an issue unless users are aware of allocating an extra byte for using this macro. Fix: ==== Removing the definition which reads 4 bytes of data. The only definition of this macro would now read just 3 bytes of data thus prohibiting the usage of an extra byte. Note: ===== This is a backport of Patches #5 and #6 for Bug#17922198.
| * | Bug#24901077: RESET SLAVE ALL DOES NOT ALWAYS RESET SLAVESujatha Sivakumar2017-02-287-15/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: ============ If you have a relay log index file that has ended up with some relay log files that do not exists, then RESET SLAVE ALL is not enough to get back to a clean state. Analysis: ========= In the bug scenario slave server is in stopped state and some of the relay logs got deleted but the relay log index file is not updated. During slave server restart replication initialization fails as some of the required relay logs are missing. User executes RESET SLAVE/RESET SLAVE ALL command to start a clean slave. As per the documentation RESET SLAVE command clears the master info and relay log info repositories, deletes all the relay log files, and starts a new relay log file. But in a scenario where the slave server's Relay_log_info object is not initialized slave will not purge the existing relay logs. Hence the index file still remains in a bad state. Users will not be able to start the slave unless these files are cleared. Fix: === RESET SLAVE/RESET SLAVE ALL commands should do the cleanup even in a scenario where Relay_log_info object initialization failed. Backported a flag named 'error_on_rli_init_info' which is required to identify slave's Relay_log_info object initialization failure. This flag exists in MySQL-5.6 onwards as part of BUG#14021292 fix. During RESET SLAVE/RESET SLAVE ALL execution this flag indicates the Relay_log_info initialization failure. In such a case open the relay log index/relay log files and do the required clean up.
| * | Raise version number after cloning 5.5.55Balasubramanian Kandasamy2017-02-271-1/+1
| | |
* | | MDEV-11240: Server crashes in check_view_single_update or Assertion ↵Oleksandr Byelkin2017-07-183-1/+33
| | | | | | | | | | | | | | | | | | `derived->table' failed in mysql_derived_merge_for_insert Move table pointer for single table view (even if it is view over other view) to make the access universal.
* | | MDEV-11205 UDF_ARGS "attribute_lengths" incorrect value.Alexey Botchkov2017-07-181-0/+2
| | | | | | | | | | | | Set name_length properly in Item_idnet constructors.
* | | ma_check/mi_check: maria_repair_parallel initialization for !quickDaniel Black2017-07-182-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | end_io_call uses uninitialized values from the new_data_cache As such we the buffer 0 and check this before calling end_io_cache on it. Thanks Sergey Vojtovich for the review and for this solution. Found by Coverity (ref 972481).
* | | Add storage_engine/parts overlay for MyISAMElena Stepanova2017-07-181-0/+0
| | |
* | | MDEV-8692 prefschema test failures on ARM (on Debian build system)Alexander Barkov2017-07-176-6/+47
| | | | | | | | | | | | | | | | | | A few tests assumes that the CYCLE timer is always available, which is not true on some platforms (e.g. ARM). Fixing the tests not to reply on the CYCLE availability.
* | | change flags as it was done in MyISAMSergei Golubchik2017-07-151-3/+1
| | | | | | | | | | | | in ab785bfe5b50
* | | ma_recovery: unintentional order of operationsDaniel Black2017-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Coverity report this as: CID 971840 (#1 of 1): Operands don't affect result (CONSTANT_EXPRESSION_RESULT) result_independent_of_operands: 4 | (flags & 1) is always true regardless of the values of its operands. This occurs as the logical first operand of "?:". The C order of precidence has | of higher precidence than ?:. The intenting implies an | of the 3 terms. Adjust to intented meaning.
* | | MDEV-12144 Signal 6 crash corrupts ibd filesSergei Golubchik2017-07-153-5/+4
| | | | | | | | | | | | | | | Avoid using STDERR_FILENO. The server uses freopen(stderr), so stderr can be on any file descriptor.
* | | client: mysql - fix typeDaniel Black2017-07-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | field_names[x][y] is a pointer client/mysql.cc: In function 'void build_completion_hash(bool, bool)': client/mysql.cc:2855:37: error: invalid conversion from 'char' to 'char*' [-fpermissive] field_names[i][num_fields*2]= '\0'; Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
* | | MDEV-12136 SELECT COUNT(DISTINCT) returns the wrong value when ↵Sergei Golubchik2017-07-133-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | tmp_table_size is limited Same MDEV, second bug. Merge buffer must fit at least MERGEBUFF2 (that is, 15) key values. Because merge_index() can merge that many buffers, and merge_many_buff() leaves that many buffers unmerged.