JDBC Driver for Domino

Build 22.0.8509

Data Model

Overview

The driver supports modeling views, attachments and the entire database as distinct views.

Views, Columns and Stored Procedures

Simple and Display Names

The driver supports options for controlling how views and columns are named:

  • UseSimpleNames When simple names are enabled, the driver will restrict view and column names so they contain only alphanumeric characters and the underscore. This can be required for some tools which do not properly escape view or column names when sending queries to the driver.
  • UseDisplayNames By default display names are enabled. When they are disabled, the driver will set the names of view columns to be their internal names instead of their titles. This may some columns to receive names like '$1' because Domino uses dollar signs to identify columns that are generated from formulas.

Note Metadata

In addition to the items defined on each note, Domino exposes metadata about each note that the driver maps to special columns. These columns are:

  • @unid The unique note identifier, which identifies this specific note across all databases on the server. This is available in all views.
  • @offset The position of a value within an array. Used only for child views.

Note that these names will be different when UseSimpleNames is enabled because they contain special characters.

Querying Array Data

Domino allows a item within a note to contain multiple values. The driver models this one of two ways depending upon the value of the ArrayMode option:

  • Flatten This mode will report multi-value items as JSON text values, such as: '[1, 2, 3]'
  • ChildTables This mode will split multi-value items into their own views which put separate values on each row. Each child view has a foreign key referring to the @unid of its parent (for use with JOINs). Child views also have a @offset as part of their primary key, which gives the position of the value within the array (counting up from 1).

Null Values

Domino does not have a direct equivalent of the SQL NULL value. The driver reports NULL values for columns in these scenarios:

  • When an item is not set on a note. In Domino formulas, this is equivalent to @IsAvailable(item) = 0.
  • When a single-valued item on a note is the empty text value. In Domino formulas, this is equivalent to @IsNull(item) = 1. Here, a single-valued item is an item on the base view (not a child view) where the driver did not find any multi-value entries during type detection.

In Flatten mode the driver distinguishes between empty multi-value items and multi-value items that are not assigned on a given note:

  • If the item is not assigned (@IsAvailable(item) = 0) them the column is reported as NULL.
  • If the item is assigned but contains just an empty text value (@IsAvailable(item) = 1 and @IsNull(item) = 1) then the driver reports '[]'.

Querying Attachments

Domino allows a note to contain multiple attachments which the driver reports in the Attachments view. This view contains only the metadata for each attachment: the note it belongs to and its name and size. Attachments can be manipulated via the DownloadAttachment and UploadAttachment stored procedures.

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8509