MDS Driver Reference

About the MDS Driver

The MDS driver provides access to an in-memory database for SAS Federation Server.

Data Service Connection Options for MDS

MDS supports the following connection string options.
Option
Description
LOCALE
LOCALE=SAS locale identifer
Specifies the locale for message text and character conversion, both ‘to’ and ‘from’.
DB | DATABASE
DATABASE=database name
Specifies the in-memory database instance. DATABASE must be specified if CONOPTS= is not specified. The database defaults to the catalog name if a database name is not specified.
CATALOG
CATALOG=catalog name;
Specifies the catalog name. CATALOG must be specified if CONOPTS= is not specified.
CONOPTS
CONOPTS=connection string options
Specifies the connection string options for the driver to cache in memory. If a connection string is not specified, the default is in memory only.
COMMIT
COMMIT=Y|N
Specifies if the in-memory changes are written to the CONOPTS= driver. COMMIT must be used with the CONOPTS= option.
BULKLOAD
BULKLOAD=Y|N
Specifies if data is inserted immediately, which bypasses transactions. The BULKLOAD option is valid only when CONOPTS= is not specified.
NUMERICS
NUMERICS=Y|N
Allows numeric data types or treats them as double precision. The default is Y (Yes).
RETAIN
RETAIN=Y|N
Specifies if the in-memory database is dropped after the last client disconnects. The default is N (No).
CT_PRESERVE
CT_PRESERVE = STRICT | SAFE | FORCE | FORCE_COL_SIZE
Allows users to control how data types are mapped. Note that data type mapping is disabled when CT_PRESERVE is set to STRICT. If the requested type does not exist on the target database, an error is returned. The options are as follows:
  • STRICT The requested type must exist in the target database. No type promotion occurs. If the type does not exist, an error is returned.
  • SAFE Target data types are upscaled only if they do not result in a loss of precision or scale. When character encodings are changed, the new column size is recalculated to ensure all characters can be stored in the new encoding.
  • FORCE This is the default for all drivers. The best corresponding target data type is chosen, even if it could potentially result in a loss of precision or scale. When character encodings are changed, the new column size is recalculated to ensure all characters can be stored in the new encoding.
  • FORCE_COL_SIZE This option is the same as FORCE, except that the column size for the new encoding is the same as the original encoding. This option can be used to avoid column size creep. However, the resulting column might be too large or too small for the target data.
IDCASE
IDCASE=SENSITIVE | INSENSITIVE
Specifies if schema, table, column, and alias identifiers are case-sensitive or insensitive. The default is case sensitive. IDCASE is valid only when CONOPTS= is not specified.
DEFAULT_ATTR
DEFAULT_ATTR=(attr=value;...)
Used to specify connection handle or statement handle attributes supported for initial connect-time configuration, where attr=value corresponds to any of the following options:
  • CURSORS=n- Connection handle option. This option controls the driver’s use of client side result set cursors. The possible values are 0, 1 or 2.
    0 Causes the driver to use client-side static cursor emulation if a scrollable cursor is requested but the database server cannot provide one.
    1 Causes the driver to always use client-side static cursor emulation if a scrollable cursor is requested. The database server’s native cursor is not used.
    2 (Default) Causes the driver to never use client-side static cursor emulation if a scrollable cursor is requested. The database server’s native cursor is used if available. Otherwise, the cursor will be forward-only.
    Example: DEFAULT_ATTR=(CURSORS=2)
  • USE_EVP=n - Statement handle option. This option optimizes the driver for large result sets. The possible values are 0 (OFF) or 1 (ON), which is the default. Example: DEFAULT_ATTR=(USE_EVP=0)
  • XCODE_WARN=n - Statement handle option. Used to warn on character transcoding errors that occur during row input or output operations. Possible values are 0 (returns an error), 1 (returns a warning), or 2 (ignore transaction errors). 0 is the default. Example: DEFAULT_ATTR=(XCODE_WARN=1)
DEFSCHEMA
DEFSCHEMA=schema name
Specifies the default schema for identifiers with no schema qualifier. The default is the first SCHEMA= in the connection string. This option is valid only when CONOPTS= is not specified.
SCHEMAS
SCHEMAS=(“schema1”;”schema2”;”schema3”)
Specifies a list of schemas defined in the database. Identify schema names with double quotation marks and separate each name by a semicolon.
SCHEMA
SCHEMA=(NAME=schema-name1);SCHEMA=(NAME=schema-name2);...
Defines one or more schemas in the database. The default is a single schema using the defined catalog name.
REFTYPE
REFTYPE=VARCHAR | NVARCHAR | VARBINARY
Indicates that duplicate column data should be stored once and referenced by result sets rather than having separate instances in each row. This reduces memory usage with large numbers of duplicate data but might slow down performance.
VARCHAR
Create a REFCHAR instead of a VARCHAR when specified. The default is create VARCHAR.
NVARCHAR
Create an NREFCHAR instead of an NVARCHAR when specified. The default is create NVARCHAR.
VARBINARY
Create a REFBINARY instead of a VARBINARY when specified. The default is create VARBINARY.
Note: A REFCHAR(32) uses less space than a VARCHAR(32) if there are many duplicate values in the table or if the data is less than 32 characters. However, a REFCHAR(1) generally uses more memory than a VARCHAR(1) because an extra pointer has to be stored instead of a single character.
MAXDBMEM
MAXDBMEM=number of bytes
Specifies the maximum amount of memory the database can use to store all row data for all tables. The default is no limit.