Release date: 2022-06-30
Support patch for quick upgrade, see lt_patch.
Add PL/oraSQL
loadable procedural language, see
plorasql
lt_hint_plan Enhancements
Add three new hints:
use_hash
,use_nl
,full
,
semantics are consistent with Oracle.
The table name in hint is case-insensitive.
Hint parallel
default is hard and supports
no table specification.
Hints can be applied to the tables of the subquery when the subquery has only one table.
EXPLAIN (COSTS false) select /*+use_hash(t1 y)*/* from t1,(select * from t2) y where t1.id=y.id; QUERY PLAN ------------------------------------ Hash Join Hash Cond: (t1.id = t2.id) -> Seq Scan on t1 @"lt#0" -> Hash -> Seq Scan on t2 @"lt#1" (5 rows)
Support User-defined type priority for better function and operator match, see type compatible.
Support CREATE TABLE DISTRIBUTED BY
to create
distribute table(depends on extension canopy
),
see CREATE TABLE.
create table dist1(a int, b int) distributed by hash(a) shard_count(4);
Auto-explain execution plan logs are printed in a separate log file (*.slow) using JSON format.
Add extension wal2sql to support Real-time synchronization to Oracle.
lt_dump
support
--recreate-schema
to generate drop schema(use
CASCADE
mode) command for better performance,
see lt_dump.
Client Applications and libpq Support LightDB environment variables.
sysdate
and systimestamp
indicates the statement start time.
lightdb@postgres=# begin; BEGIN lightdb@postgres=*# select sysdate from dual; sysdate --------------------- 2022-06-28 19:44:15 (1 row) lightdb@postgres=*# select sysdate from dual; sysdate --------------------- 2022-06-28 19:44:16 (1 row) lightdb@postgres=*# end; COMMIT
For details, see datetime.
When install with high availability, enable replication slot default.
Support Order-Preserving Encryption ,see lt_ope
The following platform support is added:
Architecture | OS |
---|---|
LoongArch | Kylin V10(SP1) |
x86_64 | rockylinux |
aarch64 | rockylinux |
Add cluster control tool lightdb_service.py
to
facilitate the overall start and stop of services in high
availability and distributed environments.
start cluster:
lightdb_service.py -c start
stop cluster:
lightdb_service.py -c stop
The value 0 in PWR is display as empty, for details, see lt_profile.
In non-distributed installation, the canopy
extension not installed.
When keepalived and
ltcluster
are restarted, new log files are
generated to avoid confusion with old logs.
lt_initdb does not restrict the order of options.
Fix
cannot assign XIDs during a parallel operation
error occurs occasionally during parallel query in
lt_show_plans.
Release the JDBC driver library based on PostgreSQL.
maven repository
<dependency> <groupId>io.github.hslightdb</groupId> <artifactId>lightdb-jdbc</artifactId> <version>42.2.30</version> </dependency>
We fixed some of the issues and enhanced data type compatibility:
fix:fetchSize does not take effect in automatic commit mode, causing the whole data to be loaded into the memory and causing out-of-memory problem.
support oracle anonymous blocks syntax (see plorasql ).
support to_number()
function compatible
with oracle.
support numeric
data type convert to Java
Long.
support char(1)
data type convert to Java
Character.
fix loss of precision when Java setDouble operates on
numeric
field.
lt_cron supports linux command.
SELECT cron.schedule('dayly-touch', '59 23 * * *', 'rm -rf $LTDATA/log/*', 'next', '8', 'linux');
Built-in tool application lvs for load balancing in distributed environment wiith multi-CN.
Built-in tool application postgresrest.
Changed file naming rules in the installation directory and instance directory.
The extension objects in public
schema are all
moved to the lt_catalog
schema.
RPM dependencies are built into the installation package.
Support merge into in distributed environment.