Repository navigation
v0.0.7
Acting on an external review of pgSaci's drop-in experience.
Added
- Preflight diagnostics. On its first backend connection pgSaci logs a
one-time check of the target database: isorafceinstalled, what is the
effectivesearch_path, and does the login user's schema contain any
upper/mixed-case identifiers an Oracle client can't reach. A missing
assumption now shows up as one line, not an opaque PostgreSQL error later. - Session visibility.
GET /sessionson the health port returns a JSON
list of live Oracle sessions (id,addr,user,age_seconds);
DELETE /sessions/<id>aborts one — dropping its backend PostgreSQL
connection and releasing any locks it held. - Idle-reap timeout is logged at startup (default unchanged at 900s).
- Docs: Identifier case (use lower-case identifiers in the target schema),
Oracle JDBC thin driver (oracle.jdbc.timezoneAsRegion=false), and
Preflight diagnostics sections in getting-started.
Deliberately not done
- No distinctive "unsupported construct" error — pgSaci stays a best-effort
text rewriter. - No case-insensitive catalog identifier resolution — conflicts with the
stateless text-rewriter design and with Oracle semantics where"no"/"NO"
coexist; the preflight warning covers the real pain. - No
timestamptz -> DATEwire mode / TZ-region negotiation yet — touches
result encoding and drops tz precision; documented the workaround instead.
docker pull levyks/pgsaci:0.0.7 — digest sha256:6357a2787e75…, 9.77 MB.