1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00
Commit Graph

6198 Commits

Author SHA1 Message Date
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
f52354b0e4 Output details file from regression into CI logs (#2801)
* Output details into CI logs

* Run the script and print out diffs

* Logging in -log stage + put logs on s3

* Typo

* Install find + put logs in a dir

* Proper logs location

* Put all output in the script + put script in the regression step

* Typo

* Move more logic to script

* Add a guard

* Conditional execution

* Move bash -c to the beginning

* Never fail go.sh, reg-logs checks for failures

* Add env var to start regression with custom test set (name for the step
is broken)

* Typos + only exec test000 once

* Proper expression with if

* Remove timeout to get results

* Remove flag for full regression for now

* Remove unnecessary var
2023-04-11 20:42:42 +03:00
105cf2da22 Make build scripts color brighter (#2803)
* Make build scripts color brighter

* better colors, draw deps and ninja generator options

* Add color spinner for configure and install make changed to cmake --build and cmake --install

* Clean more builds log garbage
2023-04-11 03:35:05 +03:00
c38d98a510 Merge pull request #2762 from mariadb-corporation/MCOL-5191_Dist
MCOL-5191 Refacator statistics.
2023-04-06 21:09:42 +01:00
f5735e8894 Merge pull request #2786 from MuHe03/develop
[MCOL-4991] Solving TRUNCATE/ROUND/CEILING functions on TIME/DATETIME/TIMESTAMP
2023-04-06 10:50:58 +01:00
7e2f83e39d Merge branch 'mariadb-corporation:develop' into develop 2023-04-05 18:22:52 +02:00
2e1394149b MCOL-5464: Fixes of bugs from ASAN warnings, part one (#2792)
* Fixes of bugs from ASAN warnings, part one

* MQC as static library, with nifty counter for global map and mutex

* Switch clang to 16

* link messageqcpp to execplan
2023-04-04 02:33:23 +03:00
ac8881091b Add color to build logswq (#2802) 2023-04-03 20:54:43 +03:00
d906974abc MCOL-4991 Solving TRUNCATE/ROUND/CEILING functions on TIME/DATETIME/TIMESTAMP
Add getDecimalVal in func_round and func_truncate for getting value while filtering

MCOL-4991 Solving TRUNCATE/ROUND/CEILING functions on TIME/DATETIME/TIMESTAMP

Update func_cast.cpp
2023-03-31 18:39:16 +02:00
4eced2c23a Generate published package URL as part of new pipeline step (#2800)
* Generate published package URL as part of pipeline step

* Pull publish_pkg_url into local variable

* Add dependency on 'publish pkg' step
2023-03-31 15:57:31 +03:00
b53c231ca6 MCOL-271 empty strings should not be NULLs (#2794)
This patch improves handling of NULLs in textual fields in ColumnStore.
Previously empty strings were considered NULLs and it could be a problem
if data scheme allows for empty strings. It was also one of major
reasons of behavior difference between ColumnStore and other engines in
MariaDB family.

Also, this patch fixes some other bugs and incorrect behavior, for
example, incorrect comparison for "column <= ''" which evaluates to
constant True for all purposes before this patch.
2023-03-30 21:18:29 +03:00
0ea592da80 Merge pull request #2795 from HanpyBin/rb
fix dependency error in bootstrap_mcs.sh
2023-03-28 13:40:06 +01:00
ed24f3ebec fix dependency error 2023-03-28 15:04:13 +08:00
a445fa8be1 Merge pull request #2790 from drrtuy/MCOL-5451-dev
MCOL-5451 This resolves external GROUP BY result inconsistency issues
2023-03-28 00:15:01 +01:00
688b47d4e7 MCOL-5451 This resolves external GROUP BY result inconsistency issues
Given that idx is a RH hashmap bucket number and info is intra-bucket idx
    the root cause is triggered by the difference of idx/hash pair
    calculation for a certain GROUP BY generation and for generation
    aggregations merging that takes place in RowAggStorage::finalize.
    This patch generalizes rowHashToIdx to leverage it in both cases
    mentioned above.
2023-03-25 15:04:16 +00:00
256691652d MCOL-4530: toCppCode() method for ParseTree and TreeNode (#2777)
* toCppCode for ParseTree and TreeNode

* generated tree is compiling

* Put tree constructors into tests

* Minor fixes

* Fixed parse + some constructors

* Fixed includes, removed debug and old data

* Hopefully fix clang errors

* Forgot an override

* More overrides
2023-03-22 23:25:06 +03:00
75da821839 Merge pull request #2781 from mariadb-corporation/preserver-regr-logs
ci: PRESERVE_LOGS env var for regression run
2023-03-22 11:37:26 +00:00
d1b5f40bb2 ci: PRESERVE_LOGS env var for regression run 2023-03-20 23:41:29 +03:00
502becaa8a Merge pull request #2780 from mariadb-SergeyZefirov/undefine-a-wasteful-define-text-ranges
Small performance issue corrected
2023-03-20 11:28:57 +03:00
2558c1a911 Define commented out 2023-03-17 17:10:40 +03:00
a2d7a21196 Fix "column1 LIKE column2" for columns from same table (#2776)
This WHERE part will be performed with FilterCommand, which did not had
LIKE operator implemented until now.
2023-03-17 12:10:53 +02:00
760c1ba13e ci: use local files for core_dumps scripts (#2775)
* ci: make core dumps scripts run a little bit better:
- use local scripts
- compress core dumps

* produce CoreDump on primProc to check coredump collecting

* Update core_dump_format.sh

compress with gzip for compatibility

* fix build

* remove afke core dump

---------

Co-authored-by: Leonid Fedorov <leonid.fedorov@mariadb.com>
2023-03-15 17:04:53 +03:00
5eea77adad Merge pull request #2774 from mariadb-corporation/release-23.02.01-buildfixes
Fix to thrift from serg
2023-03-15 03:45:49 -04:00
60609e6c3d Fix to thrift from serg 2023-03-14 17:07:34 +03:00
04740e5861 Switch stable branch on CI (#2771) 2023-03-13 19:48:42 +03:00
7d2e4b8275 Merge pull request #2770 from ottok/fix-spelling
Fix trivial spelling errors
2023-03-13 11:11:16 +00:00
70124ecc01 Fix trivial spelling errors
- occured -> occurred
- reponse -> response
- seperated -> separated

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.
2023-03-11 11:59:47 -08:00
967cf2e005 Merge pull request #2755 from drrtuy/MCOL-5438-dev
MCOL-5438 COUNT() in math causes SEGV
2023-03-10 10:58:47 +00:00
786b9da5b0 MCOL-5438 COUNT() in math causes SEGV 2023-03-09 20:35:38 +00:00