Skip to main content

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 and REGEXP_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 in CREATE 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 to JSON_EXTRACT_STRING.

  • Added a new option, SERVER_V2, to the json_extract_string_collationengine 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 and ALTER_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 an ALTER 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 for table_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 in PROFILE 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.