Release date: 2021-12-31
This release contains a variety of changes from LightDB 13.3-21.2.
WAL (Write-Ahead Log) can be placed on Intel Optane PMEM, archieving significant improvements in recovery time and performance. To enable this feature, set GUC option wal_sync_method to pmem_drain. See wal_sync_method for details.
MySQL compatibility enhancements
functions support: find_in_set(), group_concat(), if(), truncate(), datediff(), locate() and database(). See Section 10.31 for details.
longtext data type support
LIMIT(m, n) syntax support. See Section 8.6 for details.
Oracle compatibility enhancements, including data type implicit conversion between number (such as int2, int4, int8, float4, float8 and numeric) and string(such as char, varchar, text and unknow). See Chapter 11 for details.
Autovacuum when setting a table read only. No more manual execution.
Wildcards '%' can be used when viewing GUC parameters with SHOW statement. For example, you can use it like "SHOW max%", "SHOW %timeout" and "SHOW %vacuum%". See SHOW for details.
Alias can be used when updating a single table with UPDATE statement. For example, you can use it like "UPDATE mytable AS t SET t.colname = value WHERE t.id = 1".
Support automatic cleaning of archived WAL and log files according to specified rules. See Section 18.5.3 for details.
Archived WAL: clean up archived wal files in archive dir (lightdb_archive_dir) older than (checkpoint file - lightdb_archive_retention_size) when archive wal success. For example: lightdb_archive_retention_size = 2. checkpoint file is 000000010000000000000008, will remove the file older than 000000010000000000000006.
log files: by setting lightdb_log_retention_age to N Mins(usually set to xxxd to remove file xxx days ago) to remove files older than N Mins. Execute when switching to a new file. The time depends on file modification time.
COPY and pg_bulkload support multi character separators(at most three) for text. See COPY for details.
COPY country TO STDOUT (DELIMITER 'ABC');
Modify default search_path to contains oracle schema. This means functions and data types in orafce extension can be used anywhere directly.
integrate Citus extension, but not enabled by default.
integrate pg_pathman extension and enabled by default.
Enhance pg_profile, adding database time statistics in LightDB profile report(PWR). See ltprofile for details.
Enhance pg_hint_plan, including multi hint support, hint scope qualification, qb_name syntax support and no_merge hint syntax support. Now you can use hint only for sub query. See lthint_plan for details.
Enhance pg_cron, including second level timed task support and one time scheduled task support. In addition, the default time zone of the task is adjusted to UTC/GMT+08:00. See lt_cron for details.
Enhance system_stats, adding a new function lt_get_sys_kernel_settings() to get linux kernel parameters.
lt_initdb command line parameters support specifying non default port number(-p). For example: lt_initdb -p xxx -D xxx. See lt_initdb for details.
Support ROWNUM. ROWNUM is a pseudocolumn like oracle ROWNUM. Each row returns by a query,
the ROWNUM
pseudocolumn returns a number indicating the order in which LightDB selects the row
from a table or a set of joined rows.
Now ROWNUM supports using with order by, group by, subquery, join, union and partition table. However, it is not supported in update or deletion, and it is not supported in column expression(like selecting rownum + 1 from xxx ). See Section 8.9 for details.
The following extensions is removed from LightDB.
pg_wait_sampling
timescaledb