- 02 Jul, 2020 10 commits
-
-
Monty authored
Fixed by: - Make all quick_* variable allocated according to real number keys instead of MAX_KEY - Store all the quick* items in separated allocated structure (OPT_RANGE) - Ensure we don't access any quick* variable without first checking opt_range_keys.is_set(). Thanks to this, we don't need any pre-initialization of quick* variables anymore. Some renames was done to use the new structure: table->quick_keys -> table->opt_range_keys table->quick_rows[X] -> table->opt_range[X].rows table->quick_key_parts[X] -> table->opt_range[X].key_parts table->quick_costs[X] -> table->opt_range[X].cost table->quick_index_only_costs[X] -> table->opt_range[X].index_only_cost table->quick_n_ranges[X] -> table->opt_range[X].ranges table->quick_condition_rows -> table->opt_range_condition_rows This patch should both decrease memory needed for TABLE objects (3528 -> 984 + keyinfo) and increase performance, thanks to less initializations per query, and more localized memory, thanks to the opt_range structure.
-
Monty authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MDEV-15053 inadvertently inverted the condition for invoking buf_read_ahead_linear(). buf_page_get_low(): Apply the correct condition. buf_page_optimistic_get(): Remove the read-ahead altogether. This function should never access a block for the first time.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This reverts commit e0793d38. In idiomatic C++, accessor functions should not discard qualifiers.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 01 Jul, 2020 16 commits
-
-
Oleksandr Byelkin authored
return --help option
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
- service not using "--defaults-file" can have any name not just "MySQL" - service with "--defaults-file", without datadir in them use default datadir (install_root\data)
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MemorySanitizer (clang -fsanitize=memory) requires that all code be compiled with instrumentation enabled. The only exception is the C runtime library. Failure to use instrumented libraries will cause bogus messages about memory being uninitialized. In WITH_MSAN builds, we must avoid calling getservbyname(), because even though it is a standard library function, it is not instrumented, not even in clang 10. Note: Before MariaDB Server 10.5, ./mtr will typically fail due to the old PCRE library, which was updated in MDEV-14024. The following cmake options were tested on 10.5 in commit 94d0bb4d: cmake \ -DCMAKE_C_FLAGS='-march=native -O2' \ -DCMAKE_CXX_FLAGS='-stdlib=libc++ -march=native -O2' \ -DWITH_EMBEDDED_SERVER=OFF -DWITH_UNIT_TESTS=OFF -DCMAKE_BUILD_TYPE=Debug \ -DWITH_INNODB_{BZIP2,LZ4,LZMA,LZO,SNAPPY}=OFF \ -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO \ -DWITH_SAFEMALLOC=OFF \ -DWITH_{ZLIB,SSL,PCRE}=bundled \ -DHAVE_LIBAIO_H=0 \ -DWITH_MSAN=ON MEM_MAKE_DEFINED(): An alias for VALGRIND_MAKE_MEM_DEFINED() and __msan_unpoison(). MEM_GET_VBITS(), MEM_SET_VBITS(): Aliases for VALGRIND_GET_VBITS(), VALGRIND_SET_VBITS(), __msan_copy_shadow(). InnoDB: Replace the UNIV_MEM_ macros with corresponding MEM_ macros. ut_crc32_8_hw(), ut_crc32_64_low_hw(): Use the compiler built-in functions instead of inline assembler when building WITH_MSAN. This will require at least -msse4.2 when building for IA-32 or AMD64. The inline assembler would not be instrumented, and would thus cause bogus failures.
-
Sergei Golubchik authored
mariabackup tries to allocate a buffer of page_size*page_size/4 size. for 64k page it means 1Gb, which doesn't work very well on 32-bit builders. Skip the 64k page test on 32bit.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This was actually fixed in commit e843033d and all that we need to do is to remove an unnecessary work-around.
-
Vladislav Vaintroub authored
and remove it on error Disable existing non-empty datadir for mysql_install_db.exe
-
Marko Mäkelä authored
-
Sergei Golubchik authored
* fix FindLZ4 to follow convention (LIBRARIES, not LIBRARY) * remove redundant checks from rocksdb/CMakeLists.txt * put all checks through the same macro that uniformly checks for a package, prints the message, adds definition
-
Otto Kekäläinen authored
The library finder needs to have capitals in its name so that FIND_PACKAGE will load the correct finder and actually detect that libzstd is available. Without this change the CMake would just always silently skip ZSTD since it would never find it. Simplify Debian autopkgtest RocksDB part and make it more verbose so that future regressions like this are easier to debug. Also remove QUIET from the RocksDB FIND_PACKAGE call so that it is easier to read in build logs what libraries were detected. Also add missing underscores to error messages.
-
Sergei Golubchik authored
because columnstore uses python3, so rocksdb can be picky too. python3 is present in all supported distros. and python2 is obsolete anyway.
-
Sergei Golubchik authored
1. move columnstore-as-a-submodule RPM packaging away from the submodule 2. set REQUIRES correctly, appending to existing REQUIRES 3. same for USER_FILELIST and CONFLICTS 4. set all variables in the correct scope 5. skip columnstore correctly (not when RPM or DEB, but when a plugin target is not created)
-
Patrick LeBlanc authored
- fix columnstore's python dependencies (MCOL-4114) - reduce compiler warning count from 14k to ~100 (MCOL-4030) - disable bintar builds
-
Varun Gupta authored
The issue here is for a DEPENDENT subquery that has an aggregate function in the ORDER BY clause, is wrapped inside an Item_aggregate_ref. For computation of ORDER BY we need to refer to the temp table field corresponding to this item. But in the function make_sortorder, we were explicitly casting Item_aggrgate_ref to Item_sum, which leads to us not getting the temp table field corresponding to the item.
-
- 30 Jun, 2020 9 commits
-
-
Eugene Kosov authored
MDEV-23003 INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION requires SUPER instead PROCESS privilege Fix a typo in a source code. Now real required privileges corresponds to a ones mentions in documentation. Documentation states that this table requires PROCESS privilege: https://mariadb.com/kb/en/information-schema-innodb_tablespaces_encryption-table/
-
Varun Gupta authored
MDEV-22910: SIGSEGV in Opt_trace_context::is_started & SIGSEGV in Json_writer::add_table_name (on optimized builds) Make sure to initialize members of TABLE::reginfo when TABLE::init is called. In this case the problem was that table->reginfo.join_tab was set for the SELECT query and then was reused by the UPDATE query. This case occurred only when the SELECT query had a degenerate join.
-
Varun Gupta authored
Window function is not allowed as arguments to window functions according to the standard.
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
and remove it on error Disable existing non-empty datadir for mysql_install_db.exe
-
Eugene Kosov authored
This function is very common in a debug build. I can even see it in profiler. This patch reduces execution time of fil_validate() from 8948ns 8367ns 8650ns 8906ns 8448ns to 260ns 232ns 403ns 275ns 169ns in my environment. The trick is a faster fil_space_t iteration. Hash table is typically initialized with a size of 50,000. And looping through it is slow. Slower, than iterating an exact amount of fil_space_t which is typically less than ten. Only debug builds are affected.
-
Varun Gupta authored
-
- 29 Jun, 2020 4 commits
-
-
Vladislav Vaintroub authored
Services, which is registered with 2 arguments "C:\path\to\mysqld.exe service_name" would pass non-null terminated command line to win_main(), and this would crash in defaults handling. Make sure win_main() gets null-terminated argv.
-
Varun Gupta authored
Quick grouping is not supported for JSON_OBJECTAGG. The same for GROUP_CONCAT too so make sure that Item::quick_group is set to FALSE. We need to make sure that in the case of JSON_OBJECTAGG we don't create an index over grouping fields of the temp table and update the result after each iteration. Instead we should first sort the result in accordance to the GROUP BY fields and then perform the grouping and write the result to the temp table.
-
Vladislav Vaintroub authored
-
Daniel Black authored
-
- 27 Jun, 2020 1 commit
-
-
Otto Kekäläinen authored
This reverts commit 9fff91b5 which was pushed on master by accident.
-