Repository navigation
pgSaci 0.0.2
Alpha. Very early — do not point it at data you care about.
Container
docker pull levyks/pgsaci:0.0.2
~10 MB static-musl image on scratch. See the docs.
Since 0.0.1 — IDE schema-browser compatibility
DataGrip / IntelliJ (the reference client) now introspects a pgSaci connection end to end and can browse and query the schema tree.
SYS.ALL_*/SYS.USER_*data-dictionary facade overpg_catalog— tables, columns, objects, constraints, indexes, sequences, comments, triggers, users — returning UPPERCASE identifiers like a real Oracle database, so Oracle tooling stops seeingpublicandPUBLICas two schemas.DBMS_METADATA.GET_DDL(TABLE / VIEW / MATERIALIZED VIEW / INDEX / SEQUENCE / TRIGGER / FUNCTION) for the "copy DDL" action, rendered as PostgreSQL DDL. PlusDBMS_UTILITY.GET_HASH_VALUE,USER_TABLESPACES,sys.session_roles/session_privs.DECODEnow compares its operands as text — Oracle coerces them to one type; PostgreSQL's=does not, soDECODE(sys_context(...), 0, ...)no longer fails.- Translator: SELECT-list aliases now resolve inside
ORDER BYexpressions (ORDER BY decode(alias, ...)), matching Oracle.
Fixes
- Connect-storm deadlock. The catalog facade (
CREATE OR REPLACE VIEW, ACCESS EXCLUSIVE) was re-applied on every connect; an IDE client idle in a transaction would freeze a wave of new connections behind it. It's now applied once per deploy, guarded by a version marker and an advisory lock.
Verified
cargo test --lib 30/0 · --test corpus 638/0 · --test translate_golden · python-oracledb thin 31/31 · ODP.NET 13/13 · abstraction.mdc Spring/ojdbc suite 32/32.