Leonid Fedorov
c853e1f81d
chore(codemanagement, ci): better coredumps handling, deps fixed
2025-07-17 09:53:30 +00:00
Leonid Fedorov
9fc3cd8c8f
chore(codemanagement, build): build refactoring stage2
2025-07-17 09:52:08 +00:00
Leonid Fedorov
902805d5a3
GCC8.5 warning fixed
2025-07-15 23:54:46 +04:00
Serguey Zefirov
6e3cf16ce4
chore(MCOL-6018) Fix leaks in Columnstore information tables
...
Fix introduces unique_ptr around DBRM instance in fill result functions.
Now all paths lead to DBRM instance freeing.
2025-07-06 15:17:08 +04:00
mariadb-KristinaPavlova
a501ef8721
fix string args
2025-07-04 19:57:49 +04:00
mariadb-KristinaPavlova
bf3db183c7
add transaction ID in error msg
2025-07-04 19:57:49 +04:00
mariadb-KristinaPavlova
a1a017a475
fix err printing
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
mariadb-KristinaPavlova
a29ac85c7c
add partial support for unsupported query syntax
2025-07-04 19:57:49 +04:00
drrtuy
70547c7358
chore(plugin): translator walks are now in separate units
2025-06-27 17:38:33 +04:00
drrtuy
9da9144343
feat(optimizer): UNION units now have origin filters pushdown AND partition boundaries filters
2025-06-26 18:35:33 +01:00
drrtuy
8a2ae35918
chore(): review fixes
2025-06-26 18:35:33 +01:00
drrtuy
3bf4394456
feat(optimizer): rewrite rule does not descent into a freshly created UNION unit.
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
25c7d23c21
feat(optimizer): add session switch to optionally enable optimizer
2025-06-26 18:35:33 +01:00
drrtuy
ab6063bec4
feat(optimizer): moved related code into a separate unit
2025-06-26 18:35:33 +01:00
drrtuy
e07e85b750
feat(optimizer): into derived CSEP rewrite with hardcoded tables
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
021a95c683
feat(optimizer): rewrite rule refactoring
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
Serguey Zefirov
3a91cded27
chore(MCOL-6018) Fix incorrect Field_decimal cast
...
This is a fix of a problem found by UBSAN. MDB changed default type to
represent a decimal result, C-style cast did not do proper type checking
and this one-liner fixes that. Now we will have an assertion if type
changes again.
2025-06-26 19:41:58 +04:00
drrtuy
dd9298f988
feat(plugin): add extra logging to the plugin init
2025-06-19 19:22:01 +04:00
Leonid Fedorov
5cb7a4ac4c
chore(compilatiaon): proper use of plugin_ref
2025-06-02 15:39:42 +04:00
drrtuy
44d1698639
chore(plugin): move having and group by into separate routines
2025-06-02 12:11:41 +01:00
drrtuy
600f10c259
chore(plugin): move order by processing
2025-06-02 12:11:41 +01:00
drrtuy
bb13688ccf
chore(plugin): move projection processing into a separate part.
2025-06-02 12:11:41 +01:00
Leonid Fedorov
bb833ac9f6
chore(build) : fix debug build with MYSQL_VERSION_ID >= 10090
2025-05-30 19:08:35 +04: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
drrtuy
35578f5f05
fix(): fix API return type difference b/w server versions.
2025-05-29 19:05:34 +01:00
drrtuy
7cf3003727
fix(formating): return to the original formatting
2025-05-29 19:05:34 +01:00
drrtuy
44040b4367
feat(plugin): Replaced THDVAR with more lightweight SYSVAR
2025-05-29 19:05:34 +01:00
drrtuy
9038f0df09
feat(plugin): All InnoDB queries are pushed down to Columnstore if columnstore_innodb_queries_uses_mcs = ON in the configuration before server start
2025-05-29 19:05:34 +01:00
drrtuy
11e5e481ab
feat(plugin): fixup for side effects
2025-05-29 19:05:34 +01:00
drrtuy
7b02299f50
feat(plugin): unconditional innodb into MCS pushdown
2025-05-29 19:05:34 +01:00
Leonid Fedorov
dc4ca8d588
MCOL-5943: MCOL-4740 update rows counter for multi-table update ( #3555 )
...
* fix(plugin): MCOL-4740: This fixes update rows counter for multi-table update
For UPDATEs involving a single table, the server call to handler::direct_update_rows() is used to correctly set the count for the number of updated rows in the UPDATE statement.
However, for UPDATEs involving multi-tables, the server does not call handler::direct_update_rows(). This patch adds support to correctly report the number of updated rows to the client by setting
multi_update::updated and multi_update::found in handler::rnd_end().
* fix(plugin): MCOL-4740: this is to addres the original patch QA found in the original patch
---------
Co-authored-by: Roman Nozdrin <rnozdrin@mariadb.com >
Co-authored-by: drrtuy <roman.nozdrin@mariadb.com >
2025-05-29 14:23:37 +01: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
Aleksei Antipovskii
221ccfd5b6
fix(dbcon): MCOL-4756: having not() provokes an ERROR 2013
...
The `NOT()` function in the HAVING clause was handled
incorrectly, which caused the server to crash.
2025-05-23 05:12:17 +04:00
Leonid Fedorov
13b23e8510
chore(codestyle): MCOL-5405: repace windows CRLF with virtious linux one
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
bfe49a8345
bug(priproc) make last_day type a bit more accurate
...
This fixes discrepance with the server, which assigns DATE type to
last_day()'s result.
Now we also assigns DATE result type and, also, use proper
dataconvert::Day data structure to return date.
Tests agree with InnoDB.
Also, this patch includes test for MCOL-5669, to show we fixed it.
2025-05-23 05:12:17 +04:00
Sergey Zefirov
ef451af860
feat(ddl): MCOL-5744: better handling of utf8 charset aliases ( #3174 )
...
Server expands ut8_XXX aliases to utf8mb3_XXX or utf8mb4_XXX depending
on the UTF8_IS_UTF8MB3 setting in the OLD_MODE environment variable.
Server already has the necessary code implemented in the get_utf8_flag()
method of class THD. There are several uses of this flag and all we have
to do to be in line with server is to use it.
This patch does that for DDL as work on MCOL-5705 uncovered some
problems in that area.
2025-05-23 05:12:17 +04:00
Sergey Zefirov
5f6080e09c
fix(join): Fixes MCOL-5056, an error of joining TEXT column from InnoDB ( #3160 )
...
We incorrectly identified TEXT columns from external tables as BLOB.
Alexander Barkov suggested a way to discriminate them which I
implemented here.
2025-05-23 05:12:17 +04:00
Sergey Zefirov
11324c468d
feat(primproc,aggregegation)!: Changes for ROLLUP with single-phase aggregation ( #3025 )
...
The fix is simple: enable subtotals in single-phase aggregation and
disable parallel processing when there are subtotals and aggregation is
single-phase.
2025-05-23 05:12:17 +04:00
Aleksei Antipovskii
0f202fb633
fix(plugin): MCOL-5703 fix server crash on 'UNION ALL VALUES' queries
...
Such queries are not supported by the ColumnStore anyway.
2025-05-23 05:12:17 +04:00