9. 1 Release Notes
On this page
Release Highlights
Feature: F16 Vectors - Added support for float16 (16-bit) vectors.
Feature: Amazon Kinesis Pipelines - Added support for Amazon Kinesis using the Kafka Connect extensibility framework.
Feature: Mutual TLS - Added support for mutual TLS (mTLS) enabling secure two-way authentication between SingleStore and Kafka brokers.
Feature: UPDATE .SELECT‑like result set containing all or specified columns from the updated rows.SELECT and duplicate table scans, which improves performance and simplifies application logic.
Feature: DELETE .DELETE, where a separate SELECT within a transaction is required to see what was deleted; it uses a single statement and table scan, which improves performance and simplifies application logic.
Preview Feature: Overloaded Functions and Stored Procedures - Overloaded user-defined functions and stored procedures are now supported.
Changes in Default Behavior
Note
These changes affect systems using Java-based features, including full-text search and CDC-in.
New Java Path: SingleStore is moving towards a universal Java path, and away from per-feature Java paths.
-
A new global variable
java_has been introduced.path The variable fts2_is deprecated and is superseded byjava_ path java_.path -
Additional per-feature Java path variables will be migrated to use
java_in the future.path
JRE 25 Requirement: The required Java runtime version is updated to JRE 25.
Upgrade Process:
-
Toolbox will attempt to install JRE 25 when upgrading to version 9.
1. If the install succeeds, Toolbox will set java_and update the other Java path variables.path No additional actions are required. -
If the automatic installation of JRE fails, install JRE 25 manually and retry the upgrade.
Enhancements
Full-text Search
-
Observability
-
Added the SHOW FULLTEXT INDEX STATUS command and the MV_
FULLTEXT_ INDEX_ STATUS information schema view that show partition-level information about the status of full-text indexes. -
Added the ANALYZE FULLTEXT command that displays tokens that would be generated by a Lucene analyzer for a specified string.
-
Added Lucene logs to the cluster report.
-
-
Performance
-
Added a full-text index merger which combines per-segment full-text indexes to create a cross-segment full-text index which improves the performance of full-text search queries by reducing the number of indexes that must be examined.
-
Added compaction steps to the full-text index merger.
-
Improved performance of full-text index.
-
Iceberg
-
Added Hive and REST catalog support for Iceberg external tables.
JSON
-
Added support for JSON extract shorthand operators (
::,::%, and::$) to the result of UDFs, which enables key-path access directly to UDF output, for exampleudf('a')::key. -
Performance improvements for certain queries that use JSON builtins for filtering.
-
Added support for the JSON data type in external functions.
Observability
-
Full-text performance and observability were enhanced by the addition of the the SHOW FULLTEXT INDEX STATUS command, the MV_
FULLTEXT_ INDEX_ STATUS information schema view information schema view, and the ANALYZE FULLTEXT command. -
Improved Memory Observability: The new
MV_information schema view provides users a simple way to obtain high level memory usage metrics and a practical way to identify the set of most significant memory consumers on the system.MEMORY_ USAGE Refer to Identifying and Reducing Memory Usage for more information. -
Added support for tracing DDL activity, allowing users to audit recent DDL statements across the cluster via Query History and the
MV_information schema view.TRACE_ EVENTS Refer to Query History for more information. -
Enhanced logging for DPC operations.
-
Added an in-memory cross query stats and sampling cache on aggregator nodes that reuses runtime rowcount statistics and sampling results across related queries to improve cardinality estimates and reduce optimization overhead; time-based invalidation and memory limits are controlled by engine variables.
-
Added the
DROP ALL FROM cross_query_ stats_ cache, DROP SAMPLE FROM cross_, andquery_ stats_ cache SHOW cross_commands to manage and monitor the cross query stats cache.query_ stats_ cache STATUS
-
Added statistics related to AWS S3 lookup latency.
-
Added the TLS cipher and application name to the auditlog.
-
Added collection of enhanced query stats from kill query Recursive Common Table Expressions (RCTE) writer statistics and sorted iterator error cases.
Pipelines
-
Added the
pipeline_built-in function to expose source file metadata when loading data through pipelines.source_ metadata() -
Introduced support for tracking pipeline vCPU and memory usage using the
activity_column.tracking_ id -
Enhanced S3 pipeline glob pattern support to include
?(single-character match),[abc](character set),[a-z](character range), and[^abc](negated set), in addition to the existing*wildcard. -
Added the
CONFIGcolumn to the output ofSHOW LINKSand theLINKSinformation schema view to display connection link configurations in JSON format. -
Added
CREATE OR REPLACE LINKsyntax to update existing connection links without dropping and recreating pipelines. -
Added support for loading Parquet nested types (
LIST,MAP, andGROUP) into JSON or BSON columns. -
Added support for the
OPTIONS 'compact'parameter inINFER PIPELINEfor Parquet files for loading Parquet groups and nested types (LISTandMAP). -
Improved error reporting for CDC pipelines with detailed messages on multiple parsing errors.
-
Added support for skipping
NULLrecords when using Kafka properties, skip all errors, or skip parser errors in the Kafka pipeline definition. -
Improved memory management for pipelines.
-
Blocked non-CDC sources in
CREATE {TABLE|TABLES} AS INFER PIPELINEqueries. -
Added the filename to the error message returned by an
INFER PIPELINEstatement when an incorrect file format is detected. -
Locked down
ALTER PIPELINEqueries forKAFKACONNECTsource. -
Long running batches no longer block
CREATE OR REPLACE PIPELINEqueries.If running, the current batch exits gracefully and the pipeline is replaced. -
Enabled support for ingestion of parquet repeated and grouped fields, such as lists, maps, or groups, as SingleStore JSON type.
-
Added support for
SHOW PROFILE PIPELINE. -
Added support for vended credentials in Iceberg pipelines with S3 storage.
-
Added support for metadata garbage collection for Azure pipelines.
Query Execution
-
The Distributed Plancache (DPC) preview feature has been enhanced with a Plancache Manager (PCM) and asynchronous lookup in hot path execution.
These features improve the DPC's usefulness in Fast Scale and Suspend & Resume. -
Added support for correlated
EXISTSsubqueries withHAVINGclause on single aggregate. -
Added an
ALTER TABLE .command that enables cancellation of an ongoing columnstore alter operation.. . UNDO POPULATION -
Added the
ALTER LINKcommand that enables updates to theCONFIGandCREDENTIALSclauses of an existing link. -
Added support for subselects and joins in a writable view definition.
Added support for writing to nested views. -
Updated the permissions required for querying writable views that contain joins.
-
If a selectivity optimization source is normalization in an
EXPLAINorPROFILEquery, the output now displays the source of normalization. -
Improved the query optimizer's handling of out-of-memory issues.
-
Improved the performance of queries on
MV_information schema view.CLUSTER_ STATUS -
Added support for collecting target table DDL for
INSERTqueries in error reproduction. -
KILLED_counter now includes queries killed due to exceedingQUERIES QUERY_.MEMORY_ PERCENTAGE -
Added support for
BEGIN,COMMIT, andROLLBACKstatements in DML forwarding when performing writes to reference tables in multi-statement transactions. -
Added support for the
IF EXISTSoption in theDROP PROJECTIONcommand. -
Extended the TABLE() function to have an ordinality column when used with
WITH ORDINALITYclause. -
Added support for returning either all columns (
RETURNING *) or a selected subset of columns inUPDATE .; stored procedures, CTEs, multi-table updates (joins/subselects), and column expressions are not supported in the. . RETURNING RETURNINGclause. -
Enhanced JSON handling to correctly process emoji and surrogate pair representations.
-
Improved query performance by executing eligible operations directly on encoded columnstore data.
-
SHOW PROFILE PIPELINEqueries now support pipelines with a.in the pipeline name. -
Added the
REQUIRE SUBJECTclause to the CREATE USER command.
-
Added the ability to skip heuristic checks when using projection for JSON documents for
ORDER BYself join rewrites. -
Added support for an alter node port.
-
Enabled synchronous Distributed Plancache lookup during query execution.
-
Enabled using estimated table row count as default column cardinality for better join estimation.
-
Distributed Plancache pool size adjustment fails gracefully.
-
Removed the
CASToperator if a redundant cast is performed. -
Added support for increasing the length of variable-length string type columns using
ALTER TABLE MODIFY COLUMNon columnstore tables. -
Added support for
COUNT()in aggregated views. -
Added display of original line number when re-raising exceptions with
RAISEstatement in stored procedures. -
Added support for PSQL
ARRAYtype arguments to theTO_built-in function.JSON -
Disabled prewritten ingest transformations by default.
-
Added an optimizer rewrite to push
LIMITbelow external User Defined Functions (UDFs).This optimization can be turned off with the optimizer_engine variable.disable_ limit_ pushdown_ below_ external_ udf -
Improved
JSON_performance by performing encoding-level extraction instead of full JSON decoding.EXTRACT_ BIGINT -
Added functionality to copy the rowstore segment by default when a shallow copy of a table is created.
-
Updated
character_to display the correct character set value inset_ client SHOW CREATEqueries.
Security
-
Added support for mutual TLS (mTLS) authentication in Kafka pipelines that enables secure two-way authentication between SingleStore and Kafka brokers.
Vector Search
-
Added support for SIMD implementations of
DOT_andPRODUCT EUCLIDEAN_builtins for theDISTANCE VECTORF16type. -
Added support for typecasts between
VECTORF32andVECTORF16types.
-
Backfilled index type and index size of vector index metadata during information schema queries.
-
Added a vector index cache to limit the amount of memory used by vector indexes.
Refer to Vector Indexing for details. -
Updated vector index and search to use internal memory allocator instead of malloc.
General Updates
-
Added support for displaying the collation for
JSON,ENUM, orSETdata types in information schema views. -
Engine gRPC calls to the plancache manager now include more information.
-
For invalid,
NULL, or empty UDF names, DML queries are now routed to the default pool. -
Made Resource Governance aware of cgroup CPU limits in Kubernetes clusters.
The minimum of host cores and cgroup cores is now used as the CPU limit for governing resource pools. -
The engine now waits for the plancache manager during uploads.
-
Added support for considering cgroup cores if they are less than host core count in the resource governor.
-
Improved the error message returned when removing a leaf fails during rebalance.
-
Setting a resource pool inside a stored procedure does not take effect immediately, and the change is applied only after the stored procedure finishes executing.
-
Increased the maximum number of user-defined resource group pools to 50.
-
New users created without an explicit resource pool are now automatically assigned the
default_resource pool.pool -
Added information on bucket parameters to gRPC request to the plancache manager.
-
Removed password validation for
ALTER USERqueries that do not modify the password. -
CPU resource governance now works for clusters of all sizes.
-
If a shard key is not specified, it is added by default on the group by columns.
-
Allowed users that do not require X509 (mTLS) to connect regardless of the
ssl_value and presence of the file it points to (if set).ca_ for_ client_ cert -
Added the ability to ignore join selectivity estimates of zero.
-
Added charset validation for JSON type values in external functions.
-
Changed the default collation from
utf8mb4_togeneral_ ci utf8mb4_.bin -
Delimited batch sets now return and accept original rowIDs.
-
Disabled
critical_by default.diagnostics -
Engine now displays
NULLfor vector index size and type for vector indexes created in versions older than 9.0. -
Introduced background IO submission thread for sync durability and batching multiple IO requests.
-
Result tables now explicitly set table-level collation.
-
Upgraded the Almalinux version to Almalinux 10.
-
Added option to merge credentials with external secret storage.
-
Improved error handling for regular expressions; errors are now properly raised instead of returning SQL NULL.
Engine Variables
This update adds the following new engine variables:
-
max_: Allows a user to create a maximum number of 50 resource pools from the default of 10.user_ rg_ pools Refer to Set Resource Limits. -
remove_: Controls the behavior of theleaf_ force_ remove_ online_ leaf REMOVE LEAF .command when. . FORCE leaf_isfailure_ detection OFF.When enabled, the REMOVE LEAF .command forcefully removes the target leaf node from the cluster even if it is online.. . FORCE
-
suppress_: Suppresses all DML query warnings.dml_ warnings -
ssl_: Specifies the Certificate Authority (CA) to use for client certification.ca_ for_ client_ cert -
regexp_: Controls the behaviour of error handling for regular expression functions.error_ handling_ level -
Distributed Plan Cache: Added the following engine variables to control this feature:
enable_,distributed_ plancache distributed_,plancache_ worker_ threads distributed_,plancache_ max_ download_ plans distributed_,plancache_ agg_ sync_ s enable_,periodic_ distributed_ plancache_ agg_ sync enable_.synchronous_ dpc_ lookup -
enable_: Enables or disables the ability to overload functions and stored procedures.overloaded_ functions -
Added the following engine variables to control cross query stats and sampling cache:
cross_,query_ stats_ collection_ strategy cross_,query_ stats_ max_ wait_ ms cross_,query_ stats_ sampling_ valid_ time_ min cross_,query_ stats_ expiration_ minutes cross_,query_ stats_ max_ mb enable_,cross_ query_ stats_ store_ query_ text enable_,cross_ query_ stats_ for_ sampling optimizer_use_ cross_ query_ feedback_ stats.
Updates to existing engine variables:
-
Increased the maximum value of
pipelines_tomax_ concurrent 4096. -
Updated the default value of
cardinality_tothreshold_ for_ join_ split_ rewrite 9223372036854775807(LLONG_MAX).
Information Schema
This update adds the following information schema views and columns:
-
PIPELINES_:Tracks source offset information for KafkaConnect pipelines in the new pipeline extensibility framework.SOURCE_ OFFSETS -
MV_: Displays status, statistics, and cache metrics forSEQUENCES AUTO_columns, including pre-fetch counts, cache misses, and owner leaf information for performance monitoring.INCREMENT AS SEQUENCE
-
MV_: Provides visibility into active metadata transaction read versions.ACTIVE_ METADATA_ VERSIONS -
MV_.GC_ EVENTS Provides visibility into garbage collection passes. This view is gated behind the preview feature and engine variable enable_ gc_ events. -
Added
ATTACH DATABASE,DETACH DATABASE,CREATE DATABASE, andDROP DATABASEtoMV_information schema view.EVENTS -
Added the
INDEX_column to theNAME VECTOR_information schema view.INDEX -
Added the
FUNCTION_column to theNAME MV_information schema view.PROCESSLIST When a query is invoked from a stored procedure, this column will display the stored procedure name. -
Increased the
MV_timeout from 60 seconds to 180 seconds.BT -
Added a new
BLOB_column forCOMPUTE_ ID COLUMNAR_andSEGMENTS MV_information schema views.COLUMSTORE_ FILES -
source_is now included as part of thetype config_in thejson PIPELINESinformation schema view.
-
Added the
PLAN_column to theSOURCE PLANCACHEinformation schema view that displays the source of a query plan. -
Added the
CONFIGcolumn to theLINKSinformation schema view to display connection link configurations in JSON format. -
Added the
ACTIVITY_column the specifies the ID that can be used to identify the activities associated with a session to theTRACKING_ ID MV_,ACTIVITIES MV_,ACTIVITIES_ CUMULATIVE MV_, andACTIVITIES_ EXTENDED MV_information schema views.ACTIVITIES_ EXTENDED_ CUMLATIVE -
CROSS_: Contains metadata about cross query stats cache entries for the connected aggregator, including hash keys, rowcounts, hit counts, and timing information.QUERY_ STATS_ CACHE -
MV_: Managed view that aggregates cross query stats cache entries across all aggregators in the cluster, including node-level identifiers and cache metrics.CROSS_ QUERY_ STATS_ CACHE
Updates to existing information schema views:
-
Added information on projections to the
COLUMNAR_,SEGMENTS COLUMNS,MV_,COLUMNAR_ SEGMENT_ INDEX MV_,COLUMNSTORE_ FILES TABLES,JSON_,COLUMN_ SCHEMA MV_,COLUMNSTORE_ MERGE_ STATUS STATISTICS,TABLE_, andCONSTRAINTS OPTIMIZER_information schema views.STATISTICS
Bug Fixes
-
Fixed a crash when
REDUCE()containedREDUCE_by disabling query rewrite.VALUE() -
Fixed an issue where the security built-in functions like
CURRENT_andSECURITY_ ROLES() CURRENT_returned incorrect results when used within aSECURITY_ GROUPS() CREATE TABLE AS SELECTstatement. -
Fixed an issue where the
CHARACTER_column displayed incorrect character set in information schema views.SET_ NAME -
Fixed the row count for
SELECT INTO OUTFILEqueries withLIMITorOFFSETclause. -
Fixed an issue where
SHOW ROLESandSHOW GROUPSreturned empty results for users who had theSHOW METADATApermission but notGRANT. -
Fixed a concurrency issue between the
CREATE DATABASEcommand and automatic MA failover. -
Fixed a crash in specific
INTERSECTorEXCEPTquery shapes. -
Fixed an issue where
CREATE DATABASEreturned an error even if it succeeded when there is a concurrent MA failover. -
Fixed a bug in specific nested set operation query shapes.
-
Fixed a crash when a query only contained aggregates in the
HAVINGclause for some query shapes. -
Fixed a crash that occurred when setting the
bottomless_engine variable during startup.plancache_ worker_ threads -
Fixed incorrect lockout on
GROUP_function withCONCAT ORDER BYclause for some query shapes. -
Fixed an issue with some query shapes where a lateral join is used in the same join block as a right join.
-
Fixed a race condition between query plan dropping and plan execution.
-
Fixed an unsafe asynchronous compile manager handle constructor signature.
-
Fixed a bug in the DPC gRPC handler.
-
Fixed an issue where creating a database with the same name as a recently dropped database fails following a MA failover, even if the command completes successfully.
-
Fixed a crash when a scalar subselect was used exclusively in the
WHEREclause when writing to a view. -
Fixed an issue with vending credentials in Iceberg pipelines.
-
Fixed stack overflow issue in
compile_andlite compile_interpreter modes.lite_ first -
Fixed a potential null pointer dereference.
-
Fixed a crash when dropping temporary tables.
-
Fixed an issue with subselect to join and complex join query rewrites.
-
Fixed an issue where FTS blobs were being incorrectly read from the blob cache during FTS index merging.
-
Fixed a possible crash when
MV_information schema view was called under heavy load scenarios.BT -
Fixed an issue where
LOAD DATAerrors did not show proper table names and skipped some errors. -
Fixed a bug to correctly lockdown query shapes containing a lateral join and table-valued function (TVF), which is not supported in SingleStore.
-
Fixed an issue that included the cluster ID twice (duplication) in DPC object path.
-
Fixed a crash during hot-path lookups.
-
Fixed an issue with table counts in Feedback Reoptimization.
-
Fixed the value of the
TYPEcolumn in theUSERSinformation schema view. -
Prevented a system crash when collecting a process' status for
MV_information schema view while the process is concurrently updating the same information.PROCESSLIST -
Fixed a TLS connectivity issue when using the .
NET connection pool. -
Fixed an issue where the
ADD AGGREGATORcommand failed for node IDs greater than 16384.
Last modified: