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

361 Commits

Author SHA1 Message Date
Alexey Antipovsky
cfa9a7ff2c feat(optimizer): MCOL-5250 rewrite queries with DISTINCT (#3666)
* feat(optimizer): MCOL-5250 rewrite queries with DISTINCT

... as aggregated queries.
So query
```
SELECT DISTINCT <cols list>
FROM <from list>
WHERE <where clause>
HAVING <having clause>
ORDER BY <orderby list>
LIMIT <limit>
```
will become
```
SELECT *
FROM
  (
    SELECT <cols list>
    FROM <from list>
    WHERE <where clause>
    HAVING <having clause>
  ) a
GROUP BY 1,2,3,...,N
ORDER BY <orderby list>
LIMIT limit
```

* move ORDER BY to the outer query

* fix test

* reuse cloneWORecursiveSelects() in clone()

* fix subselect columns processing
2025-09-22 16:16:37 +04:00
drrtuy
9cbb160130 feat(joblist): descend into SelectFilter even if it contains correlated sub. 2025-09-15 20:22:10 +01:00
Rucha Deodhar
9fe37d5919 MDEV-32854: Make JSON_DEPTH_LIMIT unlimited
This patch is the columnstore-part of the task. Columnstore wanted to have
previous 32 depth, so this patch aims at keeping the compatibility.
2025-09-14 17:16:17 +04:00
drrtuy
3d6e2a6bd7 chore(QA): added MTR tests for TPC-H, removed printouts and added a doc on the feature. 2025-09-11 18:35:38 +01:00
drrtuy
2506d3fe1e fix(QA,joblist): SimpleFilter::setSimpleColumnListExtended() now populates the correct SimpleColumn list. 2025-09-10 19:50:26 +01:00
drrtuy
0d609ec485 Reapply "fix(joblist,QA): introduced extended SC ptrs collector to resolve the issue when ParseTree consist of ArithmCol-AggCol does not return SCs from AggCol."
This reverts commit f807ebcdfd.
2025-09-10 19:50:26 +01:00
drrtuy
d981f96b2a Merge branch 'stable-23.10' into feat/MCOL-6072-parallel-scan-4-CES-4 2025-09-08 15:16:52 +00:00
drrtuy
f807ebcdfd Revert "fix(joblist,QA): introduced extended SC ptrs collector to resolve the issue when ParseTree consist of ArithmCol-AggCol does not return SCs from AggCol."
This reverts commit 8c0c85080c.
2025-09-08 11:59:31 +00:00
Aleksei Antipovskii
95901fcd19 review fixes 2025-09-05 17:07:21 +04:00
Aleksei Antipovskii
76f135b2ac Code cleanup and deduplication 2025-09-05 17:07:21 +04:00
drrtuy
8c0c85080c fix(joblist,QA): introduced extended SC ptrs collector to resolve the issue when ParseTree consist of ArithmCol-AggCol does not return SCs from AggCol. 2025-09-04 13:10:18 +00:00
drrtuy
96fc875255 fix(rbo,rules,QA): ExistsFilter::transform merges statistics to enable QA for EXISTS expressions. 2025-09-03 09:25:10 +04:00
drrtuy
ea225145c0 fix(rbo,QA): SC'es CORRELATED_JOIN flag created unexpected ghost table in JobList compiler. 2025-08-28 03:46:11 +04:00
Leonid Fedorov
e28b120527 fix(rbo): fix null values handling. Crash on incomplete SimpleFilter and transform
(col >= bound_n-1 and col < bound_n) or col is null to
   (col >= bound_n-1 or col is null) and (col < bound_n)
2025-08-22 12:59:23 +01:00
drrtuy
8962ec4830 Merge branch 'stable-23.10' into feat/MCOL-6072-parallel-scan-4-CES-4 2025-08-21 16:56:11 +00:00
drrtuy
2fccfb5ffb feat(rbo,rules,QA): AggregateColumn in projection and also GB/OB columns support. 2025-08-19 18:48:15 +01:00
Leonid Fedorov
98a301c1c5 chore(execplan): MCOL: 6144 prerry print filters and havings as a tree (#3712)
* MCOL-6144: print Filters and Having indented for better CSEP visualization
2025-08-19 13:18:06 +01:00
drrtuy
80f81526eb feat(rbo,rules,QA): replace monotonic counter with column_name->col_index map and added fields to activate existing filters pushdown machinery. 2025-08-14 19:38:00 +04:00
drrtuy
0c876e1ed4 feat(rbo,rules,QA): SC in upper layer filters are updated. 2025-08-14 19:38:00 +04:00
drrtuy
6c75faee88 chore(rbo,rules,QA): clone now does not copy OB, GB, HAVING and optionally filters. 2025-08-13 13:24:29 +00:00
drrtuy
c030ff4224 feat(rbo,rules,QA): index column type is now derived from the corresponding Field 2025-08-13 13:20:57 +00:00
drrtuy
bd219cc4af feat(cbo,rules,QA): clean SC iface usage in various places 2025-08-13 13:20:57 +00:00
drrtuy
8f4e9228b2 feat(rbo,rules,QA): SC::setSimpleColumn does not have more than 1 SC in its SimpleColumn list. 2025-08-13 13:20:57 +00:00
drrtuy
134235b2d2 feat(rbo,rules,QA): support expressions in RCs 2025-08-13 13:20:57 +00:00
drrtuy
b07ee73fb3 feat(rbo,rules,QA): filtered RC clone for UNION units. 2025-08-13 13:20:57 +00:00
drrtuy
2f9fec8057 feat(rbo,rule,QA): fixed JOIN example works with QA for one leg of the JOIN. 2025-08-13 13:20:55 +00:00
drrtuy
ebaa6cce5c feat(rbo,rules): preparation to replace derived-based with table-based approach 2025-08-13 13:11:46 +00:00
Leonid Fedorov
8a535e872c Revert "Deep build refactoring phase 2 (#3564)" (#3678)
This reverts commit 449029a827.
2025-08-01 02:56:31 +04:00
Leonid Fedorov
82421c208f chore(ci): collect asan ubsan and libc++ build with mtr and regression status ignored (#3672)
* MSan added with fixes for libc++

* libc++ sepatare build

* add libc++ to ci

* libstdc++ in CI

* libcpp and msan to external projects

* std::sqrt

* awful_hack(ci): install whole llvm instead of libc++ in terrible way for test containers

* Adding ddeb packages for teststages and repos

* libc++ more for test container

* save some money on debug

* colored coredumps

* revert ci

* chore(ci): collect asan ubsan and libc++ build with mtr and regression status ignored
2025-07-31 00:32:32 +04:00
drrtuy
c4fd150453 chore(execplan): name PT walker function types 2025-07-21 12:54:07 +01:00
Leonid Fedorov
449029a827 Deep build refactoring phase 2 (#3564)
* configcpp refactored

* chore(build): massive removals, auto add files to debian install file

* chore(build): configure before autobake

* chore(build): use custom cmake commands for components, mariadb-plugin-columnstore.install generated

* chore(build): install deps as separate step for build-packages

* more deps

* chore(codemanagement, build): build refactoring stage2

* chore(safety): Locked Map for MessageqCpp with a simpler way

 Please enter the commit message for your changes. Lines starting

* chore(codemanagement, ci): better coredumps handling, deps fixed

* Delete build/bootstrap_mcs.py

* Update charset.cpp (add license)
2025-07-17 16:14:10 +04:00
mariadb-KristinaPavlova
a501ef8721 fix string args 2025-07-04 19:57:49 +04:00
mariadb-KristinaPavlova
d031239844 add args to lost connection error when getting system data 2025-07-04 19:57:49 +04:00
mariadb-KristinaPavlova
40f4ee7008 add args to system catalog err 2025-07-04 19:57:49 +04:00
drrtuy
8a2ae35918 chore(): review fixes 2025-06-26 18:35:33 +01:00
drrtuy
464b9a1ca3 chore(review): clean up leftovers 2025-06-26 18:35:33 +01:00
drrtuy
327231276d chore(): remove unused standalone unit test 2025-06-26 18:35:33 +01:00
drrtuy
e57832ee64 feat(optimizer): temporary shield optimizer with a session variable 2025-06-26 18:35:33 +01:00
drrtuy
98cb6dddee feat(optimizer): replace simple walk with iterative DFS with convergence 2025-06-26 18:35:33 +01:00
drrtuy
1baaf878d0 feat(optimizer): basic rewrite Union unit into Sub with union 2025-06-26 18:35:33 +01:00
drrtuy
e8dc93b46d feat(optimizer): better CSEP printer + shallow CSEP copy 2025-06-26 18:35:33 +01:00
drrtuy
e73e5834ab feat(optimizer): first cut for rewrite foreign table into UNION rule 2025-06-26 18:35:33 +01:00
drrtuy
79008f4f69 feat(CSEP): CSEP printer with indentations to simplify reading + rewriter skeleton + some test binary to describe minimalistic CSEP localy 2025-06-26 18:35:33 +01:00
Leonid Fedorov
aa7e0fb9b4 Deep build refactoring phase 1 (#3562)
* configcpp refactored
* logging and datatypes refactored

* more dataconvert
* chore(build): massive removals, auto add files to debian install file
* chore(codemanagement): nodeps headers, potentioal library
* chore(build): configure before autobake
* chore(build): use custom cmake commands for components, mariadb-plugin-columnstore.install generated
* chore(build): install deps as separate step for build-packages
* more deps
* check  debian/mariadb-plugin-columnstore.install automatically
* chore(build): add option for multibracnh compilation
* Fix warning
2025-05-30 14:05:21 +04:00
Leonid Fedorov
5814a80b50 MCOL-4671: MCOL-4622: fix the behavior of both PRs
first was playing different with RIGHT and LEFT functions(using the getUintVal and getIntVal accordingly)
https://github.com/mariadb-corporation/mariadb-columnstore-engine/pull/3234
second introduced round for ints from double, but added it to uint but not to int missing long doubles as well
https://github.com/mariadb-corporation/mariadb-columnstore-engine/pull/3480
2025-05-23 05:12:17 +04:00
Serguey Zefirov
3bb2496ca1 fix: MCOL-5755: incorrect handling of BLOB (and TEXT) in GROUP BY
BLOB fields did not work as grouping keys at all, they were assigned
value NULL for any value, be it NULL or not. The fix is in the
rowaggregation.cpp in the initMapping(), a switch/case branch was added
to handle BLOB field copying there.

Also, TEXT columns did not distinguish between NULL and empty string in
the grouping algorithm, now they do. The fix is in the equals()
function, now we specifically check for isNull() equality between
values.
2025-05-23 05:12:17 +04:00
Leonid Fedorov
b65a5a1ef9 chore(build): turn off WError for ASAN builds as gcc STL has internal warnings last 3 years: https://gcc.gnu.org/bugzilla/show_bug.cgi\?id\=105562 2025-05-21 21:59:08 +04:00
Leonid Fedorov
6db2dc668f stubs and cmake formatting 2025-05-20 18:22:59 +04:00
Leonid Fedorov
2036e521c7 named linkage 2025-05-20 18:22:59 +04:00
Leonid Fedorov
a0bee173f6 chore(build): fixes to satisfy clang19 warnings 2025-05-15 19:05:38 +04:00