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

6198 Commits

Author SHA1 Message Date
a97ff73cea init columnstore_review.sh & cs_package_manager.sh (#2969) 2023-09-26 05:59:00 +03:00
3be86a7131 Revert "feat(BRM) MCOL-5555 Reduce a number of direct writes to BRM journal/tablelocks files" (#2972)
This reverts commit 02114b5b7c.
2023-09-26 05:52:59 +03:00
02114b5b7c feat(BRM) MCOL-5555 Reduce a number of direct writes to BRM journal/tablelocks files 2023-09-25 23:39:49 +03:00
46fa03378c chore(regression-tests): add regr test to test MCS survivability 2023-09-25 22:42:05 +03:00
fd94ab5042 chore(logging): move cgroup /cgroup version log from constructor to getTotalMemory to avoid duplicate log as constructor is called per query 2023-09-25 22:17:09 +03:00
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
1eb053b46c After container starts, wait for systemd to start for every detached one (#2965) 2023-09-21 17:55:48 +03:00
7f9c624626 MCOL-5573 Fix cpimport truncation of TEXT columns.
1. Restore the utf8_truncate_point() function in utils/common/utils_utf8.h
that I removed as part of the patch for MCOL-4931.

2. As per the definition of TEXT columns, the default column width represents
the maximum number of bytes that can be stored in the TEXT column. So the
effective maximum length is less if the value contains multi-byte characters.
However, if the user explicitly specifies the length of the TEXT column in a
table DDL, such as TEXT(65535), then the DDL logic ensures that enough number
of bytes are allocated (upto a system maximum) to allow upto that many number
of characters (multi-byte characters if the charset for the column is multi-byte,
such as utf8mb3).
2023-09-20 12:23:22 -04:00
39a31fe064 Add DEVELOPING.md and Vagrantfile to improve developing documentation and flow. (#2955)
chore(docs, bootstrap): Add DEVELOPING.md and Vagrantfile to improve developer documentation and MCS bootstrap.
2023-09-20 12:09:44 +03:00
8171e9da07 Fix rocky-8 vanilla compiler build (#2959)
Co-authored-by: Leonid Fedorov <leonid.fedorov@mariad.com>
2023-09-20 04:04:08 +03:00
70111eba3d chore(external-libs): remove unused pattern matching lib b/c the standard will presumably use a different implementation for pattern matching. 2023-09-12 12:04:34 +03:00
11b3aed91b Disable Debian 12 due to mirrors errors (#2952) 2023-09-11 16:37:22 +03:00
d2aaf857f7 MCOL-5548: Fix cmapi package filenaming.
[add] dynamic year to cmapi CmakeLists
[add] package description to cmapi CmakeLists
[add] use MDB ES repo cmake dir
[fix] cmapi package filenaming
[fix] .drone.jsonnet to do cmapi build step depending on clonning mdb step
[add] cmapi_misc.cmake file
[add] lsb-release package to build deps in drone.jsonnet file
[fix] wrong debian and rpm requires curl placement
[fix] SET(CPACK_PACKAGE_FILE_NAME
[add] redhat-lsb-core package for RHEL systems
[add] SERVER_DIR argument for cmapi CmakeLists.txt
[add] get_linux_lsb_release_information() for both deb and rpm builds
2023-09-08 16:33:12 +03:00
e0d9b82705 MCOL-5021 Fix a minor bug related to the AUX column support in cpimport. 2023-09-06 16:48:54 -04:00
5f4d2705fd fix(brm): This refactors shmem RWLocks operations for EM, EMIndex and FreeList so that re-map operation always takes shmem lock in Exclusive mode
---------

Co-authored-by: Roman Nozdrin <rnozdrin@mariadb.com>
2023-09-06 21:07:44 +03:00
1c9cd9db9f Fix garbage charset using ColType(int32_t colWidth_, int32_t scale_, int32_t precision_, (#2949)
const ConstraintType& constraintType_, const DictOID& ddn_, int32_t colPosition_,
            int32_t compressionType_, OID columnOID_, const ColDataType& colDataType_);
2023-09-06 20:01:31 +03:00
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
5b4f06bf0d Logging of memory (#2930)
* -logging of memory WIP

* -better log for cgroup case

* -fix log

* -display in GIB

* add log for freememory for non CGROUP
(to be discussed)

* test repeated log entries

* -added counter for every 1000 call. effectivly 15m

* Name logginng period and inrease it, clear config files from PR, add .gitignore

---------

Co-authored-by: pgmabv99 <alexey.vorovich@gmail.com>
Co-authored-by: Leonid Fedorov <leonid.fedorov@mariadb.com>
2023-09-05 15:46:29 +03:00
add3a57e8d MCOL-5539 Put table on small side if it was involved in prev.join. (#2945) 2023-09-05 12:19:43 +03:00
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
4172cf8e71 fix(bootstrap_mcs): this fixes 'unknown columnstore_use_import_for_batchinsert variable' error (#2940)
The charset default patch introduced a new unrelated default value for columnstore plugin
    affecting bootstrap_mcs.sh fragile logic.

Co-authored-by: Roman Nozdrin <rnozdrin@mariadb.com>
2023-08-22 18:04:07 +03:00
c7b18e1e38 Merge pull request #2817 from mariadb-corporation/MCOL-5468
Remove recursion from ParseTree and add runtime limit for IN queries
2023-08-22 17:07:12 +03:00
05547f2342 Add a limit (as runtime value) for long in queries 2023-08-21 10:38:46 +03:00
6ff121a91c Replace recursion with iteration in ParseTree (and some related walkers) 2023-08-21 10:36:41 +03:00
765dd46b61 fix(pp-threadpool): the workaround for a stuck tests001 in CI (#2931)
CI ocassionaly stuck running test001 b/c PP threadpool endlessly reschedules
    meta jobs, e.g. BATCH_PRIMITIVE_CREATE, which ByteStreams were somehow damaged or read out.

Co-authored-by: Leonid Fedorov <leonid.fedorov@mariadb.com>
2023-08-18 00:02:31 +03:00
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
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
d50a0fa2e6 MCOL-5005 Add charset number to system catalog - Part 2.
1. Extend the calpontsys.syscolumn system catalog table
  with a new column, 'charsetnum'.

  'charsetnum' field is set to the 'number' member of the
  'charset_info_st' struct defined in the server in m_ctype.h.

  For CHAR/VARCHAR/TEXT column types, 'charset_info_st' is
  initialized to the charset/collation of the column, which
  is set at the column-level or at the table-level in the DDL.

  For BLOB/VARBINARY binary column types, 'charset_info_st' is
  initialized to my_charset_bin (charsetnum=63).

  For all other column types, charsetnum is set to 0.

  2. Add support for the newly added 'charsetnum' column in the
  automatic system catalog upgrade logic in dbbuilder.

  For existing table definitions, charsetnum for the column is
  defaulted to 0.

  3. Add MTR test case that creates a few table definitions with
  a range of charset/collation combinations and queries the
  calpontsys.syscolumn system catalog table with the charsetnum
  field for the columns in the table DDLs.
2023-08-15 17:21:47 +00:00
64f1d541d0 MCOL-5519: new defaults in columnstore.cnf (#2894)
feat(charset)!: utf8 is a new charset default and utf8_general_ci is a new collation default in the engine configuration file shipped
---------

Co-authored-by: Leonid Fedorov <leonid.fedorov@mariadb.com>
Co-authored-by: mariadb-DanielLee <daniel.lee@mariadb.com>
2023-08-15 18:04:32 +03:00
712d34a407 MCOL-4988 Table lock remained after DML failure due to DBRM in read-only mode.
DMLProcessor functor earlier did not check if the DBRM was in read-only mode.
This allowed DML statements to continue execution to the point where it locks
the table and then sends the statement down to the WriteEngineServer, which
ultimately returns back in an error state to DMLProc when it fails to perform
BRM updates due to DBRM in read-only mode. This caused a lingering table lock
in the system which could only be cleared on a system restart.

As a fix, we add a check in the DMLProcessor functor to detect if DBRM is in
read only mode, and if so, return back early in the execution of the DML
statement.
2023-08-15 10:25:27 -04:00
c97c8b672e Merge pull request #2874 from phoeinx/mcol-4632-4648-int-casts
Fix MCOL 4632 and 4648 and further issues when casting to [U]BIGINT.
2023-08-11 21:23:29 +01:00
c672edfda4 Vscode nonroot debug launch2 (#2929)
* -vscode add launch config for all processes
- -fg option used
- tested with primproc only. will others test later

* -change -fg option to -f

---------

Co-authored-by: pgmabv99 <alexey.vorovich@gmail.com>
2023-08-11 23:04:29 +03:00
426557380c fix(cmapi, brm): MCOL-5535 Use an accurate glob when forcing owner of files in /dev/shm on startup (#2923)
Co-authored-by: Roman Nozdrin <rnozdrin@mariadb.com>
2023-08-11 20:04:12 +03:00
06d7345630 Merge pull request #2926 from mariadb-corporation/fix/MCOL-5553-not-running-savebrm
MCOL-5553: Not running save_brm on a single node without CMAPI.
2023-08-11 17:10:41 +01:00
66ec9f039b MCOL-5553: Not running save_brm on a single node without CMAPI.
[add] LOCALHOSTS tuple to mcs-savebrm script
[fix] detecting primary when no working CMAPI found
2023-08-11 18:22:59 +03:00
48562e41f9 feat(datatypes): MCOL-4632 and MCOL-4648, fix cast leads to NULL.
Remove redundant cast.

As C-style casts with a type name in parantheses are interpreted as static_casts this literally just changes the interpretation around (and forces an implicit cast to match the return value of the function).

Switch UBIGINTNULL and UBIGINTEMPTYROW constants for consistency.

Make consistent with relation between BIGINTNULL and BIGINTEMPTYROW & make adapted cast behaviour due to NULL markers more intuitive. (After this change we can simply block the highest possible uint64_t value and if a cast results in it, print the next lower value (2^64 - 2). Previously, (2^64 - 1) was able to be printed, but (2^64 - 2) as being blocked by the UBIGINTNULL constant was not, making finding the appropiate replacement value to give out more confusing.

Introduce MAX_MCS_UBIGINT and MIN_MCS_BIGINT and adapt casts.

Adapt casting to BIGINT to remove NULL marker error.

Add bugfix regression test for MCOL 4632

Add regression test for mcol_4648

Revert "Switch UBIGINTNULL and UBIGINTEMPTYROW constants for consistency."

This reverts commit 83eac11b18937ecb0b4c754dd48e4cb47310f620.
Due to backwards compatability issues.

Refactor casting to MCS[U]Int to datatype functions.

Update regression tests to include other affected datatypes.

Apply formatting.

Refactor according to PR review

Remove redundant new constant, switch to using already existing constant.

Adapt nullstring casting to EMPTYROW markers for backwards compatability.

Adapt tests for backward compatability behaviour allowing text datatypes to be casted to EMPTYROW constant.

Adapt mcol641-functions test according to bug fix.

Update tests according to new expected behaviour.

Adapt tests to new understanding of issue.

Update comments/documentation for MCOL_4632 test.

Adapt to new cast limit logic.

Make bracketing consistent.

Adapt previous regression test to new expected behaviour.
2023-08-11 13:00:30 +00:00
4b20ced6a7 -add vscode/gdb support for non-root user (#2924)
Co-authored-by: pgmabv99 <alexey.vorovich@gmail.com>
2023-08-10 21:10:10 +03:00
f2affca162 MCOL-5478 upgrade tests (#2815)
* Squash all

* Typos

* Only load shared on centos

* Debug

* Install rsyslog

* More exceptions

* One more exception

* rename pkgs

* Remove unnecessary copying

* deb doesn't work on arm with 1-4

* Disable CentOS

* Remove flights

* Use setup-repo

* Exclude deb12
2023-08-04 18:43:52 +03:00
896e8dd769 MCOL-5522 Properly process pm join result count. (#2909)
This patch:
1. Properly processes situation when pm join result count is exceeded.
2. Adds session variable 'columnstore_max_pm_join_result_count` to control the limit.
2023-08-04 16:55:45 +03:00
4f580d109d Fix a compiler error related to signed v/s unsigned integer comparison. (#2915) 2023-08-04 16:54:40 +03:00
a36ea6dbb4 MCOL-5005 Add charset number to system catalog - Part 1.
This patch improves/fixes the existing handling of CHARSET and
COLLATION symbols in the ColumnStore DDL parser.

Also, add fCollate and fCharsetNum member variables to the
ddlpackage::ColumnType class.
2023-07-28 18:36:53 -04:00
1a49a09af3 Merge pull request #2878 from denis0x0D/MCOL-5514_dev_1
MCOL-5514 Parallel disk join step
2023-07-25 14:32:13 +01:00
65cde8c894 feature: pron (#2908)
* feature: Special dictionary, we can pass with session veriable to modify codepaths and behaviour for testing and debugging
2023-07-21 14:02:03 +03:00
510bdd0e7b ci: add backtraces for all CS processes after 4800secs (=1.20 hour) o… (#2903)
* ci: add backtraces for all CS processes after 4800secs (=1.20 hour) of test001.sh

---------

Co-authored-by: mariadb-AndreyPiskunov <andrey.piskunov@mariadb.com>
2023-07-18 20:31:44 +03:00
d86204b9c8 Merge pull request #2899 from mariadb-corporation/simpler_singletons
MCOL-5532: Simpler singletons
2023-07-17 11:28:15 +01:00
70951db9c6 Merge pull request #2901 from mariadb-corporation/pidof-binary-develop
ci: add centos7 pidof package, format jsonnet
2023-07-16 10:49:15 +01:00
5a370cae8c ci: add centos7 for pidof, eu-stack for deb, format jsonnet 2023-07-15 21:18:51 +02:00
e290d436e9 Merge pull request #2895 from denis0x0D/MCOL-5522
MCOL-5522 Temporary disable join match limit on BPP
2023-07-14 16:56:03 +01:00
8d06822be5 atomic stop flag 2023-07-12 18:17:13 +03:00
aead012f9f Simpler OAM 2023-07-12 18:15:51 +03:00