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()
特性。