La version 5.0 du projet IvorySQL a été publiée, développant une édition de la base de données PostgreSQL, assurant la compatibilité avec les applications compilées pour travailler avec les bases de données Oracle. IvorySQL se présente comme un remplacement transparent de la dernière version de PostgreSQL, la différence étant la présence de l'option « compatible_db », incluant un mode de compatibilité avec Oracle. Le code est écrit en C et distribué sous la licence Apache 2.0.
IvorySQL implémente le langage procédural PL/iSQL, répétant la syntaxe PL/SQL d'Oracle, prend en charge les packages au style Oracle et les opérations sur les packages, telles que « CREATE PACKAGE ». Il fournit un ensemble de fonctions et de types compatibles avec Oracle, ainsi qu'une syntaxe spécifique à Oracle pour les opérations, expressions et opérateurs, tels que ALTER TABLE, DELETE, UPDATE, CONNECT BY (requêtes hiérarchiques), GROUP BY, UNION et MINUS.
Dans la nouvelle version :
- La transition vers la base de code PostgreSQL 18 a été effectuée.
- La compatibilité avec les bases de données Oracle a été améliorée : support de sous-programmes imbriqués, ROWID, paramètres NLS et OUT, conversion de chaînes vides en NULL, changement de parseurs en fonction des sessions, encodages GB18030, et des fonctions SYS_GUID, SYS_CONTEXT et USERENV.
- Des opérateurs compatibles avec Oracle INSTR, FORCE VIEW et LIKE ont été ajoutés.
- Les capacités de PL/iSQL ont été étendues : prise en charge de la syntaxe CALL, %ROWTYPE et %TYPE.
- Prise en charge complète de Docker Compose, Docker Swarm et Kubernetes avec le gestionnaire de paquets Helm. Des outils pour la gestion visuelle du cycle de vie ont été ajoutés dans IvorySQL Operator 5.0 et IvorySQL Cloud 5.0.
- Support de dix extensions à PostgreSQL : pg_cron, pgAudit, PostGIS, pgRouting, PGroonga, ddlx, pgsql-http, system_stats, plpgsql_check et pgvector.
- Des paquets d'installation ont été créés pour les architectures X86_64, ARM64, MIPS et LoongArch.
- Un environnement en ligne a été préparé pour travailler avec IvorySQL depuis un navigateur, ce qui permet de ne pas installer IvorySQL sur son système.
On peut également mentionner la publication de l'extension SynchDB 1.3, destinée à la réplication de données PostgreSQL à partir d'une ou plusieurs bases de données tierces, telles que MySQL, MS SQLServer et Oracle. Ces bases de données externes agissent comme des sources de données, qui sont directement transférées dans une base de données cible basée sur PostgreSQL, sans utiliser de couches supplémentaires pour orchestrer le processus de synchronisation des données (toutes les opérations de synchronisation sont gérées par l'extension SynchDB). Le code du projet est écrit en C et Java, et est distribué sous la licence Apache 2.0.
Le système comprend les composants :
- Debezium Runner Engine — moteur Java fournissant des modules pour le traitement des flux de modifications de données provenant de diverses bases de données (MySQL, MS SQLServer et Oracle) et pour la diffusion des données reçues au format JSON.
- SynchDB Worker — lance des instances de Debezium Runner Engine pour la réplication des données à partir de bases de données spécifiques, reçoit les modifications au format JSON et les transmet au module Format Converter.
- SynchDB Launcher — crée et termine le travail des gestionnaires SynchDB, utilisant l'API PostgreSQL pour démarrer des processus en arrière-plan.
- Format Converter — analyse le flux de modifications au format JSON, convertit les types de données externes et les requêtes DDL en types et requêtes compatibles avec PostgreSQL.
- Replication Agent — traite la sortie au format HeapTupleData du Format Converter et déclenche des méthodes pour insérer des données dans PostgreSQL.

La version 1.3 de SynchDB introduit un nouveau moteur de création de snapshots basé sur FDW (Foreign Data Wrapper) et prenant en charge OpenLog Replicator. Par rapport à l'ancien moteur basé sur Debezium, le nouveau moteur permet d'améliorer considérablement les performances et de réduire les latences lors de la réplication de données à partir de grandes bases de données Oracle. De plus, la nouvelle version propose des vues supplémentaires avec des statistiques (synchdb_genstats, synchdb_snapstats et synchdb_cdcstat), OpenLog Replicator a ajouté le support pour les expressions MODIFY et DEFAULT ON NULL, et le support pour les bases de données PostgreSQL 18 et IvorySQL 5 a été intégré.
Source : opennet.ru
