Release notes for MariaDB ColumnStore 1.4
MariaDB ColumnStore is a columnar storage engine. This is the second GA release in the ColumnStore 1.4 series. This release contains new features and fixes, compared to MariaDB ColumnStore 1.4.3.
This release of MariaDB ColumnStore is included with MariaDB Enterprise Server 10.4.13-7.
MariaDB ColumnStore 1.4.4 was released on 2020-06-08.
columnstore_use_import_for_batchinsert system variable option ALWAYS added to use cpimport for LOAD DATA LOCAL INFILE and INSERT .. SELECT regardless of whether the query runs in a transaction. This gives the user the ability to use a faster import method, with the caveat that if a user issues a rollback of the transaction, it will have no effect as the data would have already been committed to actual database files by cpimport. ()
can modify incorrect data due to incorrect WHERE clause handling. ()
A hang may occur in load_brm on dbroot1 failover. ()
may be blocked by improper failover. ()
Crash may occur when using cpimport () to process data containing multi-byte characters. ()
over negative SEC_TO_TIME() results produce an incorrect order. ()
Subqueries with ORDER and LIMIT may produce the wrong answer. ()
clause in WHERE could be evaluated improperly. ()
Subquery wrapping impacts performance. ()
Unoptimized lines (CPU impact and unnecessary rounding error) in regr_sxx, regr-sxy, and regr_syy ()
postConfigure uses invalid device nodes for dbroots. ()
startsystem allows startup without correct DBROOT 1 assignment. ()
Incorrect handling of unassigned IP addresses in configuration file. ()
Built-in SQL functions do not work in ColumnStore when sql_mode=ORACLE ()
None.
In alignment to the MariaDB Corporation Engineering Policy, MariaDB ColumnStore 1.4.4 is provided for:
Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 7
CentOS 8
CentOS 7
Note: MariaDB Enterprise ColumnStore 1.4 is no longer supported. If you would like to deploy Enterprise ColumnStore, please use MariaDB Enterprise ColumnStore 5 or later. For installation and upgrade instructions, see "Deploy".
PM failover and movePmDbrootConfig failure on CentOS 7 with glusterfs. (MCOL-3842)
FILE001.cdf:No such file or directory can occur when query, TRUNCATE and cpimport collide. (MCOL-3251)
Internal error: IDB-2035 can occur with BIT_OR function in projection and subquery in FROM (MCOL-3356)
Incorrect handling of ORDER BY can occur in some queries. (MCOL-3485)
Unexpected syntax errors could be returned from window functions. (MCOL-3580)
Format(c1,0) returns only sign, without a digit, on a decimal(1) field. (MCOL-3595)
TIMEDIFF() returns NULL instead of expected value. (MCOL-3597)
MODA() and REGR_ UDAFs are not properly created. (MCOL-3599)
BIT_COUNT(), CHARSET(), UNHEX(), and MINUTE() functions did not exist. (MCOL-3600)
regr_ tests returns doubles with higher precision than in ColumnStore 1.2. (MCOL-3631)
Window function failures could return results rather than errors. (MCOL-3632)
ISTRUE() function did not exist. (MCOL-3756)
Alternate behavior for rand() vs ColumnStore 1.2. (MCOL-3760)
Wrong error could be returned on every second run of an error-generating query. (MCOL-3777)
Internal error: IDB-2021: 'tablename' is not in GROUP BY clause could occur. (MCOL-3782)
SQLYog may encounter an error during ColumnStore cross-engine JOINs. (MCOL-3845)
GROUP_CONCAT() with ORDER BY and long doubles may fail. (MCOL-3904)
Error messages may point to the wrong function. (MCOL-3924)
Microsecond support for FROM_UNIXTIME() (MCOL-3959)
Unsupported LIMIT in correlated subqueries may give erroneous result. (MCOL-3757)
ColumnStore Tools for 1.4 were unavailable. (MCOL-3847)
postConfigure reports false positive that server is running. (MCOL-3870)
postConfigure looks in incorrect location for columnstore.cnf.rpmsave during an upgrade. (MCOL-3887)
Multi-node non-systemd installation with replication enabled fails to start. (MCOL-3985)
storagemanager.cnf variable $HOME drew path from user's environment. $HOME now points to the current location of ColumnStore data. (MCOL-4014)
Changing systemlang in Columnstore.xml to an unrecognized string will prevent ColumnStore startup. (MCOL-3420)
Ubuntu 18.04
Ubuntu 16.04
Debian 10
Debian 9
SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Server 12
MariaDB ColumnStore is a columnar storage engine. This is the first GA release in the ColumnStore 1.4 series. This release contains new features and fixes, compared to MariaDB ColumnStore 1.4.2.
This release of MariaDB ColumnStore is included with MariaDB Enterprise Server 10.4.12-6.
MariaDB ColumnStore 1.4.3 was released on 2020-03-02.
MariaDB ColumnStore 1.4.3 is the first Generally Available (GA) release of the ColumnStore 1.4 release series. ()
Support added for ALTER TABLE ... ENGINE=ColumnStore ()
Support added for CREATE TABLE ... ENGINE=ColumnStore AS SELECT ... ()
Potential data loss with S3 StorageManager when mcsadmin suspendDataWrites returns before S3 sync is complete. ()
Server aborts if Columnstore.xml is missing. (, )
A User Module (UM) join memory overflow can cause session hang and fail to free memory. ()
Improper StorageManager shutdown can result if process is killed by fatal error. ()
Truncation during
Incorrect comparison of padded string vs. non-padded column. ()
Incorrect query validation for complex ORDER BY ()
subquery does not return rows with NULL qualifying column values. ()
GROUP BY
StorageManager may log inconsistently. ()
with DISTINCT and two columns may fail. ()
If min/max are set, incorrect results may be provided after a cpimport due to incorrect extent elimination. ()
Impossible
Performance regression in and ()
Slow DDL statement execution after a restart. ()
postConfigure aborted due to missing /tmp/columnstore_tmp_files directory. ()
postConfigure output 'unassigned' alias script name. ()
columnstore-post-install isn't triggered during package install. (
Performance of some queries, such as those containing UNION, may be worse than on ColumnStore 1.2.x.
and queries currently fall back to a slower execution method.
None.
In alignment to the MariaDB Corporation Engineering Policy, MariaDB ColumnStore 1.4.4 is provided for:
Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 7
CentOS 8
CentOS 7
Note: MariaDB Enterprise ColumnStore 1.4 is no longer supported. If you would like to deploy Enterprise ColumnStore, please use MariaDB Enterprise ColumnStore 5 or later. For installation and upgrade instructions, see "Deploy".
cpimport for S3 storage with multi-PM (multi-performance module). (MCOL-3520)Failure to sync timezone variable between queries can trigger a hang. (MCOL-3776)
Failure in disk space pre-allocation for non-compressed data can trigger a crash in cpimport . (MCOL-3791)
Matched and changed row counts may be zero even if rows are changed (Rows matched: 0 Changed: 0). (MCOL-2239)
Queries containing SPACE() may return error 1178. (MCOL-3473)
WHEREHAVINGFailure to start when Server is rebooted without mcsadmin shutdownSystem first. (MCOL-3829)
ORDER BY over negative SEC_TO_TIME() results produce an incorrect order. (MCOL-3598)
Stopping Server with systemd triggers restart by ColumnStore. (MCOL-3718)
Note: 1618 COLLATE is ignored in ColumnStore was not correctly surfaced. (MCOL-3721)
Subqueries with ORDER BY ... LIMIT may produce incorrect result. (MCOL-3747)
Package removal doesn't trigger mcsadmin shutdownSystem (MCOL-3708)
Package purge doesn't remove /var/lib/columnstore (MCOL-3709)
Ubuntu 18.04
Ubuntu 16.04
Debian 10
Debian 9
SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Server 12
ERROR 1178 (42000) at line 1: The storage engine for the table
doesn't support IDB-1001: Function 'space' can only be used in
the outermost select or order by clause and cannot be used in
conjunction with an aggregate function.MariaDB ColumnStore is a columnar storage engine. This is the first release in the ColumnStore 1.4 series. This release contains new features and fixes, compared to MariaDB ColumnStore 1.2.5.
This release of MariaDB ColumnStore is included with MariaDB Enterprise Server 10.4.11-5.
MariaDB ColumnStore 1.4.2 was released on 2020-01-06.
Until now, MariaDB ColumnStore has been maintained as a custom fork of MariaDB Server, to handle the unique way that queries are handled for distributed processing.
With this release, a joint project between the MariaDB Server and MariaDB ColumnStore engineering teams, ColumnStore now works as a pluggable storage engine on the standard MariaDB Enterprise Server 10.4 platform.
MariaDB Enterprise Server 10.4 includes distributed processing engine support features. These features are not present in the older 10.3 and 10.2 release series.
A standard MariaDB Server is now used for ColumnStore UM (User Module) nodes. ColumnStore users can now enjoy the benefits of MariaDB Server 10.4, and MariaDB Server 10.4 users are now able to deploy ColumnStore on top of their existing stack.
MariaDB ColumnStore now has the ability to use any object store that is Amazon S3 API compatible. The new Storage Manager uses a persistent disk cache for read/write operations so that it has minimal performance impact on ColumnStore. In some cases it will perform better than local disk operations.
Usage instructions:
Before running postConfigure, edit the storagemanager.cnf configuration file to specify the S3 connection parameters (as detailed in the S3 section of that file), and the local machine configuration (as detailed in the ObjectStorage and Cache sections). The configuration file is documented in-line. Enable the Storage Manager by setting ObjectStorage/Service to S3
Run postConfigure, and when promoted for type of storage, select the StorageManager option.
cpimport is a high-speed bulk data loading utility for ColumnStore. cpimport now includes command-line options for loading a CSV file from Amazon S3 (and compatible) buckets.
When these options are set, cpimport will use the path/filename provided to load an object from object storage instead of a local file. Current behavior is to download the entire file into memory before processing.
(with CURRENT_TIMESTAMP)
Please note that for cpimport the current system time of the PM node is used.
The MODA() UDAF (User-Defined Aggregate Function) determines the mode average. MODA() has tie-break behavior to use the closest to the average, and then the smallest absolute value.
Statement-based replication into ColumnStore tables is supported by setting columnstore_replication_slave=on on the UM that will apply the replication data. Row-based replication events on ColumnStore replica (slave) tables will currently fail, generating an error viewable with
The performance of BRM (Block Resolution Manager) snapshots has been increased for improved performance when committing data to ColumnStore.
To reduce SSD wear and increase write performance for large data sets containing many columns, ColumnStore now allocates disk as-needed, writing only real data and padding to fill the remainder of an 8KB block. ColumnStore previously wrote twice -- once to pre-allocate an empty file for each new extent (8 million item file for a column), and a second time to fill the file with real data.
The outer "ORDER BY" of a query is now processed using ColumnStore's engine instead of MariaDB server. This uses a faster sorting algorithm for higher performance with larger result sets.
ColumnStore 1.2 and earlier included the InfiniDB engine as an alias. This alias has now been removed. All ColumnStore tables must now be created with the engine name "columnstore". All MariaDB system variables prefixed with "infinidb_" have now been removed.
vtable has been replaced with a set of query execution handlers: Select Handler, Derived Handler, and table API mode.
The vtable mode switch (infinidb_vtable_mode system variable) has been eliminated. Two new session variables have been added: columnstore_select_handler, columnstore_derived_handler
The Select Handler is the replacement for a vtable, and is the default query execution handler. It is expected to provide the fastest execution path for the whole query.
Select Handler lacks support for some vtable features, including:
Cartesian JOIN
Non-Equi JOIN
INSERT .. SELECT
SELECT INTO OUTFILE
If the Select Handler fails to execute a query, an error is returned. If a query fails under the Select Handler, set columnstore_select_handler=off for the session. This will cause the Server to hand-off query execution to the Derived Handler. The query must be restarted after the session variable has been set.
If the Derived Handler fails to execute a query, an error is returned. If a query fails under both the Select Handler and Derived Handler, set columnstore_select_handler=off and columnstore_derived_handler=off for the session. This will cause table API execution, an equivalent to disabled vtable mode in ColumnStore 1.2.x and earlier. The query must be restarted after the session variables have been set.
ColumnStore 1.4 is included with MariaDB Enterprise Server 10.4 on select Platforms.
ColumnStore is available for deployment from package tarball and repository. ColumnStore is not available for deployment from binary tarballs.
The "distributed install" method which pushed packages onto other nodes during postConfigure has been removed. ColumnStore packages must now be installed on all nodes prior to startup.
ColumnStore XML configuration files have moved to /etc/columnstore
MariaDB Enterprise Server configuration options for ColumnStore have moved to /etc/my.cnf.d/columnstore.cnf and the default MariaDB Enterprise Server my.cnf will load this file.
The ColumnStore data directory has moved to /var/lib/columnstore and is separate from the MariaDB Server data directory at /var/lib/mysql
ColumnStore binaries have moved to /usr/bin or /usr/sbin, and the libraries are in the OS standard /usr library path. Some ColumnStore binaries have been renamed to avoid conflict, including:
Cross-engine joins depend on TCP connection from ExeMgr to the Server process. Since the database root user in MariaDB Enterprise Server 10.4 authenticates only by UNIX socket, a dedicated user must be created to support cross-engine joins. The cross engine section of Columnstore.xml should be edited accordingly.
DBRM files could be deleted during a failover scenario. ()
Certain window function queries could crash the Server process. ()
group_concat() with DISTINCT concatenates even non-distinct values. ()
Wrong results could be returned for a complex query with subquery and window functions over decimal(12,4) column. ()
Pipe operator (|) could return wrong results. ()
Cosmetic typo in postConfigure output. Output upon success is now MariaDB ColumnStore Install Successfully Completed, System is Active ()
Performance of some queries, such as those containing UNION, may be worse than on ColumnStore 1.2.x.
and queries currently fall back to a slower execution method.
Columnstore_commit_hash status variable added
Columnstore_version status variable added
columnstore_compression_type system variable added
In alignment to the MariaDB Corporation Engineering Policy, MariaDB ColumnStore 1.4.4 is provided for:
Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 7
CentOS 8
CentOS 7
Note: MariaDB Enterprise ColumnStore 1.4 is no longer supported. If you would like to deploy Enterprise ColumnStore, please use MariaDB Enterprise ColumnStore 5 or later. For installation and upgrade instructions, see "Deploy".
Memory cleanup after query execution now occurs in a separate thread. This previously occurred in the main ExeMgr thread, which could delay execution of new queries.
Comparison of padded strings could provide incorrect results. (MCOL-1559)
CREATE TABLE could fail when table name contained space and certain characters; not A-Z a-z 0-9 _ (MCOL-2219)
DISTINCT could be performed in incorrect order relative to Window functions and UNION (MCOL-3492)
cpimport outputs value truncation warning when read buffer (-b) is set to 1 (MCOL-774)
Cross-engine joins with query using DISTINCT could return NULL (MCOL-3588)
Bulk write API writes were possible when writes were suspended. (MCOL-3576)
JOIN could significantly waste memory. (MCOL-1758)
Memory leaks. (MCOL-3621)
columnstore_decimal_scale system variable addedcolumnstore_derived_handler system variable added
columnstore_diskjoin_bucketsize system variable added
columnstore_diskjoin_largesidelimit system variable added
columnstore_diskjoin_smallsidelimit system variable added
columnstore_double_for_decimal_math system variable added
columnstore_group_by_handler system variable added
columnstore_import_for_batchinsert_delimiter system variable added
columnstore_import_for_batchinsert_enclosed_by system variable added
columnstore_local_query system variable added
columnstore_orderby_threads system variable added
columnstore_ordered_only system variable added
columnstore_replication_slave system variable added
columnstore_select_handler system variable added
columnstore_string_scan_threshold system variable added
columnstore_stringtable_threshold system variable added
columnstore_um_mem_limit system variable added
columnstore_use_decimal_scale system variable added
columnstore_use_import_for_batchinsert system variable added
columnstore_varbin_always_hex system variable added
Columnstore ha_columnstore.so plugin added
COLUMNSTORE_COLUMNS information schema table added
COLUMNSTORE_EXTENTS information schema table added
COLUMNSTORE_FILES information schema table added
COLUMNSTORE_TABLES information schema table added
mysqld --columnstore-columns command-line option added
mysqld --columnstore-compression-type command-line option added
mysqld --columnstore-decimal-scale command-line option added
mysqld --columnstore-derived-handler command-line option added
mysqld --columnstore-diskjoin-bucketsize command-line option added
mysqld --columnstore-diskjoin-largesidelimit command-line option added
mysqld --columnstore-diskjoin-smallsidelimit command-line option added
mysqld --columnstore-double-for-decimal-math command-line option added
mysqld --columnstore-extents command-line option added
mysqld --columnstore-files command-line option added
mysqld --columnstore-group-by-handler command-line option added
mysqld --columnstore-import-for-batchinsert-delimiter command-line option added
mysqld --columnstore-import-for-batchinsert-enclosed-by command-line option added
mysqld --columnstore-local-query command-line option added
mysqld --columnstore-orderby-threads command-line option added
mysqld --columnstore-ordered-only command-line option added
mysqld --columnstore-replication-slave command-line option added
mysqld --columnstore-select-handler command-line option added
mysqld --columnstore-string-scan-threshold command-line option added
mysqld --columnstore-stringtable-threshold command-line option added
mysqld --columnstore-tables command-line option added
mysqld --columnstore-um-mem-limit command-line option added
mysqld --columnstore-use-decimal-scale command-line option added
mysqld --columnstore-use-import-for-batchinsert command-line option added
mysqld --columnstore-varbin-always-hex command-line option added
mysqld --columnstore command-line option added
Ubuntu 18.04
Ubuntu 16.04
Debian 10
Debian 9
SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Server 12
-y
S3 Authentication Key
-K
S3 Secret Key
-t
S3 Bucket
-H
S3 Hostname (omit if using Amazon S3, this is the default)
-g
S3 Region
post-install
columnstore-post-install
getConfig
mcsGetConfig
setConfig
mcsSetConfig
This page is: Copyright © 2025 MariaDB. All rights reserved.
This page is: Copyright © 2025 MariaDB. All rights reserved.
This page is: Copyright © 2025 MariaDB. All rights reserved.