Skip to content

oracle-native 0.2.0

Choose a tag to compare

@buggins buggins released this 03 Nov 17:05
· 34 commits to main since this release
94a5b0b

oracle-native 0.2.0 speaks the 23.4 version of Oracle's TTC protocol and reads and writes the newer types: JSON (21c), VECTOR and BOOLEAN (23ai). It also sets end-to-end attributes for monitoring.

"dependencies": {
    "oracle-native": "~>0.2.0"
}

Tested on Oracle Database 23ai Free, 21c XE and 18c XE; D frontend 2.097 and newer; vibe-core 1.22 to 2.x. A ddbc driver for oracle-native is in ddbc 0.10.0 (configuration ORACLE).

Added

  • Newer types and the 23.4 protocol (#7): the client now speaks TTC field
    version 24 (23.4; 21c negotiates 16, 18c 11). JSON columns (21c) are
    decoded from Oracle's binary JSON (OSON) to their text, as
    JSON_SERIALIZE writes it, and Value.getJson gives a std.json value.
    VECTOR columns (23ai) read as Vector (FLOAT32, FLOAT64, INT8, BINARY,
    sparse; getVector, text as FROM_VECTOR writes it), and Vector,
    float[] and double[] parameters are sent as VECTOR. BOOLEAN columns
    arrive natively, and bool parameters are sent as BOOLEAN to 23ai
    (NUMBER 1/0 to older servers), also for PL/SQL BOOLEAN parameters.
  • Column metadata of 23ai: SQL domain, annotations, VECTOR dimensions and
    format; isJson / isOson flags (ColumnInfo).
  • End-to-end attributes: Connection.moduleName, action,
    clientIdentifier, clientInfo, dbOp, sent with the next call.

Fixed

  • Queries with a JSON column failed with ORA-01002.

Full changelog: v0.1.0...v0.2.0