Stonedb Versions Save

StoneDB is an Open-Source MySQL HTAP and MySQL-Native DataBase for OLTP, Real-Time Analytics, a counterpart of MySQLHeatWave. (https://stonedb.io)

5.7-v1.0.4-alpha

10 months ago

Release Notes for stonedb-5.7-v1.0.4-alpha

  • Version Number: 5.7-v1.0.4-alpha
  • Release Date: 2023-06-30

Stability:

  1. Fixed a crash caused by incremental data when importing data #1805
  2. Fixed a crash caused by the result set of the union all clause, #1875
  3. Fixed a crash caused by using aggregate functions in large data scenarios, #1855

New features

2.1. Support for update ignore syntax feature.

When updating tianmu, records with primary key conflicts will be skipped and subsequent update operations will be performed. For example:

CREATE TABLE t1  (id int(11) NOT NULL auto_increment,  parent_id int(11) DEFAULT '0' NOT NULL,  level tinyint(4)
DEFAULT '0' NOT NULL, PRIMARY KEY (id)) engine=tianmu;
INSERT INTO t1 VALUES (3,1,1),(4,1,1);

Executing the update ignore t1 set id=id+1; statement will ignore the update of PK=3, because the updated primary key will conflict with PK=4. Then continue to execute the update of pk=4, and the updated PK=5.

mysql>  CREATE TABLE t1  (id int(11) NOT NULL auto_increment,  parent_id int(11) DEFAULT '0' NOT NULL,  level tinyint(4)
         -> DEFAULT '0' NOT NULL, PRIMARY KEY (id)) engine=tianmu;
Query OK, 0 rows affected (0.01 sec)

mysql>   INSERT INTO t1 VALUES (3,1,1),(4,1,1);
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> update t1 set id=id+1;
ERROR 1062 (23000): Duplicate entry '4' for key 'PRIMARY'
mysql> select * from t1; 
+----+-----------+-------+
| id | parent_id | level |
+----+-----------+-------+
|  3 |         1 |     1 |
|  4 |         1 |     1 |
+----+-----------+-------+
2 rows in set (0.00 sec)

mysql> update ignore t1 set id=id+1;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select * from t1; 
+----+-----------+-------+
| id | parent_id | level |
+----+-----------+-------+
|  3 |         1 |     1 |
|  5 |         1 |     1 |
+----+-----------+-------+
2 rows in set (0.00 sec)

2.2 Support row format for “load data” statement.

When stonedb is used as the primary database, the load statement will be executed on the backup database in the form of “insert into”.

2.3 Support AggregatorGroupConcat function

mysql> select GROUP_CONCAT(t.id) from sequence t;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GROUP_CONCAT(t.id)                                                                                                                                                                         |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 3000000000010000,3000000000010001,3000000000010002,3000000000010003,3000000000010004,3000000000010005,3000000000010006,3000000000010007,3000000000010008,3000000000010009,3000000000010010 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

2.4 Support using select 111 or select 111 from dual scenarios in uion/union all

mysql>  select id from tt union all select 2222 c1 from dual;
+------+
| id   |
+------+
| 1111 |
| 2222 |
+------+

mysql>  select id from tt union all select 2222 ;
+------+
| id   |
+------+
| 1111 |
| 2222 |
+------+
-- PS:select 111(from dual) appears in a position other than that of the first clause

Others Bug fixs

  1. Fix the default value problem of adding columns in the master and slave scenarios. #1187
  2. Fix the incorrect result set problem when using case…when in derived table. #1784
  3. Fix the incorrect result problem caused by precision loss when performing bit operations when the type is time. #1173
  4. Fix the incorrect query result problem caused by overflow when the type is bigint. #1564
  5. Fix the incorrect result problem when the filter condition is hexadecimal. #1625
  6. Fix the problem that the default value on the table did not take effect when importing data using the “load data” command. #1865
  7. Modify the default field separator of the load command to make it consistent with mysql behavior. #1609
  8. Fix the query error caused by abnormal metadata. #1822
  9. Improve MTR stability on github.

What's Changed

New Contributors

Full Changelog: https://github.com/stoneatom/stonedb/compare/5.7-v1.0.3-GA...5.7-v1.0.4-alpha

8.0-v1.0.1-beta

11 months ago

8.0-v1.0.1-beta

  • Version Number: 8.0-v1.0.1-beta
  • Release Date: 2023-06-01

What's Changed

Full Changelog: https://github.com/stoneatom/stonedb/compare/8.0-v1.0.1-alpha...8.0-v1.0.1-beta

8.0-v1.0.1-alpha

11 months ago

8.0-v1.0.1-alpha

  • Version Number: 8.0-v1.0.1-alpha
  • Release Date: 2023-05-17

What's Changed

Full Changelog: https://github.com/stoneatom/stonedb/compare/5.7-v1.0.1-GA...8.0-v1.0.1-alpha

5.7-v1.0.3-GA

1 year ago

V1.0.3-GA

  • Version Number: 1.0.3
  • Release Date: 2023-03-20

Compared to 1.0.2, StoneDB 1.0.3 has done many feature improvements and bug fixes, mainly including:

Primary/Secondary Deployment

  • Reconstructed the binlog mechanism to filter out DDL statements that are not supported by the Tianmu storage engine.
  • Added an argument named NO_KEY_ERROR for SQL mode to directly skip DDL statements that are not supported by the SQL layer, instead of reporting errors.

Syntax:

## At global level:
mysql>set global sql_mode='NO_KEY_ERROR';

## At session level:
mysql>set session sql_mode='NO_KEY_ERROR';

## Configuration file my.cnf:
[mysqld] 
sql_mode='NO_KEY_ERROR'

Ecosystem Adaptation

Better adapted to the ecosystem to display the version number of StoneDB.

Perfomance

Improved the primary/secondary synchronization performance. #1213

Bug Fixes

The following bugs are fixed:

  • Incorrect result is returned when an ALTER TABLE statement is executed to add a TIMESTAMP field. #1327
  • Incorrect result is returned for an UPDATE operation on a table after it is modified by an ALTER TABLE statement. #1253
  • Incorrect result is returned for a query on BIGINT data that is unsigned. #1203
  • An error is reported when a statement is executed to load data. #1209
  • The result returned for an AVG function call is incorrect. #1125
  • An error is reported when an ALTER TABLE statement is executed to change the data type of a field. #752
  • Other bugs. #103#1230#1255#1188#1262

Supported OSs

  • CentOS 7.6 and later
  • Ubuntu 20.0

What's Changed

New Contributors

Full Changelog: https://github.com/stoneatom/stonedb/compare/5.7-v1.0.2-GA...5.7-v1.0.3-GA

5.7-v1.0.3-beta

1 year ago

V1.0.3-beta

  • Version Number: 1.0.3
  • Release Date: 2023-03-07

Compared to 1.0.2, StoneDB 1.0.3 has done many feature improvements and bug fixes, mainly including:

Primary/Secondary Deployment

  • Reconstructed the binlog mechanism to filter out DDL statements that are not supported by the Tianmu storage engine.
  • Added an argument named NO_KEY_ERROR for SQL mode to directly skip DDL statements that are not supported by the SQL layer, instead of reporting errors.

Syntax:

## At global level:
mysql>set global sql_mode='NO_KEY_ERROR';

## At session level:
mysql>set session sql_mode='NO_KEY_ERROR';

## Configuration file my.cnf:
[mysqld] 
sql_mode='NO_KEY_ERROR'

Ecosystem Adaptation

Better adapted to the ecosystem to display the version number of StoneDB.

Perfomance

Improved the primary/secondary synchronization performance. #1213

Bug Fixes

The following bugs are fixed:

  • Incorrect result is returned when an ALTER TABLE statement is executed to add a TIMESTAMP field. #1327
  • Incorrect result is returned for an UPDATE operation on a table after it is modified by an ALTER TABLE statement. #1253
  • Incorrect result is returned for a query on BIGINT data that is unsigned. #1203
  • An error is reported when a statement is executed to load data. #1209
  • The result returned for an AVG function call is incorrect. #1125
  • An error is reported when an ALTER TABLE statement is executed to change the data type of a field. #752
  • Other bugs. #103#1230#1255#1188#1262

Supported OSs

  • CentOS 7.6 and later
  • Ubuntu 20.0

What's Changed

New Contributors

Full Changelog: https://github.com/stoneatom/stonedb/compare/5.7-v1.0.2-GA...5.7-v1.0.3-beta

5.7-v1.0.2-GA

1 year ago

V1.0.2

Release date: January 15,2023

New features

  • Supports user-defined functions
  • Supports ESCAPE
  • Supports Primary key and Supports syntactically index constraints
  • Supports modifying the character set of table or field
  • Supports BIT data type
    • Supports Creation, change and deletion
    • Supports logical operation
  • Supports replace into statement
  • Supports syntactically unsigned and zerofill
  • Sql_mode add value 'MANDATORY_TIANMU' for mandatory Tianmu engine in table
    • The following statement demonstrates the syntax:
# Global level
mysql>set global sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,MANDATORY_TIANMU';

# Session level
mysql>set session sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,MANDATORY_TIANMU';

#Set my.cnf parameter file 
[mysqld] 
sql_mode        =  'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,MANDATORY_TIANMU'

Accessibility

  • Automatic detection and identification of installation package
  • Rapid deployment of StoneDB as an analytical database for MySQL

Stability

  • Enhanced the stability as an analytical database

Bug Fixes

The following bugs are fixed:

  • The GROUP_CONCAT() function return result set error #938
  • Bugs when use LIKE in WHERE #1162 #1157 #763
  • Bugs when use Primary key with AUTO_INCREMENT #1144 #1142
  • ALTER table..ADD numeric column, return error#1140
  • Clang-format execute failed in CI/CD#973
  • INSERT INTO table error, but some data can be inserted successfully#965
  • Query with UNION ALL return result set error #854
  • The EXTRACT() function error #845
  • Select...in...An error was reported when the date was included #829
  • Update multiple values does not work with WHERE IN clause #781
  • The syntax of the exists subquery in the TIANMU layer is compiled after the rule is incorrect, and the semantics is modified #732
  • MTR binlog.binlog_unsafe Crash #341
  • The other BUG #682 #553 #508

Behavior Change

Using the Shell script for rapid deployment of StoneDB as an analytical database for MySQL, parameter sql_mode default add value of MANDATORY_TIANMU to enable the mandatory TIANMU engine

Platforms

  • CentOS 7.6 or obove
  • Ubuntu 20

Others

  • Add more MTR test cases

What's Changed

New Contributors

Full Changelog: https://github.com/stoneatom/stonedb/compare/5.7-v1.0.1-GA...5.7-v1.0.2-GA

5.7-v1.0.2-pre-release

1 year ago

Changes in StoneDB_5.7_v1.0.2 (2023-01-14, Release Candidate)

Big features:

  • support User-Defined Functions(UDFs) to handle the dynamic SQL:
create function function_name();
create function function_name(args...);
create function function_name(args...) returns varchar(50)
begin
  SET @sql= select * from where id= args;
  PREPARE s1 FROM @sql;
  EXECUTE s1;
  DEALLOCATE PREPARE s1;
end $$
  • Support ESCAPE Keyword;
% :
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%' ESCAPE '\\';
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan%' ESCAPE '';
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\n%' ESCAPE '\n';
_ :
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\_' ESCAPE '\\';
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan_' ESCAPE '';
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\n_' ESCAPE '\n';
  • Add syntax support for constraints primary key and index: Add primary key
ALTER  TABLE t2 ADD id INT AUTO_INCREMENT PRIMARYKEY;
CREATE TABLE `table_name` (`id` int NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主表id',`name` string NOT NULL COMMENT '名称') ;

Drop primary key

DROP INDEX PRIMARYON t;
ALTER TABLE  tbl_name  DROP {INDEX|KEY} index_name

Add index

ALTER TABLE  tbl_name  ADD {FULLTEXT|SPATIAL} [INDEX|KEY][index_name]
CREATE TABLE t1 (age INT, INDEX USING BTREE (age)) ENGINE = Tianmu;

Drop index

DROP  INDEX  index_name  ON  tbl_name;
ALTER TABLE  tbl_name  DROP {INDEX|KEY} index_name

Rename index

  ALTER TABLE  tbl_name   RENAME {INDEX|KEY} old_index_nameTOnew_index_name
  • Support changing the character set of tables/fields by using the alter table syntax;

Change character set of table:

ALTER TABLE tablename convert to character set utf8;

Change character set of table field:

ALTER TABLE tablename MODIFY latin1_text_col TEXT CHARACTERSET utf8;
ALTER TABLE tablename MODIFY latin1_varchar_col VARCHAR(M)  CHARACTERSET utf8;
ALTER TABLE tablename MODIFY latin1_text_col CHAR CHARACTERSET utf8;
ALTER TABLE tablename CHANGE colname colname TEXT CHARACT
ER SET utf8;
ALTER TABLE tablename CHANGE colname colname VARCHAR(M) CACTER SET utf8;
ALTER TABLE tablename CHANGE colname colname CHAR CHARACTER SET utf8;
  • Support BIT Data Type:
CREATE TABLE tablename(colname BIT(8));
ALTER TABLE tablename add colname BIT(8) comment '';
ALTER TABLE tablename modify column colname BIT(4);
ALTER TABLE tablename modify column colname varchar(20) ;
  • Support replace into SQL Syntax;
REPLACE INTO tablename VALUES(1,'new','2013-07-22 10:30:00');
REPLACE INTO tablename VALUES(1,'Old','2014-08-20 18:47:00');
  • Syntactically support unsigned and zerofill:
CREATE  TABLE tablename (colname int(4) unsigned zerofill);
ALTER TABLE tablename change column colname colname int(4) unsigned zerofill;
ALTER TABLE tablename change column colname colname int(4);
  • The sql_mode adds the mandatory attribute to make the tianmu as the default: Notes: sql_mode ='MANDATORY_TIANMU' > default_storage_engine Global
set global sql_mode='MANDATORY_TIANMU';

session

set sql_mode='MANDATORY_TIANMU';

my.cnf

[mysqld] 
sql_mode ='MANDATORY_TIANMU'

startup script

./mysqld --sql-mode='MANDATORY_TIANMU'
  • Complete mtr test.

Accessibility Notes

  • Automatic detection of installation package and and identification ability.
  • Rapid deployment as a secondary database for MySQL.

Docs: The manual has been updated as the code was modified. ( #doc)

  • Bug fix: #938 #925 #829 #781 #818 #819 #273 #271 #984 #538 #558 #909 #964 #988 #1034 #581 #944 #763 #880 #965 #1075 #767 #995 #975 #656 #850 #852 #760

5.7-v1.0.1-GA

1 year ago

Changes in StoneDB_5.7_v1.0.1 (2022-10-24, General Availability) ● Functionality Added or Changed ● Compilation Notes ● Document Notes ● Bugs Fixed Functionality Added or Changed ● Tianmu: From StoneDB_5.7 v1.0.1, you can use delete statement to clear some data you don't need.

delete from table1;
delete from table1, table2, ...;
delete from table1 where ...;
delete from table1, table2, ... where ...;

● Tianmu: From StoneDB_5.7 v1.0.1, you can use alter table statement to modify the table structure as you need.

alter table tablename

● Tianmu: Binlog replication supported ROW format;

binlog_format = ROW

● Tianmu: Added temporary table function;

CREATE TEMPORARY TABLE IF NOT EXISTS tablename

● Tianmu: From StoneDB_5.7 v1.0.1, you can create a trigger. The trigger is a named database object that is associated with a table, and that activates when a particular event occurs for the table.

create trigger triggername

● Tianmu: Added Create table AS... union... statement; ● Tianmu: The Tianmu engine improved the performance of subqueries; ● Tianmu: Added gtest module; ● Tianmu: Added some mtr test cases; Compilation Notes ● Added cmake parameter configuration for build

cmake  .. -DWITH_MARISA  -DWITH_ROCKSDB

Document Notes ● The manual has been updated as the code was modified. ( # address) Bugs Fixed ● fix some inherited mtr from MySQL ● fix Tianmu bug: #282,#274,#270,#663,#669,#670,#675,#678,#682,#487,#426,#250,#247,#569,#566,#290,#736,#567,#500,#300,#289,#566,#279,#570,#571,#580,#581,#586,#589,#674,#646,#280,#301,#733 et. al.

What's Changed

New Contributors

Full Changelog: https://github.com/stoneatom/stonedb/compare/5.7-v1.0.0-beta...5.7-v1.0.1-GA

5.7-v1.0.1-beta

1 year ago

5.7-v1.0.0-GA

1 year ago

Changes in StoneDB_5.7_v1.0.0 (2022-08-31, General Availability)

  • Support for MySQL 5.7
  • Functionality Added or Changed
  • Compilation Notes
  • Configuration Notes
  • Document Notes
  • Bugs Fixed

Support for MySQL 5.7

  • Important Change: The Tianmu engine supports MySQL 5.7,base line edition MySQL 5.7.36. This change applies to the StoneDB database which would be fully compatible with the MySQL 5.7 protocols.

Functionality Added or Changed

  • Important Change: The engine name has been changed to tianmu. StoneDB is used as a HTAP database name, it is not suitable for used both as an engine name. As the dissusion result, we choose tianmu as our new eninge name:
mysql> show engines;
+----------------+---------+--------------------------+--------------+------+------------+
| Engine         | Support | Comment                  | Transactions | XA   | Savepoints |
+----------------+---------+--------------------------+--------------+------+------------+
| TIANMU         | DEFAULT | Tianmu storage engine    | YES          | NO   | NO         |
+----------------+---------+--------------------------+--------------+------+------------+
  • Tianmu: Improved the aggregation capabilities of the decimal data type.

  • Tianmu: Improved the readability of code. The code does not spererate logically, or the variables name can not be understooed by the literal meaning. To refactor code make it more readable to anyone who are the first to read that. For example: Changes int DoGetSomething(); to int GetSomethingXXX();, int GetNoNulls() to int GetNumOfNulls().

  • Tianmu: The date-related functions (such as DATE_ADD, DATE_SUB) can be queried (DATE_ADD|DATE_SUB) when creating view using the date func.(BUG #342)

Compilation Notes

  • The version of the Boost library for server builds is now 1.66.0.

  • The version of the Rocksdb for server builds is now 6.12.6.

Configuration Notes

  • Important Change: Changed default config file stonedb.cnf to my.cnf. (feature #182)

  • Important Change: Use tianmu as the default storage engine. (feature #255)

Document Notes

  • The manual has been updated as the code was modified. ( # address)

Bugs Fixed