LightDB 13.8-22.3包含了从 LightDB 13.3-22.2 中修复的各种问题和新功能。
发布日期:. 2022-09-30
支持使用 q 转义。例如:
select q'!name LIKE '%DBMS_%%'!';
?column?
----------------------
name LIKE '%DBMS_%%'
(1 row)
详情请参见 Q-Quoted String Constants。
Rownum 性能优化。与 Oracle 类似,支持 count stop key 以提高 rownum 的性能。
lightdb@lt_test=# explain select * from public.test where rownum < 3;
QUERY PLAN
----------------------------------------------------------------
Count StopKey (cost=0.00..0.03 rows=2 width=4)
-> Seq Scan on test (cost=0.00..159.75 rows=11475 width=4)
(2 rows)
libpq 支持获取 LightDB 版本号。
listagg 支持分析函数。
在
orafce 章节中有关于 listagg 的描述。
NVL 函数参数支持更多的参数组合,如字符串和数字。
将默认数据库修改为 lt_test,替换原来的默认数据库 postgres。
lt_upgrade 支持从版本 22.2 升级到版本 22.3 的 LightDB
(在升级时,lt_upgrade 将检查 lightdb_syntax_compatible_type 的一致性,
请注意,如果这两个值都是 'oracle',则不建议使用 lt_upgrade)。
请参见
lt_upgrade
。
新增 GUC 参数 nls_date_format 和 nls_timestamp_format,以实现与 Oracle 时间函数的兼容性,
详情请参见
nls_date_format 和
nls_timestamp_format。
search_path contains lt_catalog by default.
see
Search Path.
处理 oracle 和 mysql 时需要特殊处理,
只能在它们与 lightdb_syntax_compatible_type 一致时进行设置。
支持将非保留关键字作为列别名
(当没有关键字 as 和引号时)。
请参见
关键字。
select 3 type;
type
------
3
(1 row)
当启用
lightdb_enable_default_tablespace 时,添加默认表空间
lt_users。
lt_users 是我们自己创建的其他数据库的默认表空间。
(除非在 CREATE DATABASE 中使用 TABLESPACE 子句进行覆盖)。
其存储路径与实例路径处于同一级别的目录中。
这可以确保实例路径下的数据量不会太大。
请参见
表空间。
lightdb_service.py 支持任意单节点启动和停止。
已修复 lt_probackup 恢复失败的问题,当数据量超过 2G 时。
支持通过 modify column 子句修改列,与 Oracle 类似。
详见
ALTER TABLE。
支持通过 drop primary key 子句在 alter table 时删除主键。 详见 ALTER TABLE。
新增函数和表,用于修改具有视图依赖性的表。 详见 orafce。
移除只读表相关功能。
lt_dump 进行了增强,添加了许多新参数,如下所示。
详见
lt_dump。
添加参数--lt-exclude-lightdb-objects和参数
--lt-dump-lightdb-tables,
解决了在导出和导入过程中LightDB内置插件创建的数据库对象冲突问题,
并解决了在导入过程中覆盖由LightDB内置插件创建的表的问题。
详细信息,请参见lt_dump手册一节。
添加参数 --lt-disable-auto-analyze,
以解决 lt_restore 多线程导入死锁的问题。
增强了 pl/sql,并添加了下面许多新功能。
orafce 增强:
添加新的 Oracle 内置包:
dbms_metadata、dbms_job、dbms_lock、
dbms_obfuscation_toolkit、utl_url、utl_encode、
utl_raw 和 dbms_snapshot。
改进了原有的内置包:
dbms_application_info、dbms_utility 和 dbms_lob。
添加了新的 Oracle 系统视图,如 [DBA/ALL/USER]_TABLES、
[DBA/ALL/USER]_TAB_COLUMNS 和 [DBA/ALL/USER]_INDEXES。
添加了新的 Oracle 函数:BIN_TO_NUM、BITOR/BITXOR、
REMAINDER、ROUND_TIES_TO_EVEN、INSTRB、
REGEXP_INSTR/REGEXP_REPLACE、REPLACE、SOUNDEX、
MONTHS_BETWEEN、TZ_OFFSET、CONVERT、
NUMTOYMINTERVAL、TO_BLOB、NLS_CHARSET_ID/NLS_CHARSET_NAME
、
SYS_CONTEXT/USERENV、EMPTY_CLOB、ORA_HASH 和
VSIZE。
添加了新的 Oracle 聚合函数:ANY_VALUE、BIT_AND_AGG/BIT_OR_AGG/BIT_XOR_AGG、
KURTOSIS_POP/KURTOSIS_SAMP 和 SKEWNESS_POP/SKEWNESS_SAMP。
请参阅 orafce 了解详情。
Oracle 兼容性增强,以及下面列出的许多新功能。
支持 Oracle 分区语法。 请参阅 CREATE TABLE 和 ALTER TABLE。
支持语句回滚。 请参阅 lt_statement_rollback_enable。
支持 raise_application_error() 函数。
请参阅
第42.8节。
listagg 支持分析函数。
请参阅
orafce 章节。
增强空字符串和 NULL 值之间的兼容性。 请参阅 第17.11节。
MySQL 兼容性增强,以及下面列出的许多新功能。
支持 year() 函数。
支持 day() 函数。
支持 date_format() 函数。
支持 str_to_date() 函数。
支持 from_unixtime() 函数。
支持 unix_timestamp() 函数。
支持 ifnull() 函数。
增加 interval 常量的兼容性。
支持 date_add() 函数。
支持 date_sub() 函数。
支持 dayofweek() 函数。
支持 weekofyear() 函数。
增加 cast 类型转换。
支持 compress() 函数。
支持 uncompress() 函数。
支持 timestamp 和 string 的比较。
修复在使用 'is true' 或 '= true' 时可能出现的 smallint 错误。
修复select and group by field inconsistent report error。
修复 distinct and order by field inconsistent report error。
有关详细信息,请参见 MySQL兼容函数 章节。
JDBC驱动库,我们修复了一些问题并增强了数据类型兼容性:
支持将 numeric 数据类型转换为Java Integer。
添加连接参数 extendSchema,当前模式为当前模式设置时,默认值为'lt_catalog,oracle',extendSchema将自动附加到当前模式的值。
移除过期时间限制。
仅在顺序执行时支持MySQL的 SQL_CALC_FOUND_ROWS 和 SELECT FOUND_ROWS() 特性。