Menu
Simba Technologies
Simba Technologies

SimbaEngine X SDK 10.1.3
Developing Drivers for Data Stores Without SQL

SimbaEngine X SDK Documentation > Core Features > Using SQL Engine Properties

Using SQL Engine Properties

This section describes the properties you can use to modify the default behaviour of the Simba SQLEngine. In the C++ SDK, you set these properties on the DSIExtSqlDataEngine class, while in the Java SDK you set them on the SqlDataEngine class.

For general information on overriding default properties, see Overriding the Value of Default Properties.

Properties in the C++ and Java SQL Engine

These properties are available in both the C++ and the Java SQL Engine.

DSIEXT_DATAENGINE_NULL_EQUALS_EMPTY_STRING

This property determines if the IS NULL predicate is treated the same way that = '' (empty string) is. Available values are:

  • Y – Specifies that IS NULL and = '' are treated the same way.
  • N– Specifies that IS NULL and = '' are not treated the same way.

Defaults to N.

DSIEXT_MAX_OPEN_FILE_PER_NODE

This property specifies the aximum number of open files that one execution node or unit, for example a sort or join node, are allowed to use. The property is to make sure that SQLEngine do not consume too much file descriptors as many Linux like systems limit the number of open file descriptors per process.

This must be a positive, signed int-32 value. The minimum value for this property is 4, and the default value is 50.

DSIEXT_DATAENGINE_TABLE_CACHING

This property determines if the SQLEngine caches tables that it reads if a row would be visited more than once, so that the DSII can safely discard data once a row has been visited. Available values are:

  • Y – SQLEngine caches tables if needed.
  • N – SQLEngine dpes not cache tables, and the DSII will cache the tables to allow rows to be visited multiple times.

Defaults to N.

DSIEXT_DATAENGINE_AETREEOPTIMIZATION

This property determines if the SQLEngine performs optimizations on an AE Tree. Available values are:

  • Y - SQLEngine performs AE Tree optimizations.
  • N - SQLEngine does not perform AE Tree optimizations.

Default is Y.

DSIEXT_DATAENGINE_LOG_AETREES

This property specifies which types of logging to perform on an AE Tree before and after Collaborative Query Execution (CGQ). If a specific value is set, then the file AETree.log is created in the global logging path, otherwise no logging is performed. The available bitwise values are:

  • DSIEXT_LOG_PRE_OPTIMIZE – logs the tree prior to optimization.
  • DSIEXT_LOG_POST_REORDER - logs the tree prior to reordering.
  • DSIEXT_LOG_POST_OPTIMIZE - logs the tree after optimization.
  • DSIEXT_LOG_POST_PASSDOWN - logs the tree after passdowns are complete.
  • DSIEXT_LOG_DOT_GRAPH – logs the tree in DOT format for viewing in a suitable graphing program.

    Default is 0.

DSIEXT_DATAENGINE _COALESCE_DUPLICATE_GROUP_BY_EXPRESSIONS

This property determines if the SQLEngine removes duplicate expressions in the GROUP BY list in the AETree. Available values are:

  • Y - SQLEngine removes duplicate expressions.
  • N - SQLEngine does not remove duplicate expressions.

Default is Y.

DSIEXT_DATAENGINE_IGNORE_PARSER_LIMITS

This property determines if the SQLEngine ignores limits defined by SQLGetInfo when building the parse tree. Available values are:

  • Y - parser limits are ignored.
  • N - parser limits are respected.

Default is N.

DSIEXT_DATAENGINE_LOG_PARSETREE

This property determines if the SQLEngine logs the parse tree. Available values are:

  • Y - SQLEngine logs the parse tree.
  • N - SQLEngine does not log the parse tree.

Default is N.

DSIEXT_DATAENGINE_LOG_ETREE

This property determines if the SQLEngine logs the AETree.

  • Y - SQLEngine logs the ETree.
  • N - SQLEngine does not log the ETree.

Default is N.

DSIEXT_DATAENGINE_USE_DSII_INDEXES

This property determines if the SQLEngine uses DSII indexes during execution.

  • Y - SQLEngine uses DSII indexes.
  • N - SQLEngine does not use DSII indexes.

Default is N.

DSIEXT_DATAENGINE_PREFER_INDEX_ONLY_SCANS

This property determines if the SQLEngine uses DSII indexes for 'Index-Only scans' even if no filters are satisfied by the indexed columns.

  • Y - SQLEngine prefers the use of index-only scans to table scans.
  • N - SQLEngine does not prefer the use of index-only scans to table scans.

Default is Y.

DSIEXT_DATAENGINE_USE_LITERAL_LEN_FOR_PARAM_META

This property determines if the SQLEngine uses the DSI_CONN_MAX_CHAR_LITERAL_LEN and DSI_CONN_MAX_BINARY_LITERAL_LEN when exposing parameter metadata.

  • Y - DSI_CONN_MAX_CHAR_LITERAL_LEN and DSI_CONN_MAX_BINARY_LITERAL_LEN is used.
  • N - length returned by the column being inserted into or being compared against is exposed.

Default is Y.

Properties in the Java SQL Engine

These properties are available in the Java SQL Engine only.

DSIEXT_RECOMMENDED_TEMPORARY_TABLE_BLOCK_SIZE

This property specifies the recommended block size (in bytes) that is used for memory intensive operations such as SORT or JOIN that use a temporary table to save intermediate results to disk. 

Default is 1000000.

DSIEXT_MAX_COLUMN_SIZE_TO_INCLUDE_IN_BLOCK

This property specifies the maximum column size in bytes for SQL-CHAR and SQL-BINARY types that is stored in a memory block during memory intensive operations such as SORT or JOIN that use a temporary table to save  intermediate results to disk.

Default is 1000000.

DSIEXT_PROVIDE_DEFAULT_CATALOG_NAME

This property determines if the SQLEngine provides the default catalog name to SqlDataEngine::openTable() when the user has not specified it in the input SQL statement.

  • Y - SQLEngine provides the default catalog name to SqlDataEngine::openTable().
  • N - length returned by the column being inserted into or being compared against is exposed.

Default is Y.

SQLEngine Specific Switches

The SQLEngine also provides some switches to customize its behavior. These switches are read from either HKLM\SOFTWARE\<OEM NAME>\Driver in the Windows registry or from the vendor .ini file on non-Windows platforms.

SwapFilePath

This property sets the path that SQLEngine will use for creation of temporary swap files that are needed for certain operations.

 

Related Links

Overriding the Value of Default Properties