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

1737 Commits

Author SHA1 Message Date
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
Leonid Fedorov
0359a1fd3a chore(server_support): fixes to build columnstore branch with server >= 11.5 2025-05-22 17:14:38 +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
drrtuy
af1864f544 feat(memory): custom OOM exception 2025-05-20 18:22:16 +04:00
drrtuy
e9973c46e4 feat(TNS): change ORDER BY out-of-memory error message. Replaced bad_alloc with IDBExcept in TNS. 2025-05-20 18:22:16 +04:00
Leonid Fedorov
a1019b7c0e chore(build): refactor main CMakeLists.txt (#3543)
* chore(build): refactor main CMakeLists.txt

* chore(build): fix boost version for packages, set clang-20 only for amd and arm

* chore(build): boost 4 sm

* chore(build): boost dep for rowgroup

* chore(build): toolset for boost

* chore(build): suppress clang warnings for boost

* chore(ci, build): use ASAN for unittest on ubuntu 24.04 only, added custom cmake flag option for bootstrap, custom params for new and existing pipelines

* chore(build): sort bootstrap flags

* chore(CI): remove publish pkg step, adding clickable link instead to publish steps, fix customenv
2025-05-20 05:00:48 +04:00
Leonid Fedorov
fc028983b9 chore(build): more fixes for the new warnings 2025-05-15 19:05:38 +04:00
Leonid Fedorov
a0bee173f6 chore(build): fixes to satisfy clang19 warnings 2025-05-15 19:05:38 +04:00
drrtuy
d8bef9dc11 fix(UT): added dummy RM ctor to be used with UTs 2025-05-02 10:11:40 +01:00
drrtuy
246c5775a3 chore(TNS): removed extra sorting queue definitions. 2025-05-02 10:11:40 +01:00
drrtuy
42417764d8 chore(): cleanup. 2025-05-02 10:11:40 +01:00
drrtuy
4d32a59775 fix(perf,allocator): reduce CountingAllocator step size to improve its memory consumption reaction speed. 2025-05-02 10:11:40 +01:00
drrtuy
01cc73d416 fix(perf,allocator): test build with reduced CountingAllocator parameter values. 2025-05-02 10:11:40 +01:00
drrtuy
252b3ddbef fix(perf,allocator): adding unit test to check CountingAllocator behavior when it is wrapped in STLPoolAllocator 2025-05-02 10:11:40 +01:00
=
671b7301f3 fix(allocator,perf): performance degradation caused by lack of STLPoolAllocator replaced by CountingAllocator 2025-05-02 10:11:40 +01:00
Leonid Fedorov
8859e3f4df chore(build): satisfy gcc9 for execplan partionions unequivalence 2025-04-25 17:36:43 +04:00
Serguey Zefirov
bd1622f331 feat(MCOL-5886): support InnoDB's table partitions in cross-engine joins
The purpose of this changeset is to obtain list of partitions from
SELECT_LEX structure and pass it down to joblist and then to
CrossEngineStep to pass to InnoDB.
2025-04-23 08:24:10 +03:00
drrtuy
a16fbd137b fix(disk-based-join): this fixes multiple SEGV for disk-based join algo 2025-04-15 15:06:49 +01:00
drrtuy
c9f9cf8988 fix(CES): Server doesn't terminate MDB client connection that it did previously delivering incomplete result set 2025-04-15 15:06:49 +01:00
drrtuy
6e98ef3037 chore(): removed extra printout 2025-04-15 15:06:49 +01:00
drrtuy
e4ca7425e2 feat(stats): CES reports table name and HJS reports total matched rows 2025-04-15 15:06:49 +01:00
Leonid Fedorov
432d0cf7f8 fix(build): replace std::ranges usage for gcc9 and std::span with boost::span 2025-04-15 17:58:11 +04:00
Leonid Fedorov
6a712dc0ad MCOL-5932: fix heap buffer overflow with minimal revert of MCOL-5776 breaking change (#3445) 2025-04-15 14:46:25 +01:00
Aleksei Antipovskii
c618fa284d fix(PrimProc): MCOL-5394 JSON_ARRAYAGG in MCS works differently than in InnoDB 2025-04-11 15:21:07 +02:00
Aleksei Antipovskii
4bea7e59a0 feat(PrimProc): MCOL-5852 disk-based GROUP_CONCAT & JSON_ARRAYAGG
* move GROUP_CONCAT/JSON_ARRAYAGG storage to the RowGroup from
  the RowAggregation*
* internal data structures (de)serialization
* get rid of a specialized classes for processing JSON_ARRAYAGG
* move the memory accounting to disk-based aggregation classes
* allow aggregation generations to be used for queries with
  GROUP_CONCAT/JSON_ARRAYAGG
* Remove the thread id from the error message as it interferes with the mtr
2025-04-11 15:21:07 +02:00
Aleksei Antipovskii
87d47fd7ae fix(PrimProc): MCOL-5852 use only long string storage
for the group_concat data to reduce memory usage
2025-04-11 15:21:07 +02:00
Leonid Fedorov
3e20a3d566 MCOL-5890: DROP TABLE IF EXISTS should not generate errors for non existing tables 2025-04-08 20:30:01 +04:00