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