Maintenance Release Changelog
On this page
2021-09-07 Version 7. 0. 26
-
Fixed issue that caused an error (
Transaction rolled back mid-query
) to occur when running cross database queries in multi-statement transactions. -
Fixed a crash that could occur when
ALTER TABLE COMPRESSION=SPARSE
is run in the sameALTER
statement with an operation that doesn’t require data movement (ie., AUTOSTATS_
).ENABLED = ON -
Fixed an issue where an edge case crash could occur during concurrent columnstore
DELETE
orUPDATE
queries while escalating from row level locking to table level locking. -
Fixed a rare race condition that could cause sync replication to get stuck.
-
Fixed an issue with automatic histograms on clusters that were upgraded with the variable
cardinality_
set toestimation_ level 6.
.0 -
Increased
TasksMax
to 128000 formemsql.
in order to prevent errors and/or unexpected node behavior.service Previously, this setting was often exceeded, causing systemd
to limit the ability ofmemsqld
to fork processes. -
Updated
memsqlctl start-node
to check the validity of NUMA configurations when nodes are restarted.If the system doesn’t have NUMA configurations, the nodes will be restarted. If any of the nodes have invalid NUMA configurations, the NUMA bindings will be recalculated for all the nodes on the host.
2021-02-08 Version 7. 0. 25
-
Fixed a timeout error that occurred when running
REBALANCE PARTITIONS
on databases with large columnstore tables. -
Improved the speed of server shutdown and of recovery for databases with large numbers of tables.
This improvement is evident at 1,000 tables or more, and increases significantly after 10,000 tables. -
Fixed an issue that caused
RESTORE
commands to fail in cases where a database contained a large number of reference tables. -
Fixed an issue that caused
DROP TEMPORARY TABLE IF NOT EXISTS
to incorrectly return an error in cases where the table didn’t exist. -
Fixed a crash caused by a check on the maximum number of partitions allowed on a leaf node.
Now, an error message is surfaced when this is exceeded. -
Fixed issue that caused an error (
Transaction rolled back mid-query
) to occur when running cross-database queries in multi-statement transactions. -
Reduced blocks on
UPDATE
andDELETE
commands viabackground merger
. -
Added a new variable,
default_
, which sets a threshold for the number of rows that are locked when updating rows in a columnstore table before a table lock is acquired.columnstore_ table_ lock_ threshold For more information, see List of Engine Variables
2020-12-07 Version 7. 0. 24
-
Fixed a crash caused by timestamp values during daylight savings time changes in columnstore tables using a timestamp as a sort key or unique key.
-
Fixed a crash that occurred when querying
information_
,schema. COLUMNAR_ SEGMENTS information_
, orschema. MV_ COLUMSTORE_ FILES information_
whileschema. MV_ COLUMNAR_ SEGMENT_ INDEX ALTER TABLE … DROP INDEX …
is being run concurrently in order to drop a secondary columnstore index. -
audit logging
ALL-RESULTS
mode when clients connect using server side prepared statements.Previously, enabling audit logging disabled use of prepared statements. -
Fixed a crash that occurred when
ANY_
is included in a query.VALUE(NULL) -
Fixed a crash that occurred where a query-typed variable accesses a table via a 3-part name (for example,
dbname.
) and the database referred to does not exist.tablename. columnname Blocked the creation of pipelines which refer to computed columns or columns set via a default value in the WHERE
clause. -
Snapshots of the memsql system database are now taken more frequently.
Previously, the memsql database was slower to recover on higher latency disk than user databases; more frequent snapshots speed up restart times.
2020-10-19 Version 7. 0. 23
-
The
CHECK BLOB CHECKSUM
command now supports aWITH REPAIR
option that can repair file system corruptions as long as one copy of a corrupt columnstore blob file exists on the cluster. -
Fixed an issue that occurred when using server side prepared statements via the newer versions of the MariaDB client.
The MySQL client is unaffected. -
Fixed a wrong result issue when using
IN
with a columnstore secondary hash index, which caused only the first of multiple values with the same hash in a segment to be output. -
Fixed wrong result when using
GROUP_
withCONCAT ORDER BY
in query type variables.
2020-08-24 Version 7. 0. 22
-
Fixed an issue where
REPLICATE DATABASE
would fail in cases where no replicated database existed yet and the node containing the Master Aggregator was previously replaced with a new node. -
Now,
SHOW PROCESSLIST
returns the IP address of the client (in the Host column) if the host name cannot be resolved. -
Fixed an issue that occurred when the engine variable
interpreter_
was set tomode interpret_
, where the first run of the query remained in interpreted mode even after compilation had finished.first -
Added support for
ALTER PIPELINE .
.. . SET RESOURCE POOL -
Reduced the CPU usage required for many threads to allocate memory for variable length strings.
-
Added a new engine variable
convert_
which, when set tononunique_ hash_ to_ skiplist ON
, creates a skiplist index in place of any non-unique hash index.By default, the variable is set to OFF
. -
Pipelines no longer stop executing if free disk space drops lower than
5 * <the value of the minimal_
.disk_ space engine variable> They now stop executing if free disk space drops lower than 400 mb + <the value of the minimal_
.disk_ space engine variable> -
Improved the error message returned when
REMOVE AGGREGATOR
is run on the Master Aggregator. -
The behavior of the
max_
engine variable no longer applies to DDL queries.compilation_ time_ s Eliminating compilation timeouts for these queries, especially for ALTER TABLE
, will prevent the queries from potentially running forever. -
Fixed a compatibility issue that occurred when running newer versions of SAP Business Object Data Services (BODS) against MemSQL.
The issue was that the command SET sql_
was not supported by MemSQL.mode = <expression> -
Fixed an issue where auto-attach would fail to attach a partition but succeed in bringing the leaf online, resulting in offline partitions.
-
Ensured that any re-used existing replica partition is still forced in sync as part of the copy operation run as a step of a
REBALANCE
operation.Previously, this was a cause of failure in cases where REBALANCE
failed once prior. -
Fixed a failure when running a
ROLLUP
query over a constant expression. -
Disallowed parameter names with
.
in them when defining a function or stored procedure.
2020-07-20 Version 7. 0. 21
-
Fixed an issue where joins with reference tables are sometimes executed using Cartesian joins, even when faster joins are possible.
-
Improved the performance of rebalance partition operations that copy partitions with many small columnstore BLOB files.
-
Fixed an issue where the engine variable
explicit_
could be set to a different value on new nodes added to the cluster, as compared to the existing value already set on existing nodes.defaults_ for_ timestamp This would cause the error partition’s table metadata are out of sync
when queries were run. -
ANALYZE TABLE
now requires theSELECT
and (INSERT
orALTER
) permissions to execute. -
Improved the performance of batch deletes on columnstores.
The increase in performance depends on the encoding of the columns. -
When
preserve_
is set tooriginal_ colstore_ json ON
, null values and empty arrays are preserved in JSON columns in columnstores.
2020-06-29 Version 7. 0. 20
-
Fixed an issue where user-defined tables having the same name as system tables, such as
USERS
, were treated as case-sensitive whentable_
was set toname_ case_ sensitivity OFF
. -
SSL ciphers that use elliptic curves are now supported.
-
Added an optimizer setting that allows you to adjust the cost of performing a cross join.
-
The
STATE
column in theinformation_
view now shows a pipeline in an error state when the pipeline stops due to insufficient disk space.schema. PIPELINES -
Fixed an issue where running
STOP REPLICATING
would sometimes cause replica partitions, after becoming primary partitions, to replicate asynchronously when the original primary database used synchronous replication. -
Improved predicate transitivity rewrites to avoid adding redundant predicates.
This fixes compile timeouts for some queries with large numbers of predicates. -
Fixed an issue where filters were sometimes not being used as hash join conditions if they involved expressions.
This was causing filters to be evaluated on more rows than needed.
2020-06-09 Version 7. 0. 19
-
Correctly generate an error when running
ALTER VIEW
on a schema-bound view v1, where a schema-bound view v2 refers to v1. -
Fixed an auto-attach failure in specific failure conditions where a node quickly got marked offline and then online by the aggregator, but the node itself did not restart.
-
Improved the parallelism of heartbeat reconnects.
This fixed erroneous node failures in cases of issues causing slow connections, when multiple nodes were unhealthy. -
Fixed a crash where
VALUES
clauses inINSERT .
referred to tables not being written to.. . SELECT . . . ON DUPLICATE KEY UPDATE
2020-05-26 Version 7. 0. 18
-
Added the engine variable
json_
.extract_ string_ collation When the variable is set to AUTO
(the default setting) orJSON
, the extracted string has the same collation as the JSON object that is being extracted from.When the variable is set to server
, the extracted string has the same collation as thecollation_
variable.server -
Reduced memory usage in certain outer join queries that use single table or constant filters.
-
Fixed an issue where views using set operations (such as
INTERSECT
andMINUS
) could be parsed incorrectly when being queried. -
Fixed an issue with
INSERT .
queries that use generator functions (functions that are computed on the aggregator, with the results sent to the leaves).. SELECT -
Fixed an intermittent incorrect permission denied error that occurred when views were used in queries on secondary clusters.
-
Improved the performance of the query that is run on
information_
by MemSQL Ops schema monitoring.schema. OPTIMIZER_ STATISTICS
2020-04-27 Version 7. 0. 16
-
Added the
innodb_
engine variable.strict_ mode The django-mysql
library uses the value of this variable to connect to MemSQL. -
Improved the efficiency of locking done by the security manager to allow more concurrent login/logout operations.
-
Added an error message to return when a command fails due to a bug:
Operation
.<operation name>
failed without specifying a detailed error message -
Fixed an issue where the security checks done for temporary tables could result in an incorrect access denied error.
-
When external authentication to MemSQL (via PAM, Kerberos, etc.
) is slow, track the time needed to authenticate and add logging to the tracelog. This is done for troubleshooting purposes. -
Now, the
RESTORE
command can restore a 6.x backup to a later version, using a different database name than was specified when the database was backed up. -
Fixed an issue where views could not be queried after being created, due to a parsing error.
2020-04-06 Version 7. 0. 15
-
Fixed an issue where synchronous replication incorrectly consumed all of the disk space on the host containing either the primary or replica partitions.
The issue occurred when the host containing the replica partitions had a specific type of network connectivity problem with the host containing the primary partitions. -
Fixed an issue that could cause an online upgrade to fail if a reference database needs to reprovision in the middle of the upgrade.
-
Fixed an issue where incorrect reuse of query plans stored on disk could cause the error
No function with id 23003 exists
. -
You can specify that the
SHOW VARIABLES
command returns only cluster-wide variables. -
Fixed a bug where dropping a secondary index on a columnstore table and then adding another secondary index on the table (via
ALTER TABLE
) causes the secondary indexes on the table to become corrupted after a node restart. -
Fixed a bug where using
ALTER TABLE
to add a secondary index to a columnstore table, truncating the table, and then restarting the node would cause the added secondary index to be disabled and alters on the table to crash the node. -
Added Google Cloud Storage (GCS) pipelines to the
information_
view.schema. PIPELINES -
Added the
histogram
column to theinformation_
view.schema. COLUMN_ STATISTICS -
Added the
path
column to theinformation_
view.schema. PLANCACHE This column contains the path to the file where a query plan is stored on disk.
2020-03-23 Version 7. 0. 14
-
Avoid inaccurate sampling estimates for expressions that use
CURRENT_
.SECURITY_ ROLES() -
Fixed a crash that occurred when
PERCENTILE_
andDISC() PERCENTILE_
were used with a sub-select.CONT() -
Added
int96
support to Parquet pipelines. -
When an
EXPLAIN
query runs, return a warning when the query is run on tables containing zero rows. -
Fixed a crash that occurred during query rewrites for complex
UPDATE
andDELETE
queries having subselects. -
Fixed an error that occurred when a plan was dropped from the plancache during a distributed join.
-
Added clearer error messages when queries are unable to run due to workload manager or resource governor settings.
Also, added better logging for these errors. -
Queries that are built from
TO_
and query type values are parameterized when they run.QUERY() Parameterization of these queries allows plans to be reused in the plancache. -
Added support for pipelines that extract data from Google Cloud Storage (GCS).
-
Fixed a locking issue that could cause dropping a temporary table to fail.
2020-03-09 Version 7. 0. 13
-
Now, queries inside of stored procedures that use variables run as single partition queries if the queries only need to access data within single partitions.
Previously, these types of queries did not run as single partition queries. -
Fixed an issue where
CLEAR ORPHAN DATABASES
did not handle table names that require escaping, such as table names prefixed with#
. -
Now,
ANALYZE TABLE
incorporates the behavior of thenode_
engine variable.degree_ of_ parallelism -
Now, call the
malloc_
function less aggressively.trim() This function shrinks the memory cached by libc malloc. -
Added the columns
STORAGE_
andTYPE DISTRIBUTED
toinformation_
.schema. TABLES These columns were previously returned when running SHOW TABLES
, only. -
Now, improve the performance of queries that use hash outer joins with some types of table filters.
2020-02-18 Version 7. 0. 12
-
Fixed an incorrect
Transaction rolled back mid-query
error and other expected behavior that could occur during a multi-statement transaction if the transaction was started on at least 65 partitions. -
Fixed an error that occurred when
SELECT .
was run on a columnstore table.. . GROUP BY . . . ORDER BY RAND() -
Now, increase the number of columns that
SELECT
queries can return. -
Removed a limitation on the number of columns in a table allowed for columnstore sampling.
Increased the number of keys allowed for optimized columnstore JSON storage in some cases. -
Fixed a deadlock that is possible when the
RESTORE DATABASE
command fails and attempts to remove the restored database partitions that were created before the command failed. -
Now, cluster-wide operations that take a global lock, such as
ADD LEAF
andREBALANCE
, update theSTATE
column ofinformation_
.schema. PROCESSLIST The update indicates that a command is blocked on the lock.
2020-01-27 Version 7. 0. 11
-
Added the
columnstore_
engine variable.sample_ per_ partition_ limit This variable controls the maximum number of rows sampled per partition for columnstores. -
Now, stop examining samples of columnstore tables that have many columns.
Continue collecting samples for these types of tables. -
Fixed an issue with kerberos-related
CONFIG
clause keys inCREATE PIPELINE .
being considered invalid by HDFS pipelines; added the. . allow_
option to such pipelines to skipunknown_ configs CONFIG
clause validity checks. -
Now, periodically shrink the memory cached by libc malloc by calling
malloc_
.trim() -
Now, the
table_
engine variable can be used to change whether MemSQL treats tables, views, and table aliases as case-sensitive or case-insensitive.name_ case_ sensitivity This variable can only be changed if no user databases have been created on the cluster. -
Fixed a crash that occurred when running
UPDATE .
which sets a sparse. . SET . . . VARCHAR
column that had been previously assigned to earlier in the sameUPDATE .
query.. . SET . . . Fixed the same issue that occurred when setting a sparse DECIMAL
column. -
Fixed an issue where cross-database distributed joins could fail to cleanup the temporary result tables created to run the join.
2020-01-13 Version 7. 0. 10
-
Now, the
REPLICATE DATABASE
command requires a primary database and its secondary database to have the same durability setting (SYNC
orASYNC
). -
Fixed an issue that caused
STOP REPLICATING
to encounter an error after a database was upgraded from MemSQL 6.x to MemSQL 7. 0. -
Now,
LOAD DATA
incorporates the behavior of theignore_
engine variable.insert_ into_ computed_ column -
Fixed a crash that sometimes occurred when calling the
MAX
function on anENUM
column. -
Now, HDFS Pipelines skip files in the data source that are under the
_
directory.temporary -
Added the clause
NULL DEFINED BY .
to the syntax of. . OPTIONALLY ENCLOSED LOAD DATA .
.. . When this clause is used, LOAD DATA
countsNULL
values enclosed with quotes asNULL
s. -
Now, snapshot reference databases after
ALTER TABLE
is run.Also, snapshot all databases after TRUNCATE
is run. -
Fixed a memory leak in queries that use full-text indexes.
-
Fixed an issue with database replication that occurred when the
snapshots_
engine variable is set to 1.to_ keep -
Now, delete the existing samples associated with a table when columnstore sampling on the table is disabled.
Also, reset the sampling flag on all segments associated with the table so they will be resampled if columnstore sampling is re-enabled.
2019-12-10 Version 7. 0. 9
-
Initial GA release of MemSQL 7.
0
Last modified: June 13, 2024