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

1766 Commits

Author SHA1 Message Date
5aa2a824c2 feat(MCOL-6082): Multiple readers of dbroots using OamCache logic
This patch introduces centralized logic of selecting what dbroot is
accessible in PrimProc on what node. The logic is in OamCache for time
being and can be moved later.
2025-07-21 14:32:39 +03:00
2753743762 feat(MCOL-6082) Cluster with read-only nodes should correctly work with DML
This patch changes logic from counting all nodes to counting only
read-write nodes when messaging about DML operations.
2025-07-21 14:32:39 +03:00
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
902805d5a3 GCC8.5 warning fixed 2025-07-15 23:54:46 +04:00
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
a501ef8721 fix string args 2025-07-04 19:57:49 +04:00
bf3db183c7 add transaction ID in error msg 2025-07-04 19:57:49 +04:00
a1a017a475 fix err printing 2025-07-04 19:57:49 +04:00
d031239844 add args to lost connection error when getting system data 2025-07-04 19:57:49 +04:00
40f4ee7008 add args to system catalog err 2025-07-04 19:57:49 +04:00
a29ac85c7c add partial support for unsupported query syntax 2025-07-04 19:57:49 +04:00
70547c7358 chore(plugin): translator walks are now in separate units 2025-06-27 17:38:33 +04:00
9da9144343 feat(optimizer): UNION units now have origin filters pushdown AND partition boundaries filters 2025-06-26 18:35:33 +01:00
8a2ae35918 chore(): review fixes 2025-06-26 18:35:33 +01:00
3bf4394456 feat(optimizer): rewrite rule does not descent into a freshly created UNION unit. 2025-06-26 18:35:33 +01:00
464b9a1ca3 chore(review): clean up leftovers 2025-06-26 18:35:33 +01:00
327231276d chore(): remove unused standalone unit test 2025-06-26 18:35:33 +01:00
e57832ee64 feat(optimizer): temporary shield optimizer with a session variable 2025-06-26 18:35:33 +01:00
98cb6dddee feat(optimizer): replace simple walk with iterative DFS with convergence 2025-06-26 18:35:33 +01:00
25c7d23c21 feat(optimizer): add session switch to optionally enable optimizer 2025-06-26 18:35:33 +01:00
ab6063bec4 feat(optimizer): moved related code into a separate unit 2025-06-26 18:35:33 +01:00
e07e85b750 feat(optimizer): into derived CSEP rewrite with hardcoded tables 2025-06-26 18:35:33 +01:00
1baaf878d0 feat(optimizer): basic rewrite Union unit into Sub with union 2025-06-26 18:35:33 +01:00
e8dc93b46d feat(optimizer): better CSEP printer + shallow CSEP copy 2025-06-26 18:35:33 +01:00
021a95c683 feat(optimizer): rewrite rule refactoring 2025-06-26 18:35:33 +01:00
e73e5834ab feat(optimizer): first cut for rewrite foreign table into UNION rule 2025-06-26 18:35:33 +01:00
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
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
dd9298f988 feat(plugin): add extra logging to the plugin init 2025-06-19 19:22:01 +04:00
5cb7a4ac4c chore(compilatiaon): proper use of plugin_ref 2025-06-02 15:39:42 +04:00
44d1698639 chore(plugin): move having and group by into separate routines 2025-06-02 12:11:41 +01:00
600f10c259 chore(plugin): move order by processing 2025-06-02 12:11:41 +01:00
bb13688ccf chore(plugin): move projection processing into a separate part. 2025-06-02 12:11:41 +01:00
bb833ac9f6 chore(build) : fix debug build with MYSQL_VERSION_ID >= 10090 2025-05-30 19:08:35 +04:00
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
35578f5f05 fix(): fix API return type difference b/w server versions. 2025-05-29 19:05:34 +01:00
7cf3003727 fix(formating): return to the original formatting 2025-05-29 19:05:34 +01:00
44040b4367 feat(plugin): Replaced THDVAR with more lightweight SYSVAR 2025-05-29 19:05:34 +01:00
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
11e5e481ab feat(plugin): fixup for side effects 2025-05-29 19:05:34 +01:00
7b02299f50 feat(plugin): unconditional innodb into MCS pushdown 2025-05-29 19:05:34 +01:00
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
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
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
13b23e8510 chore(codestyle): MCOL-5405: repace windows CRLF with virtious linux one 2025-05-23 05:12:17 +04:00
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
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
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
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
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