Se ha publicado la versión del proyecto IvorySQL 4.0, que desarrolla una edición de PostgreSQL que garantiza compatibilidad con aplicaciones diseñadas para trabajar con bases de datos Oracle. En IvorySQL se declara la capacidad de funcionar como un reemplazo transparente de la última versión de PostgreSQL, cuya diferencia radica en la configuración 'compatible_db', que incluye un modo de compatibilidad con Oracle. El código está escrito en 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 migración a la base de código de PostgreSQL 17.
- Se ha agregado soporte para columnas invisibles, que permiten ocultar ciertas columnas para facilitar la migración a nuevas aplicaciones (las columnas invisibles solo se muestran cuando se indica explícitamente su nombre y no aparecen en consultas generales del tipo 'SELECT * FROM').
- Se han añadido funciones para gestionar paquetes PL/SQL, que permiten crear paquetes, cambiar sus parámetros y adjuntar descripciones. En psql, se ha agregado un nuevo comando '\dk' para operaciones con paquetes.
- Se ha mejorado el rendimiento en la gestión de paquetes PL/SQL y se ha agregado soporte para la caché de paquetes.
- Se han propuesto nuevas funciones ACL para gestionar privilegios relacionados con los paquetes PL/SQL.
- Se ha añadido soporte para la extensión pg_get_functiondef con la implementación de las funciones pg_get_functiondef(), pg_get_functiondef(OID, VARIADIC OID[]) y pg_get_functiondef(VARIADIC TEXT[]), que permiten obtener definiciones de funciones basadas en una lista de nombres de funciones especificada.
- Se han añadido paquetes de instalación para Ubuntu.
También se puede destacar el lanzamiento de la extensión SynchDB 1.0, destinada a la replicación en PostgreSQL de datos de 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 transfieren directamente a una única base de datos de 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. SynchDB 1.0 se marca como el primer lanzamiento estable del proyecto.
El sistema consta de seis 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.
- Table Synch Agent (en desarrollo) — proporciona un método eficiente para la sincronización inicial de tablas.

Fuente: opennet.ru
