Skip to content

Changes in AliSQL 5.6.32 (2018 05 01)

Fungo Wang edited this page May 1, 2018 · 1 revision

AliSQL 5.6.32 Release Note (2018-05-01)

Abstract

Here are the AliSQL (20180501) Release Notes:

1. raise_error() built-in function

Add a new built-in function raise_error() to allow users to raise customer defined errors.

2. Add compression ratio statistics per FT

Users can get FT level compresstion ratio through information_schema.TokuDB_fractal_tree_info.

3. alter TokuDB table comment should not rebuild whole engine data

This is a bugfix for some ALTER TABLE on TokuDB table which use copy algorithm to rebuild whole table, but should not actually.

4. replication regression with RBR and partition tables

A bugfix for replication regression whih RBR and partition tables

Functionality Added or Changed

1. raise_error() built-in function

Description:

A new built-in function RAISE_ERROR() is added to let mysql users issue an intentional error with the desired diagnostic-string error message and an optional SQLSTATE.

This new function is MySQL’s counterpart of 1) RAISE_ERROR() in DB2 or 2) RAISE_APPLICATION_ERROR() in Oracle. It aims to provide to user the convenience of raising business related exception in their application.

Usage:

The syntax is:

RAISE_ERROR([SQLSTATE,] MESSAGE)

Both SQLSTATE and MESSAGE are strings. Default SQLSTATE is 'HY000’. For valid SQLSTATE (see https://en.wikipedia.org/wiki/SQLSTATE), this function will raise sql code 1899 along with the specified sql state, and the message.

If provided SQLSTATE is not a valid one, the function itself will fail with sql code 1407 along with sqlstate 42000, and message with prefix of 'Bad SQLSTATE'. If the input message is longer than 512 bytes, it will be truncated to 512 bytes.

2. Add compression ratio statistics per FT

Description:

TokuDB use status to expose the compression ratio:

mysql> show global status like 'tokudb%COMPRESSION_RATIO';
+---------------------------------------+----------+
| Variable_name                         | Value    |
+---------------------------------------+----------+
| Tokudb_LEAF_NODE_COMPRESSION_RATIO    | 5.850260 |
| Tokudb_NONLEAF_NODE_COMPRESSION_RATIO | 0.564453 |
| Tokudb_OVERALL_NODE_COMPRESSION_RATIO | 4.528809 |
+---------------------------------------+----------+

but this a global level ratio, and sometimes the users may be interested in table level compression ratio.

So we add FT level compression ratio info in information_schema.TokuDB_fractal_tree_info table. We add two columns, leaf_compress_ratio and internal_compress_ratio, which indicate the compression ratio of leaf nodes and internal nodes accordingly.

Bug Fixed

1. alter TokuDB table comment rebuild whole engine data

Description:

Alter TokuDB table comment should not using copying algorithm and rebuild whole engine data, only FRM definition should be changed. Besides table comment, there are many other create options that should be ignored by TokuDB, and they are all fixed.

See https://jira.percona.com/projects/PS/issues/PS-4280 for more details.

2. replication regression with RBR and partition tables

This is a regression with RBR and table which contains many partitions. This issue is already fixed by upstream, and we think this may be encountered by AliSQL users, so we backported the fix.