> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ocient.com/llms.txt
> Use this file to discover all available pages before exploring further.

# pyocient Release Notes

export const Python = "Python®";

export const Ocient = "Ocient®";

export const Google = "Google®";

## 3.8.0

* Added the `memory_tracing` flag for memory-based debugging.

## 3.7.0

* Added transactional support.
* Added asynchronous update support.
* Added the display of the full complex type information.
* Enabled the printing of the query Universally Unique IDentifier (UUID) when the system fails or experiences a Keyboard Interrupt.
* Added generic server-side `cancel` and `kill` commands. This addition is not compatible with an {Ocient} System that has a version less than 25.0.

## 3.6.0

* Added support for Dataflow SQL statements. Dataflow is a procedural superset of SQL that acts as an ad-hoc, anonymous, and imperative script. This new syntax parses, compiles, and executes logic in a single request using flow control, variables, scoped temporary tables, and exception handling. This new functionality requires version 27 or later of the {Ocient} System.
* Added support for cross-database SSO authentication.
* Added support for {Google} as an OIDC provider with server-side token exchange and polling.
* Added support for specifying identity providers and SSO OAuth flow options.
* Added support for SSL and hostname in SSO callback URLs.
* Added support for token lifetimes in the client wire protocol.
* Added the commit SHA to the pyocient package for version tracking.
* Added support for URL-encoded special characters in DSN passwords.
* Fixed the driver to return NULL elements in multidimensional arrays as `None` instead of empty arrays.
* Fixed precision and scale handling during the cast of arrays and tuples that contain DECIMAL types.
* Removed an unnecessary debug print statement.
* Fixed the parsing of CLI argument keys to be lowercase.
* Improved CLI parsing of Ocient SQL statements.
* Reduced the verbosity of debug messages during normal operation.
* Added graph functionality using the `ocient_graph` {Python} package.

## 3.5.0

* Added support for executable SQL files using shebang lines in the command-line interface (CLI).
* Added `expect error` and `expect rowcount` commands to the CLI.
* Added enhanced help functionality to the CLI.
* Added nanosecond precision support for timestamp data types.
* Added server-side `DESCRIBE TABLE` and `DESCRIBE VIEW` command support with fallback to the client-side `DESCRIBE` command for older server versions.
* Added connection timeout support to prevent hanging connections.
* Added configurable redirect URIs per OIDC integration for SSO functionality.
* Fixed an infinite loop issue when the fetch size is set to 0.
* Improved parameter expansion handling and error messaging.
* Improved Unicode character formatting in JSON output and CLI display.
* Updated protobuf dependency to version 5.29.2 or higher.
* Reduced verbosity for connection-type logging messages.
* Added support for preserving schema and service class settings after reconnection.
* Improved error handling for invalid DSNs in the CLI.

## 3.4.0

* Added support for the `PREVIEW` DDL SQL statement.
* Support cryptography versions greater than 42.0.0.
* Fixed an issue that returned `-1` rows modified.
* Fixed the handling of an invalid DSN on the pyocient CLI.
* Formatted Unicode characters in JSON output.
* Fixed an issue where not all warnings were reported.
* Added the messages attribute to the cursor.
* Improved parameter expansion.
* Supported loglevel and logfile parameters on DSNs.
* Preserved the Connection object for reconnects.

## 3.3.2

* Fixed ending SSO sessions when you close the connection.

## 3.3.0

* Pinned the cryptography package to a version earlier than 42.0.0 for stability purposes.
* Added OIDC single sign on (SSO).
* Added the `performance mode` command.
* Enabled the display of nulls as NULL when using the table format.
* Set the command-line default fetch size to 30000.
* Fixed the implementation of the `set serviceclass` command.
* Changed `pyocient.Warning` to be a subclass of the {Python} `Warning` class.
* Added the `set printuuid on` command.
* Added the `--version` option at the command line.
* Set the TCP `keepalive` options on connections.
* Added a valid error message when the system rejects a connection without SSL encryption.

## 3.0.3

* The `TypeCodes` class has been changed to a Python `IntEnum`.
* GIS types \_STPoint, \_STLinestring, and \_STPolygon have been renamed to STPoint, STLinestring, and STPolygon, respectively.
* The `user` and `password` fields have been removed from the `Connection` object. This object no longer stores these fields.
* You can pass the `security_token` from another connection to the `connect` function.
* The `Session` object has been removed.
* The `custom_type_to_json` function has been moved into the pyocient API to allow the consistent conversion of the result set to the JSON format.
* The `patch` portion of the pyocient version is sent to and logged in the database.
* The `--nooutput` command-line parameter does not throw a Python exception.
* The `local variable 'return_code' referenced before assignment` error has been fixed.
* Added the `--rows` argument to the command-line program to load the result set in batches.

## 2.0.0

* Packaging has been significantly refactored to match {Python} packaging standards.
* Python context manager support has been added to connections and cursors.
* Python type annotations have been added to the pyocient API.
* Fixed the command-line interface (CLI) to return a non-zero code for statements that fail.
* CLI output has been standardized to either go to the output file or standard output (stdout).
* The option to echo statements has been added as a command-line option.
* The `pyocient.SyntaxError` exception, which conflicted with the built-in Python `SyntaxException`, has been removed.
* `pyocient.version` has been removed in favor of the more standard `pyocient.__version__`.

## 1.0.15

* The dependency on `protobuf` has been upgraded from `>=3.12.0`, `<=3.19.1` to `>=3.20.0`, `<=4.22.0`.
* Fixed an error that occurs when you do not specify the host parameter in the `connect()` API.

## 1.0.14

* Updated pyocient dependencies to eliminate some unused dependencies and tighten the dependencies on `protobuf` and `dsnparse`.

## 1.0.13

* Fixed bug that left `Cursor.rowcount` unset after Data Manipulation Language (DML) query execution.
* The `cryptography` package requirement of version 36 or lower is no longer required.

## 1.0.12

* Added `--nohistory` command-line option. The history file does not store commands from the session.
  Added `ignorespace` option to command-line history. The history file omits lines that begin with a white space character.

## 1.0.11

* Added a link to the release notes to the package description.

## 1.0.10

* Fixed error in the parameter substitution docstring.
* Added support for `SERVICECLASS`, `ADJUSTFACTOR`, `ADJUSTTIME`, and `PSO` query settings.
* Added support for the `SHOW` command.
* Added support for the `CANCEL TASK` command.
* Removed support for `PRIORITY_ADJUSTMENT_FACTOR`, `PRIORITY_ADJUSTMENT_TIME`, `MIN_PRIORITY`, and `MAX_PRIORITY` query settings.
* Deprecate support for the `CHECK DATA` command.
* Fixed output of binary types at the command line.

## 1.0.9

* Added CSV output support
* Updated cryptography package dependency from \<3.4 to \<=36.0
* Updated cffi and google-auth dependencies
* Improved decoding performance by caching the decoders
* Added formal STPoint, STLinestring, and STPolygon classes rather than using tuples and lists
* Added support for PRIORITY\_ADJUSTMENT\_FACTOR, PRIORITY\_ADJUSTMENT\_TIME, MIN\_PRIORITY, and MAX\_PRIORITY query settings.
* Enabled the handling of invalid DNS names received from the database

## 1.0.7

* Fixed crash on invalid UTF-8 characters received from the database
* Fixed a bug related to specifying the user through the connect API
* Standardized Python(R) code formatting

## 1.0.6

* Updated handling of the force option on connections for accuracy

## 1.0.5

* Added additional debug logging to the redirection of connection

## 1.0.4

* Updated the redirect logic for accuracy

## 1.0.3

* Added multiple host support to the DSN
* Removed --tables, --systables, and --views command-line options
* Added support for the source, connect to, and set commands
* Added support for starting without a DSN
