1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-04-21 19:45:56 +03:00

225 Commits

Author SHA1 Message Date
Timofey Turenko
9fa4070d9a set timezone before create datatypetestm* tables 2025-04-03 15:47:46 +03:00
Timofey Turenko
3c96c1e694 Add setting session.time_zone to +00:00 2025-04-03 02:14:31 +03: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
drrtuy
8ca8119f36 fix(TNS): fix for duplicate DISTINCT output 2025-03-27 22:12:48 +00:00
drrtuy
90b4322470 feat(): propagated changes into SLTPoolAllocator and friends 2025-03-27 22:12:48 +00:00
Amr Elmohamady
2d69b49ba0
fix(utils): MCOL-4605 handle negative decimals in FROM_UNIXTIME (#3466) 2025-03-27 22:11:16 +00: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
Sergey Zefirov
073f0b7f41
fix(MTR tests): Fixes autopilot MTR tests (#3368) (#3370)
Fixes in UBSAN related commit introduced more server-compatible
behavior that differ fom our old behavior. Thus, old tests broke and
their results had to be changed. This is what this patch does.
2024-12-13 15:48:37 +00:00
Serguey Zefirov
39a976c39a fix(ubsan): MCOL-5844 - iron out UBSAN reports
The most important fix here is the fix of possible buffer overrun in
DATEFORMAT() function. A "%W" format, repeated enough times, would
overflow the 256-bytes buffer for result. Now we use ostringstream to
construct result and we are safe.

Changes in date/time projection functions made me fix difference between
us and server behavior. The new, better behavior is reflected in changes
in tests' results.

Also, there was incorrect logic in TRUNCATE() and ROUND() functions in
computing the decimal "shift."
2024-12-10 20:30:58 +04:00
Serguey Zefirov
28bf654d85 Fix tests' results to match new diagnostics 2024-11-29 21:17:54 +04: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
ddbdb97071 chore(tests): canonize tests after server MDEV-19052
chore(tests): canonize hex(-1) after some server fixes
chore(tools) update fullmtr manual runner
chore(tests): canonize hex values for negative
2024-09-05 20:34:23 +03: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
Sergey Zefirov
db4cb1d657
MCOL-4234 and MCOL 5772 cherry-picked into [stable 23.10] (#3226)
* MCOL-4234: improve GROUP BY and ORDER BY interaction (#3194)

This patch fixes the problem in MCOL-4234 and also generally improves
behavior of GROUP BY.

It does so by introducing a "dummy" aggregate and by wrapping columns
into it. This allows for columns that are not in GROUP BY to be used
more freely, for example, in SELECT * FROM tbl GROUP BY col - all
columns that are not "col" will be wrapped into an aggregate and query
will proceed to execution.

The dummy aggregate itself does nothing more than remember last value
passed into it.

There also an additional error message that tries to explain what types
of expressions can be wrapped into an aggregate.

* MCOL-5772: incorrect ORDER BY ordering for a columns not in GROUP BY (#3214)

When ORDER BY column is not in GROUP BY, is not an aggregate and there
is a SELECT column that is also not an aggregate, there was a problem:
ordering happened on the SELECTed column, not ORDERed one.

This patch fixes that particular problem and also performs some tidying
around newly added aggregate.

---------

Co-authored-by: Leonid Fedorov <79837786+mariadb-LeonidFedorov@users.noreply.github.com>
2024-06-28 00:31:53 +04:00
Denis Khalikov
9f4231f87f
MCOL-5708 Calculate precision and scale for constant decimal. (#3227)
This patch calculates precision and scale for constant decimal
value for SUM aggregation function.
2024-06-28 00:31:03 +04:00
Denis Khalikov
88e3af4ba5
fix(plugin): MCOL-5236 Take Item from Ref_Item for group by list (#3162) (#3163)
Co-authored-by: Leonid Fedorov <79837786+mariadb-LeonidFedorov@users.noreply.github.com>
2024-06-27 17:25:57 +04:00
Leonid Fedorov
54331e1231
MCOL-4480: TEXT type added for alter table add column (#3221) 2024-06-27 17:22:41 +04:00
Leonid Fedorov
1b31fd3bdb
fix(plugin) MCOL-5699: throw error for unimplemented INTERSECT and EXCEPT (#3219) 2024-06-27 14:20:23 +04:00
Leonid Fedorov
6c6fa7d5a4
MCOL-5328: PCRE based regexp regexp_substr regexp_instr regexp_replace [stable-23.10] (#3215)
* MCOL-5328: PCRE based regexp regexp_substr regexp_instr regexp_replace

* Add qa test for MCOL-5328

---------

Co-authored-by: Susil Behera <susil.behera@mariadb.com>
2024-06-27 14:20:08 +04:00
Serguey Zefirov
2cd8f716c1 Fix MCOL-5035, a difference in INSERT and UPDATE behavior
The UPDATE statement wrote NULL when the column set is DATETIME and
value is '0000-00-00 00:00:00'. The problem was inside WriteEngine's
handling of UPDATE statements and this is where heart of change is.

Other changes are related to some obsolete data structures in DML/DDL
handling that just hanging around there, doing nothing.
2024-06-27 13:07:49 +03:00
Leonid Fedorov
cce0f6ab0c
fix(cgroups)!: Containers memory limits for CI (#3108) (#3209)
Limit test containers by memory, fix cgroup path inside the containers by introducing new ugly setting name 

---------

Co-authored-by: drrtuy <roman.nozdrin@mariadb.com>
Co-authored-by: Roman Nozdrin <rnozdrin@mariadb.com>
2024-06-20 10:48:20 +01:00
Denis Khalikov
e69dffc6f3
MCOL-5237 Proper handle DATETIME column for "ifnull" function. (#3201) 2024-06-17 17:58:11 +04:00
Serguey Zefirov
97220501ed Fixes MCOL-5700, Oracle mode test results
This changeset contains fixes in Oracle mode tests and for the
implementation of the CONCAT_ORACLE. Also, we harmonise our translation
process with the recent changes in the server.

Due to changed behavior of the server, some CREATE VIEW/EXPLAIN
statements' results begun to output unexpected results and need to be
fixed.

Also, concatenation operation's name also changed. This lead to disabled
func_concat_oracle test to be enabled to test it and it turned out that
our implementation of this function was broken and need to be fixed too.
2024-04-15 19:35:47 +03:00
Leonid Fedorov
97abd9866b fix(writeengine) MCOL-4202: use schema name when renaming table and change it's fields in syscat 2023-12-18 09:59:44 +03:00
Serguey Zefirov
a9ab71e675 MCOL-5625: Fixes json_query implementation
Also extends func_json_value.test.
2023-12-13 16:15:26 +03:00
Leonid Fedorov
b62636a6ab fix mtr according server updates 2023-12-07 00:29:47 +03:00
Denis Khalikov
58e18eeb56
fix(aggregation): MCOL-5467 Add support for duplicate expressions in group by. (#3052)
This patch adds support for duplicate expressions (builtin_functions) with
one argument in select statement and group by statement.
2023-12-05 18:29:44 +03:00
Sergey Zefirov
71f6a39078
fix(logging): Fixes MCOL-5599 where LIKE operator never finishes (#3048)
This is a fix of logging subsystem, nothing else.

The old code expanded an argument into string and advanced too little
and, if expansion contained argument's index, it expanded it again. And
again.
2023-12-03 20:17:43 +03:00
Serguey Zefirov
ab1a3fe471 Same columns fom diffeernt views in GROUP BY do not produce errors
Fixes MCOL-5643.

The problem was that different views with same column names in GROUP BY
and on the SELECT clause produced an error about "projection column is
not an aggergate neither in GROUP BY list."

This was due to incorrect search in expressions's list that lead to
duplicate columns in GROUP BY list.
2023-11-30 01:42:41 +04:00
Serguey Zefirov
9e37ab82d8 MCOL-5607: JSON function use crashes query execution
JSON functions were implemented violating an assumption of their
pureness, as they should not have any state. This concrete patch
fixes implementation of JSON_VALUE function.
2023-11-30 01:40:36 +04:00
Sergey Zefirov
b826fc1fd6 fix(datatypes, funcexp): Overflow detection for MCOL-5568 use case (and some other) (#2987)
We add intermediate calculations in int128_t when target is UBIGINT and
check for overflow before converting into the UBIGINT. This is so
because we can overflow on addition and multiplication, with (some)
signed operands or both unsigned.
2023-10-25 20:14:38 +03:00
Sergey Zefirov
920607520c
feat(runtime)!: MCOL-678 A "GROUP BY ... WITH ROLLUP" support
Adds a special column which helps to differentiate data and rollups of
various depts and a simple logic to row aggregation to add processing of
subtotals.
2023-09-26 17:01:53 +03:00
Sergey Zefirov
4bfce51628
Fix autoincrement filtering problems with utf-8 (#2964)
MCOL-5572: Widen the autoincrement column to accomodate utf-8  encoded into weights with strnxfrm function.
2023-09-22 16:40:10 +03:00
Gagan Goel
931f2b36a1
MCOL-4931 Make cpimport charset-aware. (#2938)
1. Extend the following CalpontSystemCatalog member functions to
   set CalpontSystemCatalog::ColType::charsetNumber, after the
   system catalog update to add charset number to calpontsys.syscolumn
   in MCOL-5005:
     CalpontSystemCatalog::lookupOID
     CalpontSystemCatalog::colType
     CalpontSystemCatalog::columnRIDs
     CalpontSystemCatalog::getSchemaInfo

2. Update cpimport to use the CHARSET_INFO object associated with the
   charset number retrieved from the system catalog, for a
   dictionary/non-dictionary CHAR/VARCHAR/TEXT column, to truncate
   long strings that exceed the target column character length.

3. Add MTR test cases.
2023-09-05 17:17:20 +03:00
Denis Khalikov
add3a57e8d
MCOL-5539 Put table on small side if it was involved in prev.join. (#2945) 2023-09-05 12:19:43 +03:00
Andrey Piskunov
d586975da7
Rename a limit var + change error message (#2946)
* Rename a limit var + change error message

* Adjust the test
2023-09-05 12:19:15 +03:00
mariadb-AndreyPiskunov
05547f2342 Add a limit (as runtime value) for long in queries 2023-08-21 10:38:46 +03:00
mariadb-AndreyPiskunov
6ff121a91c Replace recursion with iteration in ParseTree (and some related walkers) 2023-08-21 10:36:41 +03:00
Daniel Lee
1283f1fc4d
dlee mtr 23.08.1 (#2932)
* Added order by clause to keep results consistent over test runs

* Updated test result for the merging of MCOL-5519

* Updated test results for the merging of MCOL-4632

* Updated test result for the merging of MCOL-5519

* Added missing / to path

* Improved few tests cases

* Fixed test case name

---------

Co-authored-by: root <root@rocky8.localdomain>
2023-08-18 00:01:33 +03:00
drrtuy
f55d41c079
Merge pull request #2912 from tntnatbry/MCOL-5005
MCOL-5005 Add charset number to system catalog.
2023-08-15 22:22:21 +02:00