Hubble V317版本升级内容

BUG修复

  • 修复了在向表中添加新列(或更改列类型)时会长时间持有锁的错误。
  • 修复了对changefeed.memory.per_changefeed_limit参数调整,现在通过集群设置,会减少对前台延迟的影响。
  • 修复了LEFT JOIN在对not null约束的虚拟计算列的表进行操作时导致错误的结果。
  • 在查询溢出的情况下,Hubble现在可以自动取消查询这项任务。
  • 修复了EXPLAIN在某些复杂场景下运行语句时索引推荐不佳的情况。
  • 修复了RESTORE在恢复的数据时作业会挂起的情况。

性能

  • 优化了数据库中有大量表以及集群中有大量range时页面加载性能。
  • 改进了优化器对涉及许多受约束列的谓词的基数估计,优化索引命中。
  • 提高每个节点稳定性。
  • 提升了群集恢复的稳定性。
  • 减少了有大量列或索引的表进行查询的计划时间。
  • 提高了大数据量复杂查询时内存利用率。
  • 提高了IMPORT任务的导入速度。
  • 提升了ORDER BYLIMIT 查询的语句性能。
  • 提升了DECIMAL数据类型的大型数据集的算术和聚合速度。
  • 相同的数据量备份相比以前现在使用更少的内存。

函数

  • host 将主机地址类型抽出为文本
select host('192.168.1.5/24');
     host
---------------
  192.168.1.5
  • exp 自然指数
select  exp(1.0);
        exp
---------------------
2.7182818284590452354
  • trim 从字串string的开头/结尾/两边/ 删除包含characters的字串
select trim(both 'x' from 'xTomxx')
 trim       
--------
  Tom
  • sign(x) x为负,零,正时返回结果依次为:-1,0,1
select sign(20);
sign
------
 1
  • broadcast 网络广播地址
select broadcast('192.168.1.5/24');
     broadcast
--------------------
  192.168.1.255/24
  • masklen 抽取网络掩码长度
select masklen('192.168.1.5/24');
  masklen
-----------
    24
  • netmask 为网络构造网络掩码
select netmask('192.168.1.5/24');
     netmask
-----------------
  255.255.255.0
  • hostmask 为网络构造主机掩码
select hostmask('192.168.23.20/30');
  hostmask
------------
  0.0.0.3

sql变化

  • 添加对在架构中显示默认权限的支持,支持SHOW DEFAULT PRIVILEGES子句
SHOW DEFAULT PRIVILEGES IN SCHEMA S;
role      for_all_roles  object_type  grantee    privilege_type
testuser  false          tables       testuser2  DROP
testuser  false          tables       testuser2  SELECT
testuser  false          tables       testuser2  UPDATE
  • 添加对SHOW SUPER REGIONS FROM DATABASE语句
SHOW SUPER REGIONS FROM DATABASE ABC;
ABC  ca-central-sr  {ca-central-1}
ABC  test           {ap-southeast-2,us-east-1}
  • 增加用户应该依赖默认权限
ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES TO foo;
  • 创建数据库能指定所有者
CREATE DATABASE dbname WITH OWNER S;
  • SHOW GRANTS ON table/type/schema...语句多了is_grantable
SHOW GRANTS ON DATABASE dbname;
database_name  	grantee	privilege_type	   is_grantable
dbname	          admin	           ALL	          true
dbname	          public	   CONNECT	         false
dbname	          root	           ALL	          true
dbname	           s	           ALL            true
  • 添加了RESET语句,它会将会话变量的值重置为其默认值。
RESET session_name;
  • 添加了会话变量default_transaction_quality_of_service,该变量代表会话中提交的SQL请求控制

增加后续 SQL请求的准入控制优先级

SET default_transaction_quality_of_service=critical;

要降低后续 SQL请求的准入控制优先级:

SET default_transaction_quality_of_service=background;

要将准入控制优先级重置为默认会话设置(介于背景和关键之间)

SET default_transaction_quality_of_service=regular;
  • 现在可以在同一事务中交换名称(表等)。例如:
CREATE TABLE foo();
BEGIN;
ALTER TABLE foo RENAME TO bar;
CREATE TABLE foo();
COMMIT;
  • 添加了一个内置函数,返回一个无序的整数
select unordered_unique_rowid();
1554671853219610625
  • 默认情况下不允许对序列进行跨数据库引用。这可以通过集群设置sql.cross_db_sequence_references.enabled启用。
set sql.cross_db_sequence_references.enabled=dbname;
  • 在展示约束的时候增加了with comment子句;
SHOW CONSTRAINTS from t with comment;
  • 当表中只有主键约束的时候,show create table不在展示famlily
show create table t;
CREATE TABLE public.t (
	a INT8 NOT NULL,
	CONSTRAINT t_pkey PRIMARY KEY (a ASC)
)