1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00
Commit Graph

6176 Commits

Author SHA1 Message Date
d2d0e08690 Fixed stdout and stderr forking porcs handling 2023-06-16 04:38:09 +03:00
5dba0ba53a Merge branch 'mariadb-corporation:develop' into update-documentation 2023-06-13 21:53:03 +02:00
780232b29f Merge pull request #2862 from mariadb-corporation/remove-bind-mount-cgroup
ci: try to remove bind mount host sys fs cgroup
2023-06-12 10:57:53 +01:00
a71b21a491 ci: remove bind mount sys/fs/cgroup 2023-06-11 17:27:59 +02:00
375d162376 MCOL-5500 This patch adds cgroup v2 support with some sanity checks for (#2849)
values reported by cgroups v1
2023-06-09 17:37:21 +03:00
024e6bd358 MCOL-5512 Fix for post join filter.
This patch fixes certain situations where post join filter is not applying.
2023-06-09 11:15:05 +03:00
ab9b95e368 Add one more unit to logs (#2861) 2023-06-07 16:32:21 +03:00
62dc392476 MCOL-5499 Enable ControlFlow for same node communication processing path to avoid DEC queue overloading (#2848) 2023-06-07 15:41:59 +03:00
cacbbee1c2 MCOL-5175 Increase the maximum effective length of S3 secret used as SHA256 key producing S3 signature (#2859)
Co-authored-by: Roman Nozdrin <rnozdrin@mariadb.com>
2023-06-07 15:24:02 +03:00
1eca477485 MCOL-5496: Fix CI adding CMAPI steps.
[fix] deb packages deps commands
[add] several additional local variables
[fix] packages url
[fix] smoke step
[fix] mtr step
[fix] regression step
[add] cmapipython, cmapibuild, cmapitest and cmapilog steps
[fix] dockerfile step
[fix] build step to include cmapi package on repodata creating
[fix] multi_node_mtr step
[fix] pkg step
[add] cmapi steps to pipelines
[fix] cmapi/CMakeLists.txt to prevent cmake byte-compile .py files for rpm packages
[add] setup-repo.sh file
[fix] now use packages from the repos in tests steps
2023-06-07 10:00:16 +03:00
a079a2c944 MCOL-5496: Merge CMAPI code to engine repo.
[add] cmapi code to engine
2023-06-07 10:00:16 +03:00
77eedd1756 MCOL-5503: Fix broken quarter (#2855)
* Fix broken quarter function
2023-06-02 18:06:58 +03:00
8f93fc3623 MCOL-5493: First portion of UBSan fixes (#2842)
Multiple UB fixes
2023-06-02 17:02:09 +03:00
5ede14c9c0 Fix indentation in BUILD.md. 2023-06-01 19:09:11 +02:00
44633f40ec Update BUILD.md and delete duplicate build/README.md.
This commit updates the BUILD.md with some commments for contributors building from a fork and regarding dependency installation.
2023-06-01 17:03:48 +00:00
0a2e9760ee Fix for JSON_VALUE function to remove OOB stack access (#2852)
MCOL-271 introduced a bug in JSON_VALUE that was discovered during
implementation of ASAN builds. The changes here restore normal
functionality.

In short, changes in MCOL-271 introduced a local variable instead of
reference to a string in ConstantColumn's fResult.strVal. The handling
of ConstantColumn is different because ConstantColumn's value is used
to initialize JSON path once. JSON path value holds pointer to data it
does not own and if there are two or more rows the data can be corrupted
and/or be out of stack bounds.

The changes here introduce reference to a NullString that is held in the
ConstantColumn's fResult.strVal and uses appropriate functions to obtain
data from the NullString. CC's fResult is held by CC and strVal is also
neither changing nor moving during operation, which allow JSON path to
hold correct pointers during multi-row operation.
2023-05-31 15:30:40 +03:00
32482cd928 Add an option in build/bootstrap_mcs.sh to NOT perform a clean install. (#2854)
A new option is added (-n/--no-clean-install) that allows a user to
re-install ColumnStore without deleting the existing db files. This is
useful for testing new code changes in the engine without the need to
re-create the database tables to test the code changes.
2023-05-30 21:04:51 +03:00
d083650f75 Merge pull request #2846 from tntnatbry/MCOL-5480
MCOL-5480 LOAD DATA INFILE incorrectly loads values for MEDIUMINT datatype.
2023-05-26 14:39:06 +01:00
f18c556311 Fix gcc-13 warning and add support for building Fedora (#2845) 2023-05-26 16:30:53 +03:00
c598a9bbed MCOL-5480 LOAD DATA INFILE incorrectly loads values for MEDIUMINT datatype.
Internal memory representation of MEDIUMINT datatype uses 24 bits. This is
true for both MariaDB server as well as ColumnStore. MCS plugin code uses
TypeHandlerSInt24 and TypeHandlerUInt24 classes to respectively convert the
binary representation of the signed and unsigned MEDIUMINT values passed by
the server to the plugin. The plugin then outputs the text representation
of these values into an open file descriptor which is piped to cpimport
for the final load into the MCS db files.

The TypeHandlerXInt24 classes were earlier incorrectly using
WriteBatchField::ColWriteBatchXInt32() functions which operate on a 4 byte
buffer. This resulted in incorrect parsing of MEDIUMINT values. As a fix,
we implement WriteBatchField::ColWriteBatchXInt24() functions which
correctly handle the 24 bit input buffer used for MEDIUMINT datatype.
2023-05-23 16:00:05 -04:00
a90535e1a7 Merge pull request #2844 from drrtuy/obsidian
An initial Obsidian vault as a knowledge base.
2023-05-20 16:01:42 +01:00
26aa9abaf0 An initial Obsidian vault as a knowledge base. 2023-05-20 15:46:19 +03:00
de7ba854bd Merge pull request #2840 from tntnatbry/MCOL-5491
MCOL-5491 Enable StringStore for long strings in JSON_ARRAYAGG processing.
2023-05-17 12:12:03 +01:00
d3778e391e Merge pull request #2827 from mariadb-corporation/rwlockmonitor_datarace
Atomic bools for RWLockMonitor
2023-05-17 12:09:11 +01:00
fed115c9ac Merge pull request #2837 from tntnatbry/MCOL-5357-dev
MCOL-5357 Fix TPC-DS query error "MCS-3009: Unknown column '.<colname>'".
2023-05-17 12:06:49 +01:00
5a21440cd5 Merge pull request #2839 from tntnatbry/develop-23.02-changes-for-develop
develop-23.02 changes for develop.
2023-05-12 22:01:16 +01:00
87eb875379 MCOL-5491 Enable StringStore for long strings in JSON_ARRAYAGG processing.
This patch is the JSON_ARRAYAGG clone of the changes done in MCOL-5429
where we enabled usage of StringStore for long strings in
GROUP_CONCAT() processing to reduce memory footprint of PrimProc and
thus avoiding a potential OS triggered OOM crash.
2023-05-12 19:45:02 +00:00
f4af756af1 Bump VERSION to 23.08.1-1. 2023-05-08 19:00:31 +00:00
e6e74c0be7 MCOL-5437 Fixes to follow the charset_info api change introduced by MDEV-30661 2023-05-08 18:57:36 +00:00
3364ceb2f0 cmake fixes related to mpark_patterns. 2023-05-08 18:56:48 +00:00
a388d691ac [serg changes] mcs-savebrm.py: don't abort with "[Errno 1] Unknown host". 2023-05-08 18:56:29 +00:00
9f3b191efb [serg changes] fix for debian builds. 2023-05-08 18:56:06 +00:00
3985aac871 [serg changes] skip ColumnStore if old cmake. 2023-05-08 18:55:45 +00:00
e9bc708c98 [serg changes] fix cmake warning. 2023-05-08 18:55:33 +00:00
f2c90a8dae [serg changes] skip ColumnStore if STL is too old. 2023-05-08 18:55:01 +00:00
176eefcc57 MCOL-5456 codebase preparation for colab with CS 11.1 2023-05-08 18:54:47 +00:00
1477b28ee9 MCOL-5357 Fix TPC-DS query error "MCS-3009: Unknown column '.<colname>'".
For the following query:

select item from (
select item from (select a as item from t1) tt
union all
select item from (select a as item from t1) tt
) ttt;

There is an if predicate in buildSimpleColFromDerivedTable() that compares
the outermost query field name (ttt.item) to the returned column list of
the inner query (tt.item) when building the returned column list of the
outer most query. In the above query example, the inner query field name
is an alias set in the inner most query and is set to "`tt`.`item`",
while the outermost query field name is set to "item". The use of
backticks "`" in the inner query alias is causing the execution to
not enter the if block which creates the SimpleColumn for the outermost
query field name. As a fix, we strip off the backticks from the inner
query alias.
2023-05-03 16:06:20 +00:00
0be1c3dc8f MCOL-5429 Fix high memory consumption in GROUP_CONCAT() processing.
1. Input and output RowGroup's used in GROUP_CONCAT classes
are currently allocating a raw memory buffer of size equal
to the actual width of the string datatype. As an example,
for the following query:
  SELECT col1, GROUP_CONCAT(col2) FROM t GROUP BY col1;
If col2 is a TEXT field with default width, the input
RowGroup containing the target rows to be concatenated will
assign 64kb of memory for every input row in the RowGroup.
This is wasteful as actual field values in real workloads
would be much smaller. We fix this by enabling the
RowGroup to use the StringStore when the RowGroup contains
long strings.

2. RowAggregation::initialize() allocates a memory buffer
for a NULL row. The size of this buffer is equal to the
row size for the output RowGroup. For the above scenario,
using the default group_concat_max_len (which is a server
variable that sets the maximum length of the GROUP_CONCAT string)
value of 1mb, the buffer size would be
(1mb + 64kb + some additional metadata). If the user sets
group_concat_max_len to a higher value, say 3gb, this buffer
size would be ~3gb. Now if the runtime initiates several
instances of RowAggregation, total memory consumption by
PrimProc could exceed the hardware memory limits causing the
OS OOM to kill the process. We fix this problem by again
enabling the StringStore for the NULL row allocation.

3. In the plugin code in buildAggregateColumn(), there is
an integer overflow when the server group_concat_max_len
variable (which is an uint32_t) is set to a value > INT32_MAX
(such as 3gb) and is assigned to
CalpontSystemCatalog::ColType::colWidth (which is an int32_t).
As a short term fix, we saturate the assigned value to colWidth
to INT32_MAX. Proper fix would be to upgrade
CalpontSystemCatalog::ColType::colWidth to an uint32_t.
2023-05-01 13:06:23 -04:00
4fe9cd64a3 Revert "No boost condition (#2822)" (#2828)
This reverts commit f916e64927.
2023-04-22 15:49:50 +03:00
f916e64927 No boost condition (#2822)
This patch replaces boost primitives with stdlib counterparts.
2023-04-22 00:42:45 +03:00
3ce19abdae Options to build with TSAN, UBSAN and skipping smoke (#2826) 2023-04-21 21:24:48 +03:00
4a8e53f14d Atomic bools for RWLockMonitor 2023-04-21 13:23:58 +00:00
9729d7cfba try to get callstacks for PrimProc (#2818) 2023-04-20 16:18:15 +03:00
1e56a0b557 Merge pull request #2811 from mariadb-corporation/remove-boost-shared-array
Remove boost shared array
2023-04-17 11:44:10 +01:00
7bed08766a Add dmesg to regressionlog step (#2810)
* Add dmesg to regressionlog step

* dmesg from the outside

* put dmesg one level higher

* Add server logs

* Archive the whole queries dir

* Remove dmesg
2023-04-14 18:55:57 +03:00
c2d0fa24da replace boost::shared_array<T> to std::shared_ptr<T[]> 2023-04-14 10:33:27 +00:00
a508b86091 remove boost/shared_array include 2023-04-14 09:42:50 +00:00
6c32c658d5 MCOL-5385: Delete RowGroup::setData and make Pointer ctor explicit (#2808)
* Delete RowGroup::setData and make Pointer ctor explicit

* some push_backs replaced with emplace_backs

* Fixes of review notes
2023-04-13 03:55:30 +03:00
5675a418b7 Update .drone.jsonnet (#2809) 2023-04-12 20:40:05 +03:00
b7f3376240 Create reg-logs outside the script (#2807) 2023-04-12 17:44:30 +03:00