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

91 Commits

Author SHA1 Message Date
Sergey Zefirov
3418e68b78 fix(ddl): MCOL-5974 TIMESTAMP columns are not IS NOT NULL by default in MCS (#3670)
The old behavior was to assign TIMESTAMP columns an IS NOT NULL
constraint if list of constraints was empty. Apparently, this particular
invariant was changed in 11.4 and bugfixes' mcol-5480.test started to
fail.

This patch fixes behavioral difference and reenables mcol-5480 test in
11.4.
2025-07-27 20:06:40 +01:00
Timofey Turenko
9c0accb447 disable tests inclompatible with 11.4 2025-07-03 04:36:14 +04:00
Timofey Turenko
d503221e6f Drop functions in the bugfixes suite tests 2025-07-03 04:36:14 +04:00
Timofey Turenko
72753308cd Revert "add cleanups to MTR"
This reverts commit 9dafef641a.
2025-07-03 04:36:14 +04:00
Timofey Turenko
1c6985cbf5 add cleanups to MTR 2025-07-03 04:36:14 +04:00
Timofey Turenko
22ad96e04a Fix typo in the mcol-4741-strings-ranges-are-unsigned test 2025-07-03 04:36:14 +04:00
Timofey Turenko
4b8b5e3d75 add clean up to bugfixes.mcol-4741-strings-ranges-are-unsigned test 2025-07-03 04:36:14 +04:00
Timofey Turenko
f8b32bbf9a Fix typos in bugfixes.mcol-5074 and bugfixes.mcol-5669 tests 2025-07-03 04:36:14 +04:00
Timofey Turenko
ce8368defd Revert "add cleanups to MTR"
This reverts commit 9dafef641a.
2025-07-03 04:36:14 +04:00
Timofey Turenko
069bdf47f5 fix MCOL-5572-autoincrement-filtering and mcol-5669 tests 2025-07-03 04:36:14 +04:00
Timofey Turenko
3d64026d0a add cleanups to MTR 2025-07-03 04:36:14 +04:00
Timofey Turenko
7f7552e896 add functions loading to the MCOL-5776-GROUP-BY-HAVING-functions test 2025-07-03 04:36:14 +04:00
Timofey Turenko
9d4173e3a8 enable engnes for the test MCOL-5776-GROUP-BY-HAVING-functions-use 2025-07-03 04:36:14 +04:00
Timofey Turenko
e9c6c6b5d3 enable sequence engine in the mcol-4786 test 2025-07-03 04:36:14 +04:00
Timofey Turenko
2d400d919d add have_inndb to MTR 2025-07-03 04:36:14 +04:00
Timofey Turenko
68f60cd695 Add functions including into MTR tests 2025-07-03 04:36:14 +04:00
Timofey Turenko
b7dbf89482 skip all tests with LOAD DATA in case of tests via Maxscale 2025-06-24 16:53:17 +04: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
Alexander Presnyakov
2e61c9909b Added more tests 2025-05-23 05:12:17 +04:00
Alexander Presnyakov
0b0dd27fda fix(mcol-4499): Correct handling of LIKE/NOT LIKE NULL 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
Alexander Presnyakov
6d1c6d8242 fix(funcexp): MCOL-4671 Fix behaviour of LEFT/RIGHT functions when negative trim length value is passedB 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
Aleksei Antipovskii
d02e2854ae Add test case 2025-05-23 05:12:17 +04:00
Leonid Fedorov
d09b7496e4 Revert "fix(MCOL-5386): Bitwise aggregation functions do not work with wide d…"
This reverts commit e0f3bf8322.
2025-05-20 19:17:05 +04:00
Akhmad O.
e0f3bf8322 fix(MCOL-5386): Bitwise aggregation functions do not work with wide decimals (updated previous PR) (#3522)
* fix(MCOL-5386): Bitwise aggregation functions do not work with wide decimals (updated previous PR)

* MCOL-5386: Added test for Decimal(18)
2025-05-19 20:41:28 +01: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
Leonid Fedorov
c294c64bb0 chore(tests) lowercase database name due different distro settings 2025-04-11 19:10:37 +04: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.bukhalov
fe0e67e8a1 MCOL-4607 add tests 2025-04-10 19:54:26 +04: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
Akhmad Oripov
a6ab9bd615 fix(funcexp): MCOL-5386 Bitwise aggregation functions do not work with wide decimals (internal error) (#3485) 2025-04-08 16:47:47 +01:00
Akhmad Oripov
b8c0b74f2b fix(funexp): MCOL-4622 Implicit FLOAT->INT and DOUBLE->INT conversion is not like in InnoDB (#3480) 2025-04-04 21:28:16 +01:00
aleksei.bukhalov
72480e512c MCOL-5922 add more datatypes for test 2025-04-02 19:54:47 +04:00
Akhmad Oripov
a329f4d428 Fix(MCOL-4607): SEC_TO_TIME(wideDecimal) returns 0 in DECIMAL context (#3474) 2025-03-31 15:05:07 +01:00
Akhmad Oripov
1bcf63a436 Fix(MCOL-4611): mod loses precision on huge narrow decimal (#3473) 2025-03-31 14:59:40 +01:00
Leonid Fedorov
1fdeb740c9 MCOL-5992: fix NULLIF if first param is NULL 2025-03-28 00:03:32 +04:00
Sergey Zefirov
3b2f9f5344 fix(plugin): MCOL-4942 No-table-SELECT now can return empty set (#3413)
The query like "SELECT 1 WHERE 1=0" was returning a row despite
unsatisfiable condition in WHERE. Now it returns an empty set.
2025-03-05 07:35:00 +00:00
Serguey Zefirov
e37d621a12 fix(MCOL-5842): Fix JSON_OBJECT's handling of empty strings
JSON_OBJECT() (and probably some other JSON functions) now properly
handle empty strings in their arguments - JSON_OBJECT used to return
NULL, now it returns empty string.
2025-02-28 17:17:16 +04:00
Serguey Zefiov
6e539b8336 fix(MCOL-5889): Improper handle of DOUBLE result type with DECIMAL arguments
Sometimes server assigns DOUBLE type for arithmetic operations over
DECIMAL arguments. In this rare case width of result was incorrectly
adjusted and it triggered an assertion.

Now width of result gets adjusted only if result type is also DECIMAL.
2025-02-12 18:41:55 +04:00
mariadb-AlanMologorsky
d7cfa15d2a fix(client): MCOL-5587: Add quick-max-column-width for maridb clients.
This changeset enables quick (mariadb -q) mode when columnstore is
installed. Quick mode precludes client CLI program from storing too
much data in memory, preventing out of memory conditions.
Add quick-max-column-width=0 to prevent extra garbage dashes in output.
2024-12-22 16:59:13 +04:00
Sergey Zefirov
60dc7550f1 fix(group by, having): MCOL-5776: GROUP BY/HAVING closer to server's (#3371)
This patch introduces an internal aggregate operator SELECT_SOME that
is automatically added to columns that are not in GROUP BY. It
"computes" some plausible value of the column (actually, last one
passed).

Along the way it fixes incorrect handling of HAVING being transferred
into WHERE, window function handling and a bit of other inconsistencies.
2024-12-20 19:11:47 +00:00
Alexey Antipovsky
11136b3545 fix(PrimProc): MCOL-5651 Add a workaround to avoid choosing an incorrect TupleHashJoinStep as a joiner [stable-23.10] (#3331)
* fix(PrimProc): MCOL-5651 Add a workaround to avoid choosing an incorrect TupleHashJoinStep as a joiner
2024-11-08 12:51:25 +00:00
Aleksei Antipovskii
ca6c35abdd fix(dbcon) MCOL-5812 server crash related to stored functions
Using the stored function's return value as an argument
for another function was handled incorrectly, leading
to a server crash.
2024-11-05 20:33:41 +04:00
Leonid Fedorov
539db054b3 MCOL-5779: use encoding to check alter table alter column statement correctly 2024-08-30 17:54:56 +04:00
Leonid Fedorov
cd626ac8a0 fix(): MCOL-5587: revert quick mode due the interactive console bug (#3255) 2024-07-30 13:40:49 +01:00
Sergey Zefirov
7f0c281518 fix(client): MCOL-5587: enable quick mode for predictable performance (#3240) (#3243)
This changeset enables quick (mariadb -q) mode when columnstore is
installed. Quick mode precludes client CLI program from storing too
much data in memory, preventing out of memory conditions.
2024-07-11 19:05:36 +01:00