Skip to content

v0.0.7

Choose a tag to compare

@Levyks Levyks released this 03 Sep 14:18
· 77 commits to main since this release

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: is orafce installed, what is the
    effective search_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 /sessions on 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 -> DATE wire 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.