- 17 Feb, 2023 9 commits
-
-
Monty authored
SELECT DISTINCT did not work with expressions with sum functions. Distinct was only done on the values stored in the intermediate temporary tables, which only stored the value of each sum function. In other words: SELECT DISTINCT sum(a),sum(b),avg(c) ... worked. SELECT DISTINCT sum(a),sum(b) > 2,sum(c)+sum(d) would not work. The later query would do ONLY apply distinct on the sum(a) part. Reviewer: Sergei Petrunia <sergey@mariadb.com> This was fixed by extending remove_dup_with_hash_index() and remove_dup_with_compare() to take into account the columns in the result list that where not stored in the temporary table. Note that in many cases the above dup removal functions are not used as the optimizer may be able to either remove duplicates early or it will discover that duplicate remove is not needed. The later happens for example if the group by fields is part of the result. Other things: - Backported from 11.0 the change of Sort_param.tmp_buffer from char* to String. - Changed Type_handler::make_sort_key() to take String as a parameter instead of Sort_param. This was done to allow make_sort_key() functions to be reused by distinct elimination functions. This makes Type_handler_string_result::make_sort_key() similar to code in 11.0 - Simplied error handling in remove_dup_with_compare() to remove code duplication.
-
Anel Husakovic authored
```------------------------------ File: `mysqltest` ``` ------------------------------ - Coverity (SIZEOF_MISMATCH): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074863&mergedDefectId=972322 Function `qsort` have to use size of element that is `uchar *` - Coverity (REVERSE_INULL): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074524&mergedDefectId=1519693&fileStart=3376&fileEnd=3625 First check if null and then use `strlen`, not reversed. - FALSE POSITIVES - Coverity (TAINTED_SCALAR): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074760&mergedDefectId=1519321 - Coverity (CHECKED_RETURN): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074692&mergedDefectId=971714 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53072839&mergedDefectId=971715 - Coverity (FORWARD_NULL): There is already issued DBUG_ASSERT(query_end) few lines before https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074002&mergedDefectId=971916&eventId=53074002-5 - Coverity (OVERRUN): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074470&mergedDefectId=1519697 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074862&mergedDefectId=1520391 `uint64_max` and `SIZE_MAX` (max for `size_t`) are same as `count` argument for `memcmp`. - Coverity (RESOURCE_LEAK): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074163&mergedDefectId=1519889&eventId=53074163-446 - INTENTION: - Coverity (SIZEOF_MISMATCH): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728385&defectInstanceId=53074650&mergedDefectId=1520109 `len` argument is used only in printing so it is not making impact (may be removed as an alternative). In this example size of pointer (8B) is used, that is not the size of value that pointer points to.
-
Anel Husakovic authored
```------------------------------ File: `mysqlslap` ``` ------------------------------ - Coverity (CHECKED_RETURN): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728428&defectInstanceId=53073524&mergedDefectId=1520114 - FALSE POSITIVES - Coverity (DC.WEAK_CRYPTO) (`random()`): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728428&defectInstanceId=53073112&mergedDefectId=1225806 https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728428&defectInstanceId=53074491&mergedDefectId=1409160 https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728428&defectInstanceId=53074151&mergedDefectId=1409180 https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728428&defectInstanceId=53073799&mergedDefectId=1409183 - Coverity (TAINTED_SCALAR): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728428&defectInstanceId=53074667&mergedDefectId=1519586 - Coverity (UNINT): - Coverity (BAD_FREE): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728428&defectInstanceId=53074415&mergedDefectId=1520371
-
Anel Husakovic authored
-------------------------------- File: `mysqldump`: -------------------------------- -Coverity (`BAD_SHIFT`): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53073433&mergedDefectId=1211186&eventId=53073433-25 `mysqldump` - Error obtained by coverity is implication of type conversion. It may happen that function `find_type` returns -1 which is assigned to `uint` that gets converted by compiler to max (UINT_32/64). In that situation left bit shift may lead to UB. Converting from `uint` to `int` will solve the problem. - Coverity (`RESOURCE_LEAK`): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53072912&mergedDefectId=1519239 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53073706&mergedDefectId=1519368 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53073560&mergedDefectId=1519655 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53074494&mergedDefectId=1519822&fileStart=4001&fileEnd=4250 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53074999&mergedDefectId=1519915&eventId=53074999-53 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53075060&mergedDefectId=1519964 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53073268&mergedDefectId=1519967 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53073015&mergedDefectId=1520164 `mysqldump` - in case of error memory should be freeed. - Coverity (`UNINT`) - FALSE POSITIVES: - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53074364&mergedDefectId=1519587&eventId=53074364-10 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53072619&mergedDefectId=1519684&eventId=53072619-1 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53073256&mergedDefectId=1519722 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53074251&mergedDefectId=1519979 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53074996&mergedDefectId=1520021 - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728415&defectInstanceId=53073425&mergedDefectId=1520166&eventId=53073425-9 --------------------------------- File: `mysqladmin` --------------------------------- - Coverity (PRECEDANCE_ERROR) a.k.a MDEV-15736: https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728425&defectInstanceId=53074187&mergedDefectId=1519944 - Coverity (BAD_FREE) - FALSE POSITIVE: https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728425&defectInstanceId=53074614&mergedDefectId=1520042 --------------------------------- File: `mysqlimport` --------------------------------- - FALSE POSITIVES - Coverity (TAINTED_SCALAR): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/ fileInstanceId=231728411&defectInstanceId=53074012&mergedDefectId=1519158&eventId=53074012-6 - Coverity (UNINT): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728411&defectInstanceId=53072860&mergedDefectId=1520020 --------------------------------- File: `mysqlshow` --------------------------------- - FALSE POSITIVES - Coverity (TAINTED_SCALAR): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728418&defectInstanceId=53074361&mergedDefectId=1519232&eventId=53074361-4 - Coverity (UNINT): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728411&defectInstanceId=53072860&mergedDefectId=1520020 - Coverity (BAD_FREE): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728418&defectInstanceId=53073408&mergedDefectId=1519972
-
Anel Husakovic authored
```------------------------------ File: `mysqlcheck` ``` ------------------------------ - Coverity (FORWARD_NULL): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728409&defectInstanceId=53075052&mergedDefectId=1520314&eventId=53075052-7 `mysqlcheck` - make sure `op` is non-null - Coverity (TAINTED_SCALAR) - FALSE POSITIVES: https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728409&defectInstanceId=53074482&mergedDefectId=1519904
-
Anel Husakovic authored
```------------------------------ File: `mysqlbinlog` ``` ------------------------------ - Coverity (FORWARD_NULL): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728438&defectInstanceId=53074517&mergedDefectId=1519690&eventId=53074517-46 `mysqlbinlog` - for `opt_raw_mode` file is set to 0, make sure it opened before.
-
Anel Husakovic authored
```------------------------------ File: `mysqladmin` ``` ------------------------------ - Coverity (PRINTF_ARGS): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728412&defectInstanceId=53073308&mergedDefectId=1520228&eventId=53073308-0 `mysql_upgrade` - extra argument to printf format specifiera - Coverity (TAINTED_SCALAR) - FAlSE POSITIVE: https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728412&defectInstanceId=53072897&mergedDefectId=1519349
-
Anel Husakovic authored
```------------------------------ File: `mysql` ``` ------------------------------ - Coverity (RESOURCE_LEAK): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53073025&mergedDefectId=1520090&eventId=53073025-15 `mysql`: memory allocated by `mysql_fetch_row` is not freed. - FALSE POSITIVES: - Coverity (TAINTED_SCALAR): - https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53074559&mergedDefectId=1520403 - Coverity (COPY_PASTE_ERROR): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53074521&mergedDefectId=1520300 - Coverity (STRING_NULL): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53072524&mergedDefectId=1519374 - Coverity (CHECKED_RETURN): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53074932&mergedDefectId=971708 - INTENTIONAL: - Coverity (UNINIT): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53074758&mergedDefectId=1519932 https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53073939&mergedDefectId=1519738 - Coverity(BAD_FREE): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53073938&mergedDefectId=1519491 https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728394&defectInstanceId=53074819&mergedDefectId=1519462 --------------------------------- File: `mysql_plugin` --------------------------------- - Coverity (FORWARD_NULL): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728420&defectInstanceId=53074485&mergedDefectId=971915 Dereference after null check when using `fclose`. - FALSE POSITIVES: - Coverity (STRING_OVERFLOW): https://scan5.scan.coverity.com/reports.htm#v58936/p10357/fileInstanceId=231728420&defectInstanceId=53075014&mergedDefectId=972410 - Additionally fix typo
-
Fabrice Fontaine authored
Fix the following build failure with libressl >= 3.5.0: In file included from /tmp/instance-10/output-1/build/mariadb-10.3.36/vio/viosslfactories.c:18: /tmp/instance-10/output-1/build/mariadb-10.3.36/vio/viosslfactories.c: In function 'get_dh2048': /tmp/instance-10/output-1/build/mariadb-10.3.36/include/ssl_compat.h:68:45: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'} 68 | #define DH_set0_pqg(D,P,Q,G) ((D)->p= (P), (D)->g= (G)) | ^~ Fixes: - http://autobuild.buildroot.org/results/524198344aafca58d214537af64c5961c407b0f8Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-
- 16 Feb, 2023 1 commit
-
-
Thirunarayanan Balathandayuthapani authored
- MY_I_S_MAYBE_NULL field attributes is added PAGE_NO and SPACE in innodb_sys_index table. By doing this, InnoDB can set null for these fields when it encounters discarded tablespace
-
- 15 Feb, 2023 5 commits
-
-
Sergei Petrunia authored
Final corrections: - Remove incorrect tracing, "rowid_filter_skipped" - Put the worst_seeks sanity check back
-
Igor Babaev authored
Correction over the last patch for this MDEV.
-
Haidong Ji authored
When one session SELECT ... FOR UPDATE and holds the lock, subsequent sessions that SELECT ... FOR UPDATE will wait to get the lock. Currently, that event is labeled as `wait/io/table/sql/handler`, which is incorrect. Instead, it should have been `wait/lock/table/sql/handler`. Two factors contribute to this bug: 1. Instrumentation interface and the heavy usage of `TABLE_IO_WAIT` in `sql/handler.cc` file. See interface [^1] for better understanding; 2. The balancing act [^2] of doing instrumentation aggregration _AND_ having good performance. For example, EVENTS_WAITS_SUMMARY... is aggregated using EVENTS_WAITS_CURRENT. Aggregration needs to be based on the same wait class, and the code was overly aggressive in label a LOCK operation as an IO operation in this case. The proposed fix is pretty simple, but understanding the bug took a while. Hence the footnotes below. For future improvement and refactoring, we may want to consider renaming `TABLE_IO_WAIT` and making it less coarse and more targeted. Note that newly added test case, events_waits_current_MDEV-29091, initially didn't pass Buildbot CI for embedded build tests. Further research showed that other impacted tests all included not_embedded.inc. This oversight was fixed later. All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc. [^1]: To understand `performance_schema` instrumentation interface, I found this URL is the most helpful: https://dev.mysql.com/doc/dev/mysql-server/latest/PAGE_PFS_PSI.html [^2]: The best place to understand instrumentation projection, composition, and aggregration is through the source file. Although I prefer reading Doxygen produced html file, but for whatever reason, the rendering is not ideal. Here is link to 10.6's pfs.cc: https://github.com/MariaDB/server/blob/10.6/storage/perfschema/pfs.cc
-
Daniel Black authored
MDEV-28227 added the error messages in simplified characters. Lets use these for those running a zh_CN profile. From Haidong Ji in the MDEV, Taiwan/Hong Kong (zh_TW/zh_HK) would expect traditional characters so this is left for when we have these.
-
Robin Newhouse authored
Add .gitlab-ci.yml file to earliest supported branch to enable automated building and testing for all MariaDB major branches. For 10.4 we use the bundled SSL to build MariaDB when the platform does not have OpenSSL 1.1 available. This requires the installation of gnutls-devel as a dependency of MariaDB Connector/C. OpenSSL 3.0 support was backported to MariaDB 10.5 (see https://github.com/MariaDB/server/pull/2036, f0fa40ef, 8a9c1e9c) All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
-
- 14 Feb, 2023 3 commits
-
-
Thirunarayanan Balathandayuthapani authored
- InnoDB tries to build the previous version of the record for the virtual index, but the undo log record doesn't contain virtual column information. This leads to assert failure while building the tuple.
-
Sergei Petrunia authored
ha_partition doesn't forward Rowid Filter API calls to the storage engines handling partitions. An attempt to use rowid filtering with caused either - Rowid Filter being shown in EXPLAIN but not actually used - Assertion failure when subquery code tried to disable/enable rowid filter, which was not present. Fixed by returning correct flags from ha_partition::index_flags()
-
Weijun Huang authored
-
- 10 Feb, 2023 1 commit
-
-
Daniel Black authored
As requested to the UN the country formerly known as Turkey is to be refered to as Türkiye. Reviewer: Alexander Barkov
-
- 09 Feb, 2023 5 commits
-
-
Brandon Nesterenko authored
MDEV-30608: rpl.rpl_delayed_parallel_slave_sbm sometimes fails with Seconds_Behind_Master should not have used second transaction timestamp One of the constraints added in the MDEV-29639 patch, is that only the first event after idling should update last_master_timestamp; and as long as the replica has more events to execute, the variable should not be updated. The corresponding test, rpl_delayed_parallel_slave_sbm.test, aims to verify this; however, if the IO thread takes too long to queue events, the SQL thread can appear to catch up too fast. This fix ensures that the relay log has been fully written before executing the events. Note that the underlying cause of this test failure needs to be addressed as a bug-fix, this is a temporary fix to stop test failures. To track work on the bug-fix for the underlying issue, please see MDEV-30619.
-
Igor Babaev authored
The parser code for single-table DELETE missed the call of the function LEX::check_main_unit_semantics(). As a result the the field nested level of SELECT_LEX structures remained set 0 for all non-top level selects. This could lead to different kind of problems. In particular this did not allow to determine properly the selects where set functions had to be aggregated when they were used in inner subqueries. Approved by Oleksandr Byelkin <sanja@mariadb.com>
-
Vicențiu Ciorbaru authored
This patch is the result of running run-clang-tidy -fix -header-filter=.* -checks='-*,modernize-use-equals-default' . Code style changes have been done on top. The result of this change leads to the following improvements: 1. Binary size reduction. * For a -DBUILD_CONFIG=mysql_release build, the binary size is reduced by ~400kb. * A raw -DCMAKE_BUILD_TYPE=Release reduces the binary size by ~1.4kb. 2. Compiler can better understand the intent of the code, thus it leads to more optimization possibilities. Additionally it enabled detecting unused variables that had an empty default constructor but not marked so explicitly. Particular change required following this patch in sql/opt_range.cc result_keys, an unused template class Bitmap now correctly issues unused variable warnings. Setting Bitmap template class constructor to default allows the compiler to identify that there are no side-effects when instantiating the class. Previously the compiler could not issue the warning as it assumed Bitmap class (being a template) would not be performing a NO-OP for its default constructor. This prevented the "unused variable warning".
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
- 08 Feb, 2023 2 commits
-
-
Vladislav Vaintroub authored
The -D flag was not passed to asm compiler, despite SET_PROPERTY(COMPILE_OPTIONS) The exact reason for that remains unknown. It was not seen with gcc, as nor was be reproduced on newer CMake.
-
Daniel Black authored
-
- 07 Feb, 2023 3 commits
-
-
Daniel Black authored
The existing storage/rocksdb/CMakeCache.txt defined ATOMIC_EXTRA_LIBS when atomics where required. This was determined by the toplevel configure.cmake test (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC). As build_rocksdb.cmake is included after ATOMIC_EXTRA_LIBS was set, we just need to use it. As such no riscv64 specific macro is needed in build_rocksdb.cmake. As highlighted by Gianfranco Costamagna (@LocutusOfBorg) in #2472 overwriting SYSTEM_LIBS was problematic. This is corrected in case in future SYSTEM_LIBS is changed elsewhere. Closes #2472.
-
Daniel Black authored
Normalize innodb_flush_method, the same as the service, before attempting to print it.
-
Daniel Black authored
The error string from ER_KILL_QUERY_DENIED_ERROR took a different type to ER_KILL_DENIED_ERROR for the thread id. This shows up in differences on 32 big endian arches like powerpc (Deb notation). Normalize the passing of the THD->id to its real type of my_thread_id, and cast to (long long) on output. As such normalize the ER_KILL_QUERY_DENIED_ERROR to that convention too. Note for upwards merge, convert the type to %lld on new translations of ER_KILL_QUERY_DENIED_ERROR.
-
- 06 Feb, 2023 3 commits
-
-
Oleksandr Byelkin authored
-
Daniel Bartholomew authored
-
Daniel Black authored
Warning on a normal graceful disconnnect is excessive, so lets not do it. MDEV-19282 restructed the code from 10.3 so applying this as a 10.4+ fix.
-
- 03 Feb, 2023 2 commits
-
-
Igor Babaev authored
This patch allowed transformation of EXISTS subqueries into equivalent IN predicands at the top level of WHERE conditions for multi-table UPDATE and DELETE statements. There was no reason to prohibit the transformation for such statements. The transformation provides more opportunities of using semi-join optimizations. Approved by Oleksandr Byelkin <sanja@mariadb.com>
-
Alexander Barkov authored
-
- 30 Jan, 2023 2 commits
-
-
Oleksandr Byelkin authored
-
Jan Lindström authored
Following tests do not test anymore what they intended to test deleted: suite/galera/t/MDEV-24143.test deleted: suite/galera/t/galera_bf_abort_get_lock.test
-
- 28 Jan, 2023 3 commits
-
-
Sergei Petrunia authored
Enable use of Rowid Filter optimization with eq_ref access. Use the following assumptions: - Assume index-only access cost is 50% of non-index-only access cost. - Take into account that "Eq_ref access cache" reduces the number of lookups eq_ref access will make. = This means the number of Rowid Filter checks is reduced also = Eq_ref access cost is computed using that assumption (see prev_record_reads() call), so we should use it in all cost ' computations.
-
Oleksandr Byelkin authored
-
Andrei authored
-
- 27 Jan, 2023 1 commit
-
-
Jan Lindström authored
If WSREP_ON=ON do not allow GET_LOCK and RELEASE_LOCK functions. Instead print clear error message.
-