È stato pubblicato il rilascio del progetto IvorySQL 5.0, che sviluppa una variante del DBMS PostgreSQL, garantendo la compatibilità con le applicazioni progettate per lavorare con il DBMS Oracle. In IvorySQL è dichiarata la possibilità di funzionare come un sostituto trasparente dell'ultima versione di PostgreSQL, la cui differenza risiede nella presenza dell'impostazione "compatible_db", che include la modalità di compatibilità con Oracle. Il codice è scritto in linguaggio C ed è distribuito con licenza Apache 2.0.
IvorySQL implementa il linguaggio procedurale PL/iSQL, replicando la sintassi del PL/SQL in Oracle, supporta pacchetti in stile Oracle e operazioni con pacchetti, come "CREATE PACKAGE". Viene fornito un insieme di funzioni e tipi compatibile con Oracle, e si supporta anche la sintassi operativa, espressioni e operatori specifici di Oracle, come ALTER TABLE, DELETE, UPDATE, CONNECT BY (query gerarchici), GROUP BY, UNION e MINUS.
Nella nuova versione:
- È stata effettuata la transizione alla base di codice PostgreSQL 18.
- È stata migliorata la compatibilità con il DBMS Oracle: è stata implementata la supporto per le procedure nidificate, ROWID, parametri NLS e OUT, traduzione di stringhe vuote in NULL, cambio dei parser legato alle sessioni, codifica GB18030, funzioni SYS_GUID, SYS_CONTEXT e USERENV.
- Sono stati aggiunti operatori compatibili con Oracle come INSTR, FORCE VIEW e LIKE.
- Sono state ampliate le funzionalità di PL/iSQL: è stata aggiunta la supporto per la sintassi CALL, %ROWTYPE e %TYPE.
- È stato implementato un supporto completo per Docker Compose, Docker Swarm e Kubernetes con il gestore di pacchetti Helm. In IvorySQL Operator 5.0 e IvorySQL Cloud 5.0 sono stati aggiunti strumenti per la gestione visuale del ciclo di vita.
- È stato garantito il supporto per dieci estensioni di PostgreSQL: pg_cron, pgAudit, PostGIS, pgRouting, PGroonga, ddlx, pgsql-http, system_stats, plpgsql_check e pgvector.
- Sono stati formati pacchetti di installazione per le architetture X86_64, ARM64, MIPS e LoongArch.
- È stato preparato un ambiente online per lavorare con IvorySQL dal browser, consentendo di evitare l'installazione di IvorySQL sul proprio sistema.
In aggiunta, si segnala il rilascio dell'estensione SynchDB 1.3, progettata per replicare in PostgreSQL i dati provenienti da uno o più DBMS esterni, come MySQL, MS SQLServer e Oracle. Questi DBMS esterni fungono da fonti di dati, che vengono trasferiti direttamente in un'unica base di dati di destinazione basata su PostgreSQL, senza l'uso di ulteriori strati per orchestrare il processo di sincronizzazione dei dati (tutte le operazioni di sincronizzazione sono gestite dall'estensione SynchDB). Il codice del progetto è scritto in linguaggi C e Java, ed è distribuito con licenza Apache 2.0.
Il sistema include i componenti:
- Debezium Runner Engine — un motore Java che fornisce moduli per l'elaborazione dei flussi di cambiamenti dei dati da vari DBMS (MySQL, MS SQLServer e Oracle) e la traduzione dei dati ricevuti in formato JSON universale.
- SynchDB Worker — crea istanze di Debezium Runner Engine per la replica dei dati da specifici DBMS, riceve da essi i cambiamenti in formato JSON e li invia al modulo Format Converter.
- SynchDB Launcher — crea e termina i gestori di SynchDB, utilizzando l'API PostgreSQL per avviare i processi in background.
- Format Converter — analizza il flusso di cambiamenti in formato JSON, converte i tipi di dati esterni e le query DDL in tipi e query compatibili con PostgreSQL.
- Replication Agent — gestisce l'output in formato HeapTupleData dal Format Converter e avvia i metodi per l'inserimento dei dati in PostgreSQL.

In SynchDB 1.3, a new snapshot generation engine has been implemented, based on FDW (Foreign Data Wrapper) and supporting work with OpenLog Replicator. Compared to the old engine based on Debezium, the new engine allows for significantly improved performance and reduced latency when replicating data from large Oracle databases. Additionally, the new version offers extra views with statistics (synchdb_genstats, synchdb_snapstats, and synchdb_cdcstat), OpenLog Replicator now supports MODIFY and DEFAULT ON NULL expressions, and adds support for PostgreSQL 18 and IvorySQL 5.
Fonte: opennet.ru
