summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-11557 port MySQL-5.7 JSON tests to MariaDB.Alexey Botchkov2017-01-241-2/+23
| | | | json_no_table.test ported.
* Make atomic writes generalSergei Golubchik2017-01-111-0/+8
| | | | | | | | | | - Atomic writes are enabled by default - Automatically detect if device supports atomic write and use it if atomic writes are enabled - Remove ATOMIC WRITE options from CREATE TABLE - Atomic write is a device option, not a table options as the table may crash if the media changes - Add support for SHANNON SSD cards
* Improve mysys/hash by caching hash_nrMonty2017-01-111-1/+1
| | | | | | | This is done without using any additional memory Added internal test case This is similar to MDEV-7716
* MDEV-11713 Optimize DBUG_PRINT and introduce DBUG_LOGMarko Mäkelä2017-01-051-4/+14
| | | | | | | | | | | | | MariaDB Server is unnecessarily evaluating the arguments of DBUG_PRINT() macros when the label is not defined. The macro DBUG_LOG() for C++ operator<< output which was added for InnoDB diagnostics in MySQL 5.7 is missing from MariaDB. Unlike the MySQL 5.7 implementation, MariaDB will avoid allocating and initializing the output string when the label is not defined. Introduce DBUG_OUT("crypt") and DBUG_OUT("checksum") for some InnoDB diagnostics, replacing some use of ib::info().
* Merge branch '10.1' into 10.2Sergei Golubchik2016-12-297-25/+5
|\
| * Merge branch '10.0' into 10.1Sergei Golubchik2016-12-111-0/+3
| |\
| | * MDEV-11343 LOAD DATA INFILE fails to load data with an escape character ↵Alexander Barkov2016-11-291-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | followed by a multi-byte character Partially backporting MDEV-9874 from 10.2 to 10.0 READ_INFO::read_field() raised the ER_INVALID_CHARACTER_STRING error when reading an escape character followed by a multi-byte character. Raising wellformedness errors in READ_INFO::read_field() was wrong, because the main goal of READ_INFO::read_field() is to *unescape* the data which was presumably escaped using mysql_real_escape_string(), using the same character set with the one specified in "LOAD DATA INFILE ... CHARACTER SET ..." (or assumed by default). During LOAD DATA, multi-byte characters are not always scanned as a single entity! In case of escaped data, parts of a multi-byte character can be scanned on different loop iterations. So the old code erroneously tested welformedness in the middle of a multi-byte character. Moreover, the data after unescaping can go into a BLOB field, not a text field. Wellformedness tests are meaningless in this case. Ater this patch, wellformedness is only checked later, during Field::store(str,length,cs) time. The loop that scans bytes only makes sure to revert the changes made by mysql_real_escape_string(). Note, in some cases users can supply data which did not really go through mysql_real_escape_string() and was escaped by some other means, or was not escaped at all. The file reported in this MDEV contains the string "\ä", which is an example of such improperly escaped data, as - either there should be two backslashes: "\\ä" - or there should be no backslashes at all: "ä" mysql_real_escape_string() could not generate "\ä".
| * | MDEV-10759 Fix Aria to support 2-byte collation IDsMonty2016-12-022-2/+2
| | | | | | | | | | | | | | | | | | | | | - Used same fix as for MyISAM: High level collation byte stored in unused bit_end position. - Moved language from header to base_info - Removed unused bit_end part in HA_KEY_SEG
| * | Merge branch '10.0-galera' into 10.1Sergei Golubchik2016-11-022-18/+0
| |\ \
| | * \ Merge tag 'mariadb-10.0.28' into 10.0-galeraNirbhay Choubey2016-10-284-22/+3
| | |\ \ | | | |/
| | | * MDEV-10951 Field_newdate::cmp access violationVladislav Vaintroub2016-10-252-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The crash is caused by macro uint3korr() accessing memory (1 byte) past the end of allocated page. The macro is written such it reads 4 bytes instead of 3 and discards the value of the last byte. However, it is not always guaranteed that all uint3korr accesses will be valid (i.e that the caller allocates an extra byte after the value). In particular, the tree in Item_func_group_concat does not account for any extra bytes that it would need for comparison of keys in some cases (Field_newdate::cmp, Field_medium::cmp) The fix change uint3korr so it does not access extra bytes.
| | * | Merge branch '10.0' into 10.0-galeraNirbhay Choubey2016-08-243-3/+3
| | |\ \
| | * \ \ Merge tag 'mariadb-10.0.26' into 10.0-galeraNirbhay Choubey2016-06-243-2/+9
| | |\ \ \
| | * \ \ \ Merge branch '10.0' into 10.0-galeraNirbhay Choubey2016-04-292-2/+2
| | |\ \ \ \
| * | \ \ \ \ Merge branch '10.0' into 10.1Sergei Golubchik2016-09-282-4/+3
| |\ \ \ \ \ \ | | | |_|_|_|/ | | |/| | | |
| | * | | | | Merge branch '5.5' into 10.0Sergei Golubchik2016-09-272-4/+3
| | |\ \ \ \ \ | | | |_|_|_|/ | | |/| | | |
| | | * | | | MDEV-10725 Server 10.1.17 fails to build using clang with c++11Sergei Golubchik2016-09-261-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | my_offsetof() returns a difference of two pointers, it must use the appropriate return type (my_ptrdiff_t, not size_t)
| | | * | | | don't use my_copystat in the serverSergei Golubchik2016-09-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it was supposed to be used in command-line tools only. Different fix for 4e5473862e: Bug#24388746: PRIVILEGE ESCALATION AND RACE CONDITION USING CREATE TABLE
* | | | | | | MDEV-11562 Assertion `js->state == JST_VALUE' failed in ↵Alexey Botchkov2016-12-161-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | check_contains(json_engine_t*, json_engine_t*). check_contains() fixed. When an item of an array is a complex structure, it can be half-read after the end of the recursive check_contains() call. So we just manually get to it's ending.
* | | | | | | MDEV-11470 JSON_KEYS accepts arguments in invalid format.Alexey Botchkov2016-12-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Now JSON functions return warnings if arguments are invalid.
* | | | | | | MDEV-11066 use MySQL terminology for "virtual columns"Sergei Golubchik2016-12-121-0/+6
| | | | | | |
* | | | | | | MDEV-5800 MyISAM support for indexed vcolsSergei Golubchik2016-12-122-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * don't issue an error for ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN * support keyread on vcols * callback into the server to compute vcol values from mi_check/mi_repair * DMLs just work. Automatically.
* | | | | | | cleanup: minor issues in MyISAMSergei Golubchik2016-12-121-8/+0
| | | | | | |
* | | | | | | cleanup: my_strerrorSergei Golubchik2016-12-121-1/+1
| | | | | | |
* | | | | | | cleanup: fix a commentSergei Golubchik2016-12-121-1/+1
| | | | | | |
* | | | | | | MDEV-11453 JSON_CONTAINS returns incorrect values.Alexey Botchkov2016-12-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The weird logic of json_contains was implemented.
* | | | | | | MDEV-11469 JSON_SEARCH returns incorrect results.Alexey Botchkov2016-12-091-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Support for '**' in json path expressions added.
* | | | | | | MDEV-11461 JSON_TYPE does not recognize integer/double types.Alexey Botchkov2016-12-051-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Integer/Double recognition added.
* | | | | | | MDEV-11359 Implement IGNORE for bulk operationOleksandr Byelkin2016-11-292-2/+4
| | | | | | |
* | | | | | | Made all capability bit constants to be ULL. All new MariaDBLawrin Novitsky2016-11-241-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | capabilities(in upper 32bits) were sent as 0 on 32bit Windows. They were reset because CLIENT_SSL, CLIENT_COMPRESS and CLIENT_SSL_VERIFY_SERVER_CERT were defined as UL Plus MARIADB_CLIENT_STMT_BULK_OPERATIONS was defined as 1UL << 34, and that is undefined operation.
* | | | | | | MDEV-9143 JSON_xxx functions.Alexey Botchkov2016-11-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rest of mysql/json functions implemented. CAST AS JSON implemented.
* | | | | | | MDEV-9114: Bulk operations (Array binding)Oleksandr Byelkin2016-11-022-11/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (+ default values)
* | | | | | | MDEV-8791 - AIX: Unresolved Symbols during linkingSergey Vojtovich2016-10-313-57/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean-up nolock.h: it doesn't serve any purpose anymore. Appropriate code moved to x86-gcc.h and my_atomic.h. If gcc sync bultins were detected, we want to make use of them independently of __GNUC__ definition. E.g. XLC simulates those, but doesn't define __GNUC__. HS/Spider: According to AIX manual alloca() returns char*, which cannot be casted to any type with static_cast. Use explicit cast instead. MDL: Removed namemangling pragma, which didn't let MariaDB build with XLC. WSREP: _int64 seem to be conflicting name with XLC, replaced with _integer64. CONNECT: RTLD_NOLOAD is GNU extention. Removed rather meaningless check if library is loaded. Multiple dlopen()'s of the same library are permitted, and it never gets closed anyway. Except for error, which was a bug: it may close library, which can still be referenced by other subsystems. InnoDB: __ppc_get_timebase() is GNU extention. Only use it when __GLIBC__ is defined. Based on contribution by flynn1973.
* | | | | | | MDEV-11187: Server does not compile on labradorKristian Nielsen2016-10-312-4/+4
| | | | | | |
* | | | | | | fix the ABI checkvinchen2016-10-211-0/+2
| | | | | | |
* | | | | | | fix the ABI and stop slave hang problemvinchen2016-10-213-2/+3
| | | | | | |
* | | | | | | fix the code style for read_binlog_speed_limitvinchen2016-10-191-1/+0
| | | | | | |
* | | | | | | fix common test suitevinchen2016-10-191-0/+1
| | | | | | |
* | | | | | | Control the binlog read speed for compressed protocolvinchen2016-10-191-0/+1
| | | | | | |
* | | | | | | Control the Maximum speed(KB/s) to read binlog from mastervinchen2016-10-191-0/+1
| | | | | | |
* | | | | | | MDEV-9143 JSON_xxx functions.Alexey Botchkov2016-10-192-0/+357
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | strings/json_lib.c added as a JSON library. SQL frunction added with sql/item_jsonfunc.h/cc
* | | | | | | MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexesSergey Vojtovich2016-10-171-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaced InnoDB atomic operations with server atomic operations. Moved INNODB_RW_LOCKS_USE_ATOMICS - it is always defined (code won't compile otherwise). NOTE: InnoDB uses thread identifiers as a target for atomic operations. Thread identifiers should be considered opaque: any attempt to use a thread ID other than in pthreads calls is nonportable and can lead to unspecified results.
* | | | | | | MDEV-7769 MY_CHARSET_INFO refactoring# On branch 10.2Alexander Barkov2016-10-101-9/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Part 3 (final): removing MY_CHARSET_HANDLER::well_formed_len().
* | | | | | | MDEV-9736: Window functions: multiple cursors to read filesort resultSergei Petrunia2016-09-241-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for having multiple IO_CACHEs with type=READ_CACHE to share the file they are reading from. Each IO_CACHE keeps its own in-memory buffer. When doing a read or seek operation on the file, it notifies other IO_CACHEs that the file position has been changed. Make Rowid_seq_cursor use cloned IO_CACHE when reading filesort result.
* | | | | | | MDEV-10877 xxx_unicode_nopad_ci collationsAlexander Barkov2016-09-231-0/+5
| | | | | | |
* | | | | | | Merge branch '10.2' into bb-10.2-connector-c-integ-submSergei Golubchik2016-09-2114-35/+522
|\ \ \ \ \ \ \
| * | | | | | | valgrind failuresSergei Golubchik2016-09-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and a couple of collaterals: * debugging assert in my_valgrind.h * trivial cleanup in sql_union.cc
| * | | | | | | Merge branch '10.2' into bb-10.2-janSergei Golubchik2016-09-195-11/+133
| |\ \ \ \ \ \ \
| | * \ \ \ \ \ \ Merge branch '10.1' into 10.2Sergei Golubchik2016-09-093-3/+3
| | |\ \ \ \ \ \ \ | | | |/ / / / / /
| | | * | | | | | Merge branch '10.0' into 10.1Sergei Golubchik2016-08-252-2/+2
| | | |\ \ \ \ \ \ | | | | |/ / / / /