版本发布 date: 2024-12-31
增加对 Oracle 的 [DBA/ALL/USER]_SCHEDULER_JOBS 和 [DBA/ALL/USER]_SCHEDULER_RUNNING_JOBS 视图的支持,目前仅支持部分字段。
详细信息请参阅 SCHEDULER_JOBS 和 SCHEDULER_RUNNING_JOBS。
部分支持 Oracle 的 DBMS_SCHEDULER 包。
支持 DBMS_SCHEDULER.CREATE_JOB, DBMS_SCHEDULER.DROP_JOB, DBMS_SCHEDULER.ENABLE, DBMS_SCHEDULER.DISABLE, DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING, DBMS_SCHEDULER.SET_ATTRIBUTE。
详细信息请参阅 DBMS_SCHEDULER。
proc 支持 EXEC ORACLE OPTION (ORACA = YES) 。
proc 支持结构体类型多别名 。
支持SELECT UNIQUE column_name[,…] |(column_name)[,…] FROM from_item [, ...] [ ORDER BY expression ]用法。 unique后面支持直接表达式(带括号后者不带括号),如unique 表达式,(表达式),…。
like条件语句后面内容存在反斜杠情况下,兼容ORACLE,之前版本会被当做转义符号与Oracle不符。
支持select字段与group by字段不一致。
trunc函数支持date类型的差值作为入参。
CREATE INDEX 支持使用 CASE WHEN 表达式。
支持 CREATE BITMAP INDEX语法
支持定义视图时,如果对象不带schema前缀则优先寻找视图所在schema下的对象。
支持 CREATE VIEW 中带有 CONSTRAINT pk_name PRIMARY KEY (col) RELY DISABLE 语法。
兼容Oracle的多行注释/* */
MERGE INTO 的 INSERT 语法后面支持添加块注释
创建表时支持number(*,0)数据类型
nvl兼容,支持nvl(oracle.date, oracle.date)返回oracle.date类型
plorasql支持多个EXCEPTION WHEN
处理分支。用户在plorasql中可以预定义多个异常处理块,当程序执行过程中遇到了执行异常,执行会进入对应的异常处理模块。样例如下:
create table t_uniq(a int primary key); CREATE OR REPLACE PROCEDURE pro100 is a int:=0; BEGIN insert into t_uniq values(1); insert into t_uniq values(1); a:=10/0; EXCEPTION when unique_violation then dbms_output.put_line('unique_violation'); when division_by_zero then dbms_output.put_line('division_by_zero'); when others then dbms_output.put_line(sqlcode||' '||sqlerrm); END; / call pro100; unique_violation CALL
支持基于record
的varray
. 样例如下:
CREATE OR REPLACE PROCEDURE pro100 is type test_rc_type is record(a int,b varchar,d date); type va_type is varray(3) of test_rc_type; v1 va_type := va_type(); BEGIN v1(0).a = 11+88; v1(1).b = 'ab'||'cd'; v1(2).d = to_date('2022-01-01','yyyy-mm-dd') + interval '1 day'; dbms_output.put_line(v1(0).a || ',' || v1(1).b || ',' || v1(2).d); END; / call pro100; 99,abcd,2022-01-02 00:00:00 CALL
PL/SQL 支持语句级的 SYSDATE。
支持匿名块、存储过程和函数中使用LOCK TABLE tablename IN EXCLUSIVE MODE。
支持string(n)数据类型。
支持存储过程中调用 RAISE_APPLICATION_ERROR。
存储过程体中访问不带 schema 前缀的对象时优先寻找存储过程自身 schema 下的对象。
支持在存储过程中使用 SYSDATE() 函数。
支持 UNPIVOT 功能。
FOR xxx IN 语法支持非保留关键字做变量名,(如INFO 等)。
支持GOTO使用非保留关键字作为标签名。
CREATE PACKAGE 支持变量命名为关键字(TABLESPACE, NO, YES )。
CREATE PACKAGE 支持 VARRAY 类型。
CREATE PACKAGE BODY 时支持 CONSTANT 常量定义。
本版本没有新增功能。
通过新参数 lightdb_prefer_semi 支持不将半连接转换为内连接。
ltsql客户端连接时显示当前节点和集群信息,单机/单机分布式/多机单实例分布式、CN/DN。
lightdb 用户安全策略优化,在创建/修改角色(role)时,可以通过选项制定是否有可登录权限。
lightdb 密码安全策略优化,审计可配置黑白名单。 连接客户端黑名单,不记录指定客户端的审计日志;连接客户端白名单,记录指定客户端的审计日志;操作对象的黑名单,不记录指定表的审计日志;操作对象的白名单,记录指定表的审计日志; 可配置多个客户端。
lt_hba.conf增加校验,address中非localhost和127.0.0.1的ip,其他客户端有效ip的METHOD均禁止配置为trust(免密),如配置则无法生效报错。
单机分布式访问分区表数据时候,执行计划改成union all的执行计划。
lt_upgrade升级逻辑优化。 用户在执行lt_upgrade版本升级的时候,默认执行lt_upgrade_check检查机制进行升级,并能正常升级成功。 lt_upgrade_check检查点如下: 1、关键字检查; 2、函数体、存储过程体、视图体、索引、触发器检查; 3、存储空间检测;
分布式集群create和drop database默认为分布式库。部署分布式集群时自动创建分布式表。
lightdb 内置对象oid固定。
开启语句级回滚后支持dump备份数据库。
子查询结果集缓存优化,提升查询效率。
支持自动调整会话排序或哈希区大小 减少磁盘排序。
支持通过 GUC 控制 Parallel Worker 数量选择算法为线性增长。