Se ha publicado la versión del proyecto IvorySQL 5.0, que desarrolla una edición del sistema de bases de datos PostgreSQL, asegurando la compatibilidad con aplicaciones diseñadas para trabajar con sistemas de bases de datos Oracle. En IvorySQL se afirma la posibilidad de actuar como un reemplazo transparente de la última versión de PostgreSQL, cuya diferencia radica en la aparición de la configuración «compatible_db», que incluye un modo de compatibilidad con Oracle. El código está escrito en lenguaje C y se distribuye bajo la licencia Apache 2.0.
IvorySQL implementa el lenguaje de programación PL/iSQL, que replica la sintaxis de PL/SQL en Oracle, admite paquetes al estilo de Oracle y operaciones sobre estos, como 'CREATE PACKAGE'. Se ofrece un conjunto de funciones y tipos compatible con Oracle, así como soporte para la sintaxis específica de Oracle en operaciones, expresiones y operadores, como ALTER TABLE, DELETE, UPDATE, CONNECT BY (consultas jerárquicas), GROUP BY, UNION y MINUS.
En la nueva versión:
- Se ha realizado la transición a la base de código de PostgreSQL 18.
- Se ha mejorado la compatibilidad con sistemas de bases de datos Oracle: se ha implementado el soporte para subprogramas anidados, ROWID, parámetros NLS y OUT, la traducción de cadenas vacías a NULL, el cambio de analizadores vinculados a sesiones, codificaciones GB18030, y las funciones SYS_GUID, SYS_CONTEXT y USERENV.
- Se han añadido operadores compatibles con Oracle como INSTR, FORCE VIEW y LIKE.
- Se han ampliado las capacidades de PL/iSQL: se ha añadido soporte para la sintaxis CALL, %ROWTYPE y %TYPE.
- Se ha implementado soporte completo para Docker Compose, Docker Swarm y Kubernetes con el gestor de paquetes Helm. En IvorySQL Operator 5.0 e IvorySQL Cloud 5.0 se han añadido herramientas para la gestión visual del ciclo de vida.
- Se ha garantizado el soporte para diez extensiones de PostgreSQL: pg_cron, pgAudit, PostGIS, pgRouting, PGroonga, ddlx, pgsql-http, system_stats, plpgsql_check y pgvector.
- Se han formado paquetes de instalación para las arquitecturas X86_64, ARM64, MIPS y LoongArch.
- Se ha preparado un entorno online para trabajar con IvorySQL desde el navegador, lo que permite utilizar IvorySQL sin necesidad de instalarlo en el sistema.
Además, se puede destacar el lanzamiento de la extensión SynchDB 1.3, destinada a la replicación de datos en PostgreSQL desde una o varias bases de datos externas, como MySQL, MS SQLServer y Oracle. Estas bases de datos externas actúan como fuentes de datos, que se trasladan directamente a una única base de datos destino basada en PostgreSQL, sin utilizar capas adicionales para orquestar el proceso de sincronización de datos (todas las operaciones de sincronización son gestionadas por la extensión SynchDB). El código del proyecto está escrito en los lenguajes C y Java, y se distribuye bajo la licencia Apache 2.0.
El sistema incluye los componentes:
- Debezium Runner Engine — un motor en Java que proporciona módulos para procesar flujos de cambios de datos desde diversas bases de datos (MySQL, MS SQLServer y Oracle) y traduce los datos obtenidos en un formato JSON universal.
- SynchDB Worker — lanza instancias de Debezium Runner Engine para replicar datos desde bases de datos específicas, recibe los cambios en formato JSON y los envía al módulo Format Converter.
- SynchDB Launcher — crea y finaliza los manejadores de SynchDB, utilizando la API de PostgreSQL para iniciar procesos en segundo plano.
- Format Converter — analiza el flujo de cambios en formato JSON, transforma tipos de datos externos y consultas DDL en tipos y consultas compatibles con PostgreSQL.
- Replication Agent — procesa la salida en formato HeapTupleData desde Format Converter y ejecuta métodos para insertar datos en PostgreSQL.

En SynchDB 1.3 se ha implementado un nuevo motor de generación de instantáneas, basado en FDW (Foreign Data Wrapper) y que soporta la funcionalidad de OpenLog Replicator. En comparación con el antiguo motor basado en Debezium, el nuevo motor permite aumentar significativamente el rendimiento y reducir la latencia al replicar datos de grandes bases de datos Oracle. Además, en la nueva versión se han propuesto vistas adicionales con estadísticas (synchdb_genstats, synchdb_snapstats y synchdb_cdcstat), el OpenLog Replicator ahora admite expresiones MODIFY y DEFAULT ON NULL, y se ha añadido soporte para las bases de datos PostgreSQL 18 y IvorySQL 5.
Fuente: opennet.ru
