Maintenance Release Changelog
2023-01-30 Version 8.0.8
Fixed an issue with the master aggregator leaking memory while performing a background task.
Fixed the case where the
REGEXP_REPLACE
andREGEXP_SUBSTR
expressions can produce non-utf8 strings by introducing the new engine variableregexp_output_validation_mode
. Regular expression built-ins can produce non-utf8 strings because they don't have full support for multi-byte characters. The engine variable controls this behavior if regular expression built-ins return strings that are invalid under its collation settings.Improved the performance on columnstore scans that perform multiple JSON extraction operations on the same JSON column.
2023-01-24 Version 8.0.7
Added a new
OPTIMIZE TABLE <table_name> INDEX;
command for columnstore tables. This command runs the optimization routine for columnstore secondary indexes manually.Fixed an issue where recursive CTEs could fail to execute on upgrade to 8.0 if materialized CTEs were disabled.
Added the
ignore_foreign_keys
system variable, which allows foreign key syntax inCREATE TABLE
commands, but completely ignores the key (it will not show up in metadata).Allow modifying the
json_extract_string_collation
engine variable as long as a computed column that modifies the shard key does not contain a call toJSON_EXTRACT_STRING
.Added a new option,
SERVER_V2
, to thejson_extract_string_collation
engine variable. This new, recommended option is the default for new clusters, and allows comparison of utf8mb4 strings extracted from JSON to utf8 string constants. Existing clusters will retain their original setting upon upgrade.Fixed an issue with databases becoming unrecoverable when upgrading to version 8.0 if any tables contained shard keys using computed columns that call
JSON_EXTRACT_STRING
.Added the option to authenticate Data API requests using JWT.
Added the
skip_segelim_with_inlist_threshold
engine variable, which controls when segment elimination will not use an IN list that is too large (default 1000 elements).
2023-01-17 Version 8.0.6
Fixed a performance regression when running
SET <system variable> = <expression>
commands. These commands are often run by client drivers on new connections.Improved the performance of various commands (
SHOW
commands, DDL, etc.) when there are very many views or tables in the database (100s of thousands).Added
CREATE_TIME
andALTER_TIME
columns to information_schema.pipelines.CREATE_TIME
shows the date/time a pipeline was created or recreated.ALTER_TIME
shows the date/time a pipeline was altered via anALTER PIPELINE
statement.Fixed an issue introduced in version 8.0.4 where
SHOW TABLE STATUS
was incorrectly displaying views.
2023-01-11 Version 8.0.5
Added support to
PROFILE
for hash join spilling.Fixed an upgrade issue where a database that was originally created on SingleStoreDB 6.8 or earlier and was then upgraded to 7.3 is then REPLICATED to SingleStoreDB version 7.8 could result in broken shard keys.
Added support for Recursive CTEs in cases where a Recursive CTE has dependency on a streaming result table outside of its dependency cycle.
Fixed an issue with Recursive CTEs where one Recursive CTE refers to another Recursive CTE and that second CTE would only read the rows from the first CTE’s final iteration.
The
SHOW STATUS EXTENDED
command contains a new "Gv_clock
" key whose value is the current logical clock of the server.The
SHOW DATABASE STATUS
command contains a new "gv_clock
" key whose value is the current logical clock of the server.Fixed an issue with aggregate functions using incorrect enum/set types that may result in inaccurate output in the operator tree.
Fixed an edge case issue which could cause the engine to hang during shutdown.
Improved performance of comparing utf8mb4 strings.
Added a new information schema view
internal_table_statistics
which shows memory use of SingleStoreDB internal metadata tables. The columns displayed are the same as those shown fortable_statistics
.Fixed an edge case issue that could cause
ADD AGGREGATOR
to fail.Reduced the memory used by
ANALYZE
queries by splitting approx count queries to only query a single JSON column at a time.Improved the accuracy of
network_time
inPROFILE
output for some query shapes.The blob cache is now allowed to use more disk space by default on larger local disks. It will now use up to 90% of local disk space on disks over 2 TB in size instead of 75%.
Added a new global variable,
maximum_blob_cache_size_percent
, which can set the blob cache size as a value from 0 to 1 that is percentage of local disk the blob cache is allowed to use. The default value is 0.Added a new global variable,
num_background_merger_threads
, which controls the number of background merger threads to start for each node. The default value is 2.Fixed a MySQL protocol incompatibility where SingleStore was not properly sending back the SERVER_STATUS_IN_TRANS flag. This was impacting some MySQL php drivers.