8. 5 Release Notes
On this page
Note
-
To deploy a SingleStore 8.
5 cluster, refer to the Deploy SingleStore Guide. -
To make a backup of a database in this release or to restore a database backup to this release, follow this guide.
-
The data_
conversion_ compatibility_ level engine variable now defaults to '8.
in new installations.0' This results in stricter data type conversions. The value is not changed when upgrading to version 8. 0. This new data_
setting additionally flags invalid string-to-number conversion inconversion_ compatibility_ level INSERT
statements,PIPELINES
,LOAD DATA
commands, and type casts.Applications will likely see more compatibility issues flagged when run against installations with
data_
set toconversion_ compatibility_ level '8.
than when run with a lower compatibility level.0' -
New deployments of SingleStore 8.
5 require a 64-bit version of RHEL/AlmaLinux 7 or later, or Debian 8 or later, with kernel 3. 10 or later and glibc
2.17 or later. Refer to the System Requirements and Recommendations for additional information.
Release Highlights
Note
This is the complete list of new features and fixes in engine version 8.
Indexed Approximate-Nearest-Neighbor Search
A major feature introduced in this release is support for Vector Indexing.
Query Plan Pinning
SingleStore now offers query plan pinning.
Query plan pinning can be used to prevent query plan regression after automatic upgrades.
Extensions
Extensions in SingleStore allow you to combine user-defined objects, such as UDFs or UDAFs, into a packaged archive (the extension) and then create, manage, and deploy these objects and other resources using a single command.
Trace Events and Query History
Added the ability to trace query completions as events, which is the initial installment of the larger event tracing framework.
Trace Log Rotation
SingleStore now has a built-in trace log rotation function.logrotate
or similar, you will need to disable that before enabling this new rotation feature.
The built-in trace log rotation feature can be configured to rotate logs based on their size, based on time, or both.
The new trace log rotation feature is disabled by default.
Improved Memory Management for Resource Pools
Added the QUERY_
option for resource pools, which restricts memory usage in the pool on a per-individual query basis.MEMORY_
which restricts usage based on total memory used within the current pool.
For example, when creating or altering a resource pool, setting MEMORY_
to 60%
and QUERY_
to 50%
would configure the system so that all queries running within the specified resource pool should together use a maximum of 60% of system memory, and any single query running within the pool should use, at most, 50% of system memory.
CREATE RESOURCE POOL rpoolmain WITHMEMORY_PERCENTAGE = 60,QUERY_MEMORY_PERCENTAGE = 50,SOFT_CPU_LIMIT_PERCENTAGE = 65,MAX_CONCURRENCY = 40;
Load Data Updates
SingleStore now supports loading data using the Change Data Capture (CDC) pipelines from the following data sources: MongoDB® and MySQL.
Projections
New Feature: Added ability to create a Projection which is a copy of some or all columns in a table, and may be sharded and sorted differently than the primary table.ORDER BY
/LIMIT
, GROUP BY
, count(DISTINCT.
, DISTINCT
, joins, and row lookups on secondary keys.
Other Improvements and Fixes
Other Performance Enhancements
-
SingleStore now supports creating shallow copies of tables.
The WITH SHALLOW COPY
feature copies an existing table and creates a new table that will have the same structure as the original table.The data is not physically copied to the new table, but referenced against the original table. -
SingleStore now supports sorted scan query plan operators for queries containing
ORDER BY/LIMIT
clauses when utilizing flexible parallelism.Before this enhancement, there could be performance regressions for this query shape using flexible parallelism. -
Improved performance when completing large sets of security operations (creating a lot of groups/users/roles, etc.
). -
Added the ability to use named argument notation when calling a PSQL SP or function.
Can reduce total lines of code and make code more readable. -
Added reduction of memory pre-allocation during columnstore JSON reads.
-
Added ability to check if all leaf node partitions are available, before processing new batches.
-
Addressed a table resolution issue for embedded recursive Common Table Expressions (CTEs).
Query Optimization Enhancements:
-
Added support for Row Count and Selectivity hints in views.
-
Added new join logic to recognize when a non-reference table is being joined exclusively to reference tables and then gather the non-reference table to avoid duplicating work across every partition.
-
Remove redundant aggregation functions and
GROUP BY
statements. -
JSON expressions are properly pushed down.
-
Allow columnstore optimization for
JSON_
withMATCH_ ANY JSON_
in predicate.EXTRACT -
Added support for hash joins on null-accepting expressions in the
ON
condition of outer joins. -
Automatically rewrite
A=B OR (A IS NULL AND B IS NULL)
to null safe equal(A<=>B)
so that many important optimizations (e.g. shard key joins, hash joins) will work. -
Perform a subselect to join rewrite in an
UPDATE
statement when there are multiple columns in the subselect. -
Removed some query shape lockdowns.
-
Added support for flipping join order for full outer join.
-
Improved performance by not executing query optimization procedures for read queries during the process of persistent plan cache lookup.
This optimization strategy has resulted in improved lookup performance, leading to faster data retrieval operations. -
Added support for statistics on correlations between columns in cases where highly correlated filters are used.
-
The Data API now supports HTTPS for connections where
ssl_
is encrypted withkey ssl_
.key_ passphrase -
Removed parametrization of
LIMIT 0
andLIMIT 1
to unlock more rewrites, especially for subselects. -
Modified computed column matching to accurately evaluate JSON expressions containing equality and non-safe equality comparisons.
-
Fixed an issue where filtering with a
JSON_
function performs inconsistently.EXTRACT_ <type> -
The query optimizer now considers more
LEFT JOIN
elimination cases.
New Information Schema Views and Columns
-
Enhancement: Added the
TABLE_
column to theNAME LOAD_
information schema view.DATA_ ERRORS TABLE_
is the name of the table associated with the error.NAME (8. 5. 38) -
Enhancement: Fixed the
KILLED_
counter inQUERIES MV_
.RESOURCE_ POOL_ STATUS (8. 5. 33) -
Enhancement: Add bottle service reliability metrics to
MV_
.BOTTOMLESS_ STATUS_ EXTENDED (8. 5. 32) -
New Feature: New Projections-related information schema table: PROJECTIONS.
(8. 5. 14) -
Enhancement: Added the
usage_
information schema table, which shows the state of the usage telemetry feature and also an example of a telemetry report.telemetry_ status (8. 5. 10) -
Enhancement: Added the
blob_
andcache_ miss_ b blob_
columns to the following information schema views:cache_ wait_ time_ ms information_
,schema. plancache information_
,schema. MV_ ACTIVITIES information_
,schema. MV_ ACTIVITIES_ CUMULATIVE information_
,schema. MV_ TASKS information_
, andschema. MV_ FINISHED_ TASKS information_
.schema. MV_ QUERY_ ACTIVITIES_ EXTENDED_ CUMULATIVE (8. 5. 2) -
Added a new view,
correlated_
, to provide metadata on correlated columns.column_ statistics -
Added a new view,
RESOURCE_
, to provide information about resource pool grants and privileges.POOL_ PRIVILEGES -
Added the following new columns to
MV_
:BACKUP_ HISTORY -
error_
: Error code for failed backups.code -
error_
: Error message for failed backups.message
-
-
Added the following new columns to
MV_
:SYSINFO_ DISK -
read_
: Number of read operations performed by the device since start up.operations_ cumulative_ per_ device -
write_
: Number of write operations performed by the device since start up.operations_ cumulative_ per_ device -
device_
: Name of the device to which the values inname read_
andoperations_ cumulative_ per_ device write_
are associated.operations_ cumulative_ per_ device
-
-
Added the following to support trace events that are used by the Query History feature:
-
MV_
: A snapshot of all trace events, the size of which is dictated by theTRACE_ EVENTS trace_
variableevents_ queue_ size -
MV_
: A view that reflects the status of current trace eventsTRACE_ EVENTS_ STATUS -
LMV_
: A snapshot of each node's trace eventsTRACE_ EVENTS
-
-
Added the following new column to
ADVANCED_
,HISTOGRAMS L/MV_
, andQUERY_ PROSPECTIVE_ HISTOGRAMS L/MV_
:PROSPECTIVE_ HISTOGRAMS -
JSON_
: an entry for each (column, json_KEY key) pair. For non-json columns JSON_
is NULL.KEY
-
-
Bugfix: Updated the
information_
view to reflect the account status for locked users.schema. USERS
New Commands and Functions
-
Enhancement: Added the
EXPORT TELEMETRY
SQL command, used to write usage telemetry data to a local file.(8. 5. 10) -
Enhancement:
INFER PIPELINE
for MongoDC CDC-in now generates tables with BSON column types.(8. 5. 3) -
Added support for the
REGEXP_
function.MATCH() This function returns a JSON array of matching substring(s) within the first match of a regular expression pattern to a string. -
Added support for
CUBE
andROLLUP
grouping operations to Wasm-based user-defined aggregate functions (UDAFs) in SingleStore.For more information, refer to CREATE AGGREGATE. -
Added the following to support trace events that are used by the Query History feature:
-
CREATE EVENT TRACE
to create a trace event -
DROP EVENT
to drop a trace event
-
-
Added ability to use
DELETE
on identical keys with theON DUPLICATE KEY
clause.This is in addition to existing "upsert" support with ON DUPLICATE KEY UPDATE
.This allows new scenarios such as the ability to manage streaming aggregation with INSERT … ON DUPLICATE KEY UPDATE … ELSE DELETE ….
New or Modified Engine Variables
-
Enhancement: Added a new
max_
global variable that sets the maximum number of merger threads that the autostats updater can run on.autostats_ update_ workers (8. 5. 33) -
Enhancement: Added a new filter derivation rewrite controlled by the
optimizer_
engine variable.not_ null_ filter_ derivation (8. 5. 33) -
Enhancement: Added a new engine variable
costing_
which sets the maximum amount of tables we allow in full DQO estimate search when filling table row estimates for distributed join hints.max_ djo_ tables (8. 5. 16) -
Enhancement: Made the following engine variable settable in SingleStore Helios (8.
5. 15): multi_
insert_ tuple_ count, columnstore_ row_ value_ table_ lock_ threshold, internal_ columnstore_ max_ uncompressed_ blob_ size, internal_ columnstore_ max_ uncompressed_ rowindex_ blob_ size, columnstore_ validate_ blob_ before_ merge, default_ max_ histogram_ buckets, enable_ varbuffer_ dictionary_ compression, enable_ alias_ space_ trim, skip_ segelim_ with_ inlist_ threshold, default_ autostats_ histogram_ mode, default_ autostats_ columnstore_ cardinality_ mode, default_ autostats_ rowstore_ cardinality_ mode, default_ autostats_ columnstore_ sampling, experimental_ disable_ multipartition_ parallel_ read, internal_ enable_ parallel_ query_ throttling, enable_ spilling, spilling_ node_ memory_ threshold_ ratio, spilling_ query_ operator_ memory_ threshold, regexp_ compile_ mem_ mb, selectivity_ estimation_ min_ sample_ size, repartition_ minimum_ buffer_ size, use_ seekable_ json, json_ document_ max_ children, json_ document_ max_ leaves, json_ document_ sparse_ children_ check_ threshold, json_ document_ sparse_ children_ check_ ratio, json_ document_ absolute_ sparse_ key_ check_ ratio, json_ document_ page_ data_ soft_ limit, ignore_ insert_ into_ computed_ column, max_ subselect_ aggregator_ rowcount, leaf_ pushdown_ enable_ rowcount, reshuffle_ group_ by_ base_ cost, max_ broadcast_ tree_ rowcount, enable_ broadcast_ left_ join, display_ full_ estimation_ stats, force_ bushy_ joins, force_ heuristic_ rewrites, force_ table_ pushdown, force_ bloom_ filters, explain_ joinplan_ costs, statistics_ warnings, optimizer_ warnings, optimize_ constants, optimize_ huge_ expressions, optimize_ expressions_ larger_ than, optimize_ stmt_ threshold, quadratic_ rewrite_ size_ limit, batch_ external_ functions, batch_ external_ functions_ size, optimizer_ enable_ json_ text_ matching, optimizer_ enable_ orderby_ limit_ self_ join, distributed_ optimizer_ broadcast_ mult, distributed_ optimizer_ old_ selectivity_ table_ threshold, distributed_ optimizer_ selectivity_ fallback_ threshold, distributed_ optimizer_ verbose, old_ local_ join_ optimizer, optimizer_ hash_ join_ cost, optimizer_ merge_ join_ cost, optimizer_ nested_ join_ cost, optimizer_ disable_ right_ join, interpreter_ mode_ sampling_ threshold, hash_ groupby_ segment_ distinct_ values_ threshold, sampling_ estimates_ for_ complex_ filters, enable_ histogram_ to_ unwrap_ literals, estimate_ zero_ rows_ when_ sampling_ data_ is_ missing, exclude_ scalar_ subselects_ from_ filters, leaf_ pushdown_ default, distributed_ optimizer_ nodes, optimizer_ num_ partitions, enable_ binary_ protocol, enable_ multipartition_ queries, enable_ local_ shuffle_ group_ by, enable_ skiplist_ sampling_ for_ selectivity, columnstore_ sample_ per_ partition_ limit, disable_ sampling_ estimation, disable_ histogram_ estimation, inlist_ precision_ limit, allow_ materialize_ cte_ with_ union, optimizer_ cross_ join_ cost, distributed_ optimizer_ run_ legacy_ heuristic, distributed_ optimizer_ min_ join_ size_ run_ initial_ heuristics, distributed_ optimizer_ unrestricted_ search_ threshold, singlebox_ optimizer_ cost_ based_ threshold, distributed_ optimizer_ estimated_ restricted_ search_ cost_ bound, disable_ reference_ table_ leftjoin_ where_ pushdown, disable_ sampling_ estimation_ with_ histograms, disable_ subquery_ merge_ with_ straight_ joins, default_ columnstore_ table_ lock_ threshold, default_ spill_ dependent_ outputters, query_ rewrite_ loop_ iterations, verify_ fields_ in_ transitivity, optimizer_ min_ reference_ tables_ for_ gathered_ join, optimizer_ min_ reference_ rows_ for_ gathered_ join, max_ expression_ query_ limit, max_ expression_ item_ limit, optimizer_ empty_ tables_ limit, optimizer_ beam_ width, optimizer_ disable_ subselect_ to_ join, disable_ remove_ redundant_ gby_ rewrite, subquery_ merge_ with_ outer_ joins, optimizer_ disable_ operator_ tree_ nullability_ check, clamp_ histogram_ date_ estimates, varchar_ column_ string_ optimization_ length, histogram_ column_ correlation, use_ column_ correlation, consider_ secondary_ projection, optimizer_ disable_ semi_ join_ reduction, optimizer_ gb_ placement_ table_ limit, optimizer_ disable_ transitive_ predicates -
Enhancement: The Tracelog rotation threshold now applies to rotated logs.
Added two new engine variables to control the total size of retained log files: auditlog_
andretention_ size tracelog_
.retention_ size (8. 5. 13) -
Enhancement: Dedicated Admin Connections via a TCP port.
Added two new engine variables, enable_
anddac_ ip_ port dac_
- these can be used to open an extra mysql port on startup which will accept dedicated admin connections.ip_ port (8. 5. 13) -
Enhancement: Added the
send_
engine variable used to enable/disable the collection and sending of usage telemetry data.usage_ telemetry This defaults to OFF. (8. 5. 10) -
Enhancement: Added the
verbose_
engine variable used to enable/disable logging to heartbeat thread in order to better diagnose process stalls.time_ heartbeat_ thread The default value is off
, setting this toon
will enable the logging.(8. 5. 10) -
Enhancement: The new engine variable
parametrize_
allows JSON keys to be parametrized and plans can be reused.json_ keys (8. 5. 7) -
Enhancement.
Added an engine variable, innodb_
.lock_ wait_ timeout This variable exists for backwards compatibility with MySQL and is non-operational in SingleStore. (8. 5. 6) -
Enhancement: The engine variable
backup_
maximum value has been increased to 15.multipart_ upload_ concurrency (8. 5. 4) -
Enhancement: The new engine variable
max_
sets the maximum amount of memory required when creating or attaching a database.table_ memory_ room_ mb Configuring this engine variable allows more control over whether a detached database can be reattached. (8. 5. 4) -
Added
enable_
andidle_ table_ optimizations enable_
, which are used to reduce table memory overhead for idle tables on a cluster.idle_ table_ eviction The feature is enabled by default on all new and existing clusters. The variable enable_
needs to be set at runtime and requires a restart for changes to take effect.idle_ table_ optimizations It can be set to OFF or ON (default). The other related variable, enable_
, can be set during a session (though a very small amount of overhead will remain until the server is restarted) and can be set to Full, SkipListsOnly, and Off.idle_ table_ eviction It defaults to SkipListsOnly, which means SingleStore will only evict skiplist indexes for idle tables on the cluster. Full means it will evict skiplists and table modules, and Off means no eviction. -
The engine variable
lockfree_
is now deprecated.backup -
The engine variable
disable_
is now deprecated.update_ delete_ distributed_ transactions -
Added the
bottomless_
engine variable, which when enabled, completes additional verification of persisted files immediately after upload.experimental_ blobstore_ mode This mode is experimental and may reduce upload speed. Please use with caution. -
Added
privilege_
, which can be used to address some performance issues that occur when performing large sets of security operations (creating a lot of groups/users/roles, etc.caches_ update_ mode ). -
Added the
optimizer_
engine variable which can be used to now allow row size estimations in query optimization costing.use_ average_ rowsize -
The
query_
engine variable (which was deprecated in 8.parallelism 1) now is non-functional. To modify Flexible Parallelism settings, use query_
instead.parallelism_ per_ leaf_ core -
Added the
use_
engine variable which controls what will be displayed via theuser_ provided_ index_ types_ in_ show DESCRIBE <table_
orname> SHOW COLUMNS
syntaxes for backward compatibility. -
Added the
throttle_
engine variable which controls how far the system allows a child aggregator to lag behind replicating the transaction log of it's master aggregator before throttling is applied to the master aggregator.replay_ behind_ tail_ mb -
Added the ability to use the
ANALYZE
command with JSON keys to create histograms when the new engine variableenable_
is enabled.json_ statistics The engine variable enable_
is disabled by default.json_ statistics -
Added
trace_
to capture trace events, the first of which is query event tracing.events_ queue_ size This engine variable is disabled by default (set to a value of 0
MB, where the value must be provided in bytes).Refer to Query History for more information. -
Added the
optimizer_
engine variable which disables predicate transitivity on query rewrites if set todisable_ transitive_ predicates TRUE
.This engine variable defaults to FALSE
. -
Added the
java_
engine variable to specify the path of the (JRE 11+)pipelines_ java11_ path java
binary. -
Added a new engine variable
pipelines_
to specify the JVM heap size limit for CDC-in pipelines.cdc_ java_ heap_ size
Miscellaneous
-
New feature: Added support for the
file_
parameter in thecompression CONFIG
clause ofCREATE PIPELINE AS .
statement.. . LOAD DATA S3 Decompresses files with the specified extensions. Refer to S3 Configurations for more information. (8. 5. 38) -
Bugfix: Fixed bottomless upload throttling criteria.
(8. 5. 38) -
Bugfix: Blocked creation of temporary table as a shallow copy.
(8. 5. 38) -
Bugfix: Fixed display of default BSON and string values with null-terminators in the information_
schema. (8. 5. 38) -
Bugfix: Fixed
IN
-list index matching for columnstore tables when a query has multipleIN
-list predicates.(8. 5. 38) -
Bugfix: Fixed a bug that led to a master aggregator crash when using dynamic resource pools.
(8. 5. 37) -
Bugfix: Fixed a crash that occurred during spilling when executing a query with a large number of
GROUP BY
columns.(8. 5. 37) -
Bugfix: Allowed cached table memory to be freed for empty tables in replica databases.
(8. 5. 37) -
Bugfix: Fixed a deadlock in a corner case involving index eviction and replaying two-phase commit transactions.
(8. 5. 37) -
Bugfix: Fixed the result of
ORDER BY .
queries on tables with a sort key column defined in. . LIMIT DESC
order.(8. 5. 37) -
Bugfix: Fixed an issue caused when multi-part names were used in common table expressions (CTEs) within
UNION
.(8. 5. 37)
-
Enhancement: Improved out of memory (OOM) error message to make the message more accurate.
(8. 5. 36) -
Bugfix: Fixed a crash that could occur when columns were dropped with
ALTER TABLE
.(8. 5. 36) -
Bugfix: Fixed an issue where left join sometimes returned an incorrect result when spilling occurred.
(8. 5. 36) -
Enhancement: Improved the performance of regular expression (regex) operations.
(8. 5. 35) -
Bugfix: Fixed deadlock in db recovery due to evicting table module holding an open LOCK.
(8. 5. 34) -
Bugfix: Fixed an issue where the garbage collection of a partition database's 2PC transaction table could unnecessarily delay the reprovisioning of the reference database.
(8. 5. 34) -
Enhancement: When printing the table digest SHA value, the table DDL schema is also printed to
memsql_
.METADATA. log (8. 5. 33) -
Enhancement: Added metrics to track the availability of unlimited storage and the bottle service.
(8. 5. 32) -
Bugfix: Fixed a certificate refresh issue for connections to remote storage in long-running clusters.
(8. 5. 32) -
Bugfix: Fixed a rare issue where a membership-related clustering operation could delay the re-provision or deletion of a cluster database.
(8. 5. 32) -
Bugfix: Fixed an issue where
JSON_
queries withMATCH_ ANY() MATCH_
evaluated incorrectly on non-array values.ELEMENTS (8. 5. 32) -
Bugfix: Fixed sporadic reading failures from
MV_
.SYSINFO_ CPU (8. 5. 32) -
Bugfix: Fixed an issue in
ALTER TABLE
when adding a computed column containingJSON_
.BUILD_ OBJECT (8. 5. 21) -
Bugfix: Addressed a crash issue with
REGEX_
.REPLACE (8. 5. 21) -
Bugfix: Reduced stack usage during compilation for some
CASE
expressions with manyWHEN-THEN
statements.(8. 5. 20) -
Bugfix: Fixed a potential deadlock issue between background garbage collector threads and foreground query execution threads.
(8. 5. 20) -
Bugfix: Fixed a collation issue in the
JSON_
information schema table.COLUMN_ SCHEMA (8. 5. 20) -
Enhancement: SingleStore now supports module eviction of idle tables with an
ALTER
history.ALTER includes CREATE INDEX, ALTER TABLE ADD COLUMN, and some others. (8. 5. 20) -
Bugfix: Fixed a bug with Wasm UDFs where
REPLACE FUNCTION
did not correctly evict from the plancache, causing continued usage of the old UDF after replacement.(8. 5. 19) -
Bugfix: Fixed an upgrade issue present in version 8.
5. 17. (8. 5. 18) -
Bugfix: Fixed a BSON issue that could occur when large documents are read and mistakenly reported as corrupted.
(8. 5. 18) -
Enhancement: Upgraded OpenSSL 1.
0. 2u to 1. 0. 2zj (8. 5. 18) -
Bugfix: Fixed a crash issue that could occur under a rare race condition in some distributed join queries.
(8. 5. 18) -
Bugfix: Fixed statement atomicity in transactions writing to tables that have projections on them.
(8. 5. 18) -
Enhancement: Allow Kerberos users to skip password validation for users who are authenticated with plugins.
(8. 5. 18) -
Enhancement: Added support for loading data from compressed Avro datafiles.
(8. 5. 17) -
Bugfix: Fixed an issue that occurred when primary key is NULLABLE when copying a table using "Create table as select" statement.
(8. 5. 17) -
Bugfix: Addressed a crash issue occurring while executing queries with vector builtins on clusters running via Docker containers on Mac machines equipped with Apple silicon processors (M1).
(8. 5. 17) -
Bugfix: No longer show information_
schema pipeline metadata of databases that are not attached to the workspace. (8. 5. 17) -
Enhancement: Use SeekableString encoding by default for storing VECTOR datatype columns in columnstore tables.
(8. 5. 17) -
Bugfix: Fixed an issue that caused rare "Arrangement already exists in namespace" errors in recursive CTE queries.
(8. 5. 17) -
Bugfix: Improved the hashGroupBy spilling condition to trigger (spill) when appropriate.
(8. 5. 17) -
Enhancement: Added more config information about pipelines to
memsql_
.exporter (8. 5. 15) -
Enhancement: Improved error handling for VECTOR type.
(8. 5. 15) -
Enhancement: Added support for aggregate functions (
FIRST
,LAST
) with VECTOR datatype.(8. 5. 15) -
Enhancement: Added support for Kafka key (producer) in the SELECT .
. . INTO KAFKA command. (8. 5. 15) -
Enhancement: Improved Kafka error messages to make them more specific.
(8. 5. 15) -
Bugfix: Fixed a case where a killed query could incorrectly return a JSON error rather than query interrupted message.
(8. 5. 15) -
Bugfix:
MV_
queries can no longer block garbage collection.DISK_ USAGE (8. 5. 15) -
Bugfix: Fixed a crash-on-startup issue on RHEL-based operating systems (CentOS 9, etc).
(8. 5. 15) -
Bugfix: Fixed potential deadlock between table module eviction and GC manager.
(8. 5. 15) -
Bugfix: Fixed a crash that could occur when a scalar subselect is passed as an argument to an external TVF.
(8. 5. 15) -
Bugfix: Fixed an issue with restoring from public backups.
(8. 5. 15) -
Bugfix: Backups now throttle after snapshot.
(8. 5. 15) -
Bugfix: Removed an unnecessary metadata copy to improve JSON performance.
(8. 5. 14) -
Enhancement: Multi-insert queries now respect lower
columnstore_
settings.segment_ rows (8. 5. 14) -
Enhancement: Subprocess and S3 API tracing are now also enabled via the
enable_
engine variable.subprocess_ tracing (8. 5. 14) -
Enhancement: Added the optional
IF NOT EXISTS
clause to theCREATE TABLE .
statement.. . AS INFER PIPELINE Refer to Replicate Data from MongoDB® for more information. (8. 5. 14) -
Enhancement: Dedicated Admin Connections via a TCP port.
Added two new engine variables, enable_
anddac_ ip_ port dac_
- these can be used to open an extra mysql port on startup which will accept dedicated admin connections.ip_ port (8. 5. 13) -
Enhancement: The Tracelog rotation threshold now applies to rotated logs.
Added two new engine variables to control the total size of retained log files: auditlog_
andretention_ size tracelog_
.retention_ size (8. 5. 13) -
Bugfix:
LAST_
will now correctly retrieve the last inserted ID for a forwardedINSERT_ ID INSERT
query.(8. 5. 13) -
Bugfix: The rule based optimization warning message will only be shown when cost based optimization is meaningful.
(8. 5. 13) -
Bugfix: Fixed a minor performance issue where a table module could be evicted prematurely during database recovery.
(8. 5. 13) -
Bugfix: Fixed a very rare deadlock between
ALTER
of a table and aDROP
of a database.(8. 5. 13) -
Bugfix: Fixed a JSON insertion failure to old utf8 sample tables that contain utf8mb4 characters by encoding it with base64 format beforehand for backward compatibility.
(8. 5. 13) -
Enhancement: Disk Spilling now takes
QUERY_
resource pool setting into consideration.MEMORY_ PERCENTAGE (8. 5. 13) -
Bugfix: Fixed an issue with a blob file leak in a rare crash scenario.
(8. 5. 12) -
Bugfix: Fixed a potential deadlock in a scenario involving DDL, a 2PC transaction, and a concurrent failover.
(8. 5. 12) -
Bugfix: Fixed a deadlock involving
BACKUP
andALTER
in a rare case.(8. 5. 12) -
Enhancement: Added support for utf8mb4 symbols in column comments, table comments, and user comments.
(8. 5. 12) -
Enhancement: Updated timezone data, now using IANA's tzdata version 2024a; new timezones Kyiv, Ciudad_
Juarez, and Kanton supported. (8. 5. 12) -
Enhancement: Enabled additional query hint for non-distributed queries so that first run of those queries can be queued.
(8. 5. 12) -
Enhancement: Idle Table Eviction improvement.
In the 8. 5 GA version, an idle table's objects cannot be evicted from memory if the table has one or more UNIQUE key columns (both PRIMARY KEYs and any other keys with a UNIQUE constraint). In the 8. 5. 11 patch, idle tables' code objects can be evicted from memory if the table has one or more UNIQUE key columns. (8. 5. 11) -
Bugfix: Fixed an issue in background merger that allowed concurrent deletes of empty segments.
(8. 5. 11) -
Bugfix: Fixed an issue to ensure preserving a field of a table correctly.
(8. 5. 11) -
Enhancement: Added
numInferredPaths
andschemaSize
as new columns toJSON_
table.COLUMN_ SCHEMA numInferredPaths
is the number of key paths inferred for the segment.schemaSize
is the size ofschema_
in bytes.json (8. 5. 10) -
Enhancement: Added logging to heartbeat thread in order to better diagnose process stalls.
This logging is enabled/disabled via the new verbose_
engine variable.time_ heartbeat_ thread The default value is off
, setting this toon
will enable the logging.(8. 5. 10) -
Bugfix: Added safety checks around dropping databases without exclusive access to storage.
(8. 5. 10) -
Enhancement: Added logging to heartbeat thread in order to better diagnose process stalls.
(8. 5. 10) -
Enhancement: Added the ability to collect and send SingleStore Self-Managed usage telemetry data to SingleStore via the
EXPORT TELEMETRY
SQL command (for 1-time or ad hoc use) or thesend_
engine variable.usage_ telemetry This defaults to OFF. Added an associated information schema table: usage_
.telemetry_ status (8. 5. 10) -
Bugfix: Fixed an issue where explicitly defining a JSON type in the RETURNS of a Wasm TVF can cause an error when it is run.
(8. 5. 10) -
Bugfix: Fixed a rare crash scenario.
(8. 5. 10) -
Bugfix: Fixed an issue that could lead to the risk of undefined behavior when running
DROP EXTENSION IF EXISTS
.(8. 5. 10) -
Enhancement:
IN
-lists will now use hashmap optimization for matching parameters in*_
statements.MATCH_ ANY (8. 5. 10) -
Enhancement: Made
default_
a sync variable on all nodes.distributed_ ddl_ timeout (8. 5. 10) -
Enhancement: Modified the conversion logic for converting from VECTOR to BSON types.
Now, when casting VECTOR(F32), it will generate a BSON array of doubles, rather than a combination of numeric types. (8. 5. 10) -
Bugfix: Addressed a family of issues relating to optimal execution of JSON extracts on schema'd data.
-
Bugfix: Fixed an issue with regression in replay performance for databases with many tables.
(8. 5. 9) -
Bugfix: Fixed an issue where the existing websocket connection would close when variables are updated in global scope.
(8. 5. 8) -
Enhancement: Added new metrics to
memsql_
based on theexporter information_
columns.schema. mv_ sysinfo_ disk (8. 5. 8) -
Enhancement: Now recognize more
EXTRACT
/MATCH
functions as candidates for pushdown/computed column matching.(8. 5. 8) -
Enhancement: Replaced expression pushdown (EPD) approach with more complete version that does not over project rows.
(8. 5. 8) -
Enhancement: Added spilling metrics for TopSort (
ORDER BY
withLIMIT
).(8. 5. 8) -
Enhancement: Added support for usage of vector built-ins with string/JSON arguments without requiring an explicit typecast to VECTOR (e.
g. , 'SELECT @vec<*> '[1,2,3]'). (8. 5. 8) -
Enhancement: Added support for creating numeric histograms based on JSON values.
(Feature flag gated, contact your SingleStore representative). (8. 5. 8) -
Enhancement: Disabled the default semi join reduction rewrite.
(8. 5. 8) -
Enhancement: Creation of computed columns with VECTOR data type is now allowed.
(8. 5. 8) -
Bugfix: Removed the hard-coded 'collation_
server' from constant.
.StrictModeParams (8. 5. 8) -
Bugfix: Fixed the result collation from
VECTOR
built-ins to beutf8mb4_
instead of binary.bin (8. 5. 8) -
Bugfix: Fixed an issue with a sensitive information leak inside of out-of-memory reports.
(8. 5. 8) -
Enhancement: Improved JSON histograms to support numeric histograms, analyze command,
info_
, and displays JSON histograms.schema. optimizer_ statistics (8. 5. 8) -
Enhancement: Added ability for
information_
to display JSON keys.schema. optimizer_ statistics (8. 5. 8) -
Enhancement: Added ability to skip eviction when log replaying hits the blob cache space limit, providing a greater chance to succeed.
(8. 5. 8) -
Enhancement: Added support for warming blob cache with table's column data.
Syntax is: OPTIMIZE TABLE <table_
: (8.name> WARM BLOB CACHE FOR COLUMN <column_ names> 5. 8) OPTIMIZE TABLE t WARM BLOB CACHE FOR COLUMN c1, c2;OPTIMIZE TABLE t WARM BLOB CACHE FOR COLUMN *; -
Enhancement: Added support to the VECTOR built-ins for all VECTOR elements types (e.
g. , F32, F64, I8, I16, I32, and I64). (8. 5. 8) -
Bugfix: Fixed an issue with nested extracts in the
JSON_
statement.MATCH_ ANY() (8. 5. 7) -
Bugfix: Fixed an issue with backup restore when the backup has a corrupted GV timestamp in the about snapshot record.
(8. 5. 7) -
Bugfix: Fixed an issue that causes
CREATE TABLES AS INFER PIPELINE
to fail with anOut Of Memory
error.(8. 5. 7) -
Bugfix: Fixed an issue with exporter not working with Public-Key Cryptography Standards #8(PKCS#8) pem format.
(8. 5. 7) -
Bugfix: Fixed an issue with potential crashes when specifying a vector index in index hint.
(8. 5. 7) -
Bugfix: Fixed a crash that occurred when trying to grant access to the table with no context database in per-privilege mode.
(8. 5. 7) -
Bugfix: Fixed a memory issue, when calling a Table-Valued Function (TVF) that has arguments with default values.
(8. 5. 7) -
Bugfix: Fixed an issue with the RG pool selector function return type check.
(8. 5. 7) -
Enhancement:
information_
now showsschema. mv_ connection_ attributes tls_
andversion tls_
for connections wherecipher SSL
is enabled.(8. 5. 7) -
Enhancement: Added ability for predicate pushdown with
NOW()
and user defined functions (UDF).(8. 5. 6) -
Enhancement.
: Reduced amount of memory used by unlimited storage file listing, including point-in-time recovery (PITR). (8. 5. 6) -
Enhancement.
Optimized performance when using VECTOR
built-ins with theVECTOR
data type.(8. 5. 6) -
Bugfix: Fixed an issue where a backup would inadvertently carry metadata about the retention period of the backed-up unlimited storage database.
(8. 5. 6) -
Bugfix: Fixed the change to aggregator activity queries in
memsql_
not being applied properly.exporter (8. 5. 6) -
Enhancement: Added ability to
memsql_
to always return all sub-activities of an aggregator activity.exporter (8. 5. 5) -
Enhancement: Improved ability to configure Kafka extract/egress by allowing additional options.
(8. 5. 5) -
Enhancement:Improved performance for certain query shapes used by SingleStore Kai.
(8. 5. 5) -
Bugfix: Fixed the query-events endpoint link on the
memsql_
landing page.exporter (8. 5. 5) -
Bugfix: Fixed an issue where a segmentation fault (crash) appeared after terminating a query on the remote node.
(8. 5. 5) -
Bugfix: Fixed an issue with crashes occurring when using certain
JSON_
s in the predicate expression ofEXTRACT JSON_
.MATCH_ ANY() (8. 5. 5) -
Bugfix: Fixed an issue where the number of rows affected with
SELECT INTO
object storage was erroneously reported as 0 rows.(8. 5. 5) -
Bugfix: Fixed an issue with
START PIPELINE FOREGROUND
skipping files in some circumstances.(8. 5. 5) -
Bugfix: Fixed an bug that could cause scans using non-unique indexes which could return incorrect results or cause crashes.
(8. 5. 4) -
Bugfix: Fixed ineffective search options that change in subsequent vector search queries.
(8. 5. 4) -
Bugfix: Fixed the code involved in backups to improve download error messaging.
(8. 5. 4) -
Bugfix: Fixed a crash that occurs in rare scenarios involving
ALTER TABLE
and failovers.(8. 5. 4) -
Bugfix: Fixed an optimization out-of-memory issue cause by operators generated for wide user tables.
(8. 5. 4) -
Bugfix: Resolved an issue related to
FROM_
andBASE64 TO_
builtins when processing large string inputs thereby preventing potential errors in reading communication packets.BASE64 (8. 5. 4) -
Bugfix: Fixed a bug that could result in unrecoverable databases if the database had 1024 or more tables.
(8. 5. 3) -
Enhancement: Improved performance for
JSON_
built-ins inEXTRACT_ <type> ORDER BY
clauses.(8. 5. 2) -
Bugfix: Fixed an issue with memory crashing when using
REGEXP_
,MATCH JSON_
, orINCLUDE_ MASK JSON_
built-ins.EXCLUDE_ MASK (8. 5. 2) -
Bugfix: Fixed an issue where
INSERT.
queries with a. . SELECT partition_
filter generating an error.id() (8. 5. 2) -
Enhancement: Now suppressing a harmless
traceSuspiciousClockUpdate
trace message during recovery.(8. 5. 2) -
Enhancement: Enabled support for external UDFs used in
INSERT
statements with multipleVALUE
clauses.(8. 5. 2) -
Enhancement: Added the ability for users to kill queries on a remote node without the user having
PROCESS
privileges.(8. 5. 2) -
Enhancement: Added BSON fundamentals and column type support for SingleStore Kai.
(8. 5. 2) -
Bugfix: Fixed an allocation issue that caused poor performance on high load insertion queries.
(8. 5. 2) -
Enhancement: Improved performance by optimizing joins on
TABLE(JSON_
queries.TO_ ARRAY()) (8. 5. 2) -
Enhancement: Introduced a new
VECTOR
data type that is recommended over theBLOB
data type for vector operations and use with ANN indexes.The VECTOR
type improves code readability, error checking, and reduces total lines of code. -
Enhancement: Added support for DDL forwarding for
CLEAR BACKUP_
.HISTORY -
Enhancement: Improved retry logic for
connection reset: write
errors. -
Enhancement: SingleStore now natively supports the BSON data type.
-
Enhancement: Added support for
collection.
,exclude. list database.
, andinclude. list database.
parameters to theexclude. list CONFIG
/CREDENTIAL
clause of theCREATE AGGREGATOR PIPELINE .
statement.. . AS LOAD DATA MONGODB Refer to Replicate Data from MongoDB® for more information. -
Enhancement: Added support for Approximate Nearest Neighbor (ANN) vector search using inverted file (IVF) and hierarchical navigable small world (HNSW) indexes, and variants of them based on product quantization (PQ).
Enables support of larger-scale semantic search and generative AI applications. -
Enhancement: Increased name length limit to 256 characters for tables, views, table columns, view columns, procedures, functions, and aliases.
-
Enhancement: Added the ability to truncate plancache file names if they exceed the operating system's specified limit (255 bytes).
-
Bugfix: Both
SHOW PIPELINES
andSELECT * FROM information_
now show consistent pipeline state information across master and child aggregators.schema. pipelines -
Bugfix: Specific pipeline built-ins like
pipeline_
andsource_ file() pipeline_
should not be used inbatch_ Id() UPSERT
clause when creating a pipeline. -
Bugfix: Improved the ability to terminate expressions containing JSON built-ins.
-
Enhancement: Added error-handling details for pipelines, including state, error, and performance-related metrics through monitoring solutions.
-
Enhancement: MemSQL Procedural SQL (MPSQL) has been renamed to simply Procedural SQL (PSQL).
The name change will only show in some SHOW
command output and information schema views.For example, SHOW FUNCTIONS
output changed. -
Enhancement: Added support for
%ROWTYPE
and%TYPE
for use in declaring scalar type variables and parameters.Employing these abbreviations in Procedural SQL (PSQL) can lead to a reduction in the required lines of code. -
Enhancement: Introduced blob cache profiling metrics for columnstore tables on unlimited storage databases.
Refer to the PROFILE page for more information on what blob cache metrics are available. -
Enhancement: Added infix operators for dot_
product (<*>) and euclidean_ distance (<->). -
Enhancement: Added ability to delay retry attempts for pipeline retries.
-
Bugfix: Updated the output for the
Key_
andname Index_
columns in thetype SHOW INDEX
,SHOW INDEXES
, andSHOW KEYS
commands for primary keys on columnstore tables.Refer to the SHOW INDEX, SHOW INDEXES, SHOW KEYS page for more information. -
Bugfix: Improved the error message displayed when trying to create a primary key on an existing table.
-
Bugfix: Improved the error message displayed when a
GRANT
command fails due to missing permissions.The error message will now show the missing permissions: GRANT SELECT, UPDATE, DELETE, EXECUTE ON *.* TO test2;ERROR 1045 (28000): Current user is missing UPDATE, DELETE permission(s) for this GRANT
-
Bugfix: Fixed a case when
UNIX_
was incorrectly returning 999999999.TIMESTAMP() 999999 for DATETIME
data types with precision. -
Bugfix: Fixed an issue where a user could be erroneously marked as deleted.
-
Bugfix: Fixed an issue where a child aggregator could crash if it ran out of memory during query forwarding.
-
Bugfix: Fixed an issue with blob cache LRU2 eviction that could occur when a query fetches a blob, evict it, and fetches it again.
-
Bugfix: Removed the word "FORCE" from the log message for
DETACH LEAF
. -
Bugfix: Fixed an issue that could cause information for a blob to be missing from an Information Schema table.
-
Enhancement: It is now possible to set
tracelog_
androtation_ size tracelog_
to 0 (disable the Log Rotation feature) directly in the configuration file.rotation_ time For example, tracelog_
.rotation_ size = 0 -
Bugfix: Disk Spilling now takes the resource pool settings into consideration.
-
Enhancement: Auto user creation is deprecated and the
NO_
variable is enabled by default.AUTO_ CREATE_ USER -
Bugfix: Fixed an erroneous access denied issue to views selecting from shard tables with computed columns.
-
Bugfix: Fixed a rare issue where the incorrect timezone could be used in logging.
-
Bugfix: Fixed an issue where using user-defined variables inside
ORDER/GROUP BY
statements could cause a crash. -
Enhancement: Added column name to error messages when invalid date/time is inserted into a column.
-
Enhancement: Added BSON columnstore functionality over Parquet storage.
-
Enhancement: Added support for
SELECT .
using OAUTH credentials.. . INTO KAFKA -
Bugfix: Prevent the ability to create a Kafka Pipeline using Parquet Format.
-
Bugfix: Queued Time is now excluded from the cost estimate for workload management leaf memory.
-
Bugfix: Specific error messages are now logged for GCS subprocess failures.
-
Bugfix:
JSON_
escape characters were not working as expected.KEY -
Bugfix:
ALTER PIPELINE
settingmax_
to use a default 0 value is now allowed.partitions_ per_ batch -
Bugfix: Added check for query interruption in a parsing step during query compilation.
Changes in Patch Releases Since 8. 1GA
Several features have been added since the GA release of 8.data_
; however, there are others.
In this section
Last modified: December 18, 2024