De release van het IvorySQL 4.0-project is gepubliceerd, dat de editie van de PostgreSQL-database beheert en compatibiliteit biedt met toepassingen die zijn ontworpen voor gebruik met de Oracle-database. In IvorySQL is de mogelijkheid aangekondigd om als transparante vervanging van de nieuwste versie van PostgreSQL te functioneren, waarbij het verschil beperkt is tot de instelling "compatible_db", die de modus voor compatibiliteit met Oracle omvat. De code is geschreven in C en wordt verspreid onder de Apache 2.0-licentie.
IvorySQL implementeert de procedurele taal PL/iSQL, die de syntaxis van PL/SQL in Oracle volgt, ondersteunt pakketten in Oracle-stijl en bewerkingen met pakketten, zoals "CREATE PACKAGE". Er is een Oracle-compatibele set functies en types beschikbaar, evenals ondersteuning voor Oracle-specifieke syntaxis voor bewerkingen, uitdrukkingen en operators, zoals ALTER TABLE, DELETE, UPDATE, CONNECT BY (hiƫrarchische queries), GROUP BY, UNION en MINUS.
In de nieuwe versie:
- De overgang naar de codebasis van PostgreSQL 17 is voltooid.
- Ondersteuning voor onzichtbare kolommen is toegevoegd, waarmee bepaalde kolommen kunnen worden verborgen om de migratie naar nieuwe toepassingen te vereenvoudigen (onzichtbare kolommen worden alleen weergegeven bij expliciete vermelding van hun naam en worden niet weergegeven in algemene queries zoals "SELECT * FROM").
- Functionaliteiten voor het beheren van PL/SQL-pakketten zijn toegevoegd, waarmee pakketten kunnen worden gemaakt, hun parameters kunnen worden gewijzigd en beschrijvingen kunnen worden toegevoegd. In psql is een nieuwe opdracht "\dk" toegevoegd voor beheer van pakketten.
- De prestaties bij het werken met PL/SQL-pakketten zijn verbeterd en de ondersteuning voor het cachen van pakketten is toegevoegd.
- Nieuwe ACL-functies voor het beheren van privileges in verband met PL/SQL-pakketten zijn aangeboden.
- Ondersteuning voor de pg_get_functiondef-extensie is toegevoegd met implementatie van pg_get_functiondef(), pg_get_functiondef(OID, VARIADIC OID[]) en pg_get_functiondef(VARIADIC TEXT[]), waarmee de definities van functies op basis van een opgegeven lijst van functienamen kunnen worden verkregen.
- Installatiepakketten voor Ubuntu zijn toegevoegd.
Daarnaast kan de release van de SynchDB 1.0-extensie worden opgemerkt, die is ontworpen voor replicatie van gegevens in PostgreSQL vanuit ƩƩn of meerdere externe databases, zoals MySQL, MS SQLServer en Oracle. Deze externe databases fungeren als gegevensbronnen die rechtstreeks naar ƩƩn doel-database op basis van PostgreSQL worden overgebracht, zonder gebruik te maken van extra tussenlagen voor het orkestreren van het proces van gegevensynchronisatie (alle synchronisaties worden behandeld door de SynchDB-extensie). De code van het project is geschreven in C en Java, en wordt verspreid onder de Apache 2.0-licentie. SynchDB 1.0 wordt gemarkeerd als de eerste stabiele release van het project.
Het systeem bestaat uit zes componenten:
- Debezium Runner Engine - een Java-engine die modules biedt voor het verwerken van datastromen van wijzigingen uit verschillende databases (MySQL, MS SQLServer en Oracle) en het vertalen van de verkregen gegevens naar een universeel JSON-formaat.
- SynchDB Worker - start exemplaren van de Debezium Runner Engine voor gegevensreplicatie uit specifieke databases, ontvangt wijzigingen in JSON-formaat en verzendt deze naar de Format Converter-module.
- SynchDB Launcher - creƫert en beƫindigt de werking van SynchDB-processen met behulp van de PostgreSQL API om achtergrondprocessen te starten.
- Format Converter - parseert de datastream van wijzigingen in JSON-formaat, converteert externe datatypes en DDL-query's naar types en query's die compatibel zijn met PostgreSQL.
- Replication Agent - verwerkt de uitvoer in HeapTupleData-formaat uit de Format Converter en start methoden voor het invoegen van gegevens in PostgreSQL.
- Table Synch Agent (in ontwikkeling) - biedt een effectieve methode voor de initiƫle synchronisatie van tabellen.

Bron: opennet.ru
