Standard Conformance
ODBC standard conformance for the GridGain 9 ODBC driver: supported Core, Level 1, and Level 2 interface features, functions, attributes, and SQL data types.
Overview
ODBC defines several Interface conformance levels. In this section you can find which features are supported by the Apache Ignite ODBC driver.
Core Interface Conformance
Allocate and free all types of handles, by calling SQLAllocHandle and SQLFreeHandle.
YES
Use all forms of the SQLFreeStmt function.
YES
Bind result set columns, by calling SQLBindCol.
YES
Handle dynamic parameters, including arrays of parameters, in the input direction only, by calling SQLBindParameter and SQLNumParams.
YES
Specify a bind offset.
YES
Use the data-at-execution dialog, involving calls to SQLParamData and SQLPutData
YES
Manage cursors and cursor names, by calling SQLCloseCursor, SQLGetCursorName, and SQLSetCursorName.
PARTIALLY
SQLCloseCursor is implemented. Named cursors are not supported by Ignite SQL.
Gain access to the description (metadata) of result sets, by calling SQLColAttribute, SQLDescribeCol, SQLNumResultCols, and SQLRowCount.
YES
Query the data dictionary, by calling the catalog functions SQLColumns, SQLGetTypeInfo, SQLStatistics, and SQLTables.
PARTIALLY
SQLStatistics is not supported.
Manage data sources and connections, by calling SQLConnect, SQLDataSources, SQLDisconnect, and SQLDriverConnect. Obtain information on drivers, no matter which ODBC level they support, by calling SQLDrivers.
PARTIALLY
DSN support is not implemented.
Prepare and execute SQL statements, by calling SQLExecDirect, SQLExecute, and SQLPrepare.
YES
SQLPrepare is not supported on SQL side.
Fetch one row of a result set or multiple rows, in the forward direction only, by calling SQLFetch or by calling SQLFetchScroll with the FetchOrientation argument set to SQL_FETCH_NEXT
YES
Obtain an unbound column in parts, by calling SQLGetData.
YES
Obtain current values of all attributes, by calling SQLGetConnectAttr, SQLGetEnvAttr, and SQLGetStmtAttr, and set all attributes to their default values and set certain attributes to non-default values by calling SQLSetConnectAttr, SQLSetEnvAttr, and SQLSetStmtAttr.
PARTIALLY
Not all attributes are supported. See table below for details.
Manipulate certain fields of descriptors, by calling SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField, and SQLSetDescRec.
NO
Obtain diagnostic information, by calling SQLGetDiagField and SQLGetDiagRec.
YES
Detect driver capabilities, by calling SQLGetFunctions and SQLGetInfo. Also, detect the result of any text substitutions made to an SQL statement before it is sent to the data source, by calling SQLNativeSql.
YES
Use the syntax of SQLEndTran to commit a transaction. A Core-level driver need not support true transactions; therefore, the application cannot specify SQL_ROLLBACK nor SQL_AUTOCOMMIT_OFF for the SQL_ATTR_AUTOCOMMIT connection attribute.
YES
Call SQLCancel to cancel the data-at-execution dialog and, in multi-thread environments, to cancel an ODBC function executing in another thread. Core-level interface conformance does not mandate support for asynchronous execution of functions, nor the use of SQLCancel to cancel an ODBC function executing asynchronously. Neither the platform nor the ODBC driver need be multi-thread for the driver to conduct independent activities at the same time. However, in multi-thread environments, the ODBC driver must be thread-safe. Serialization of requests from the application is a conformant way to implement this specification, even though it might create serious performance problems.
NO
Obtain the SQL_BEST_ROWID row-identifying column of tables, by calling SQLSpecialColumns.
PARTIALLY
Current implementation always returns an empty row set.
Level 1 Interface Conformance
Specify the schema of database tables and views (using two-part naming).
YES
Invoke true asynchronous execution of ODBC functions, where applicable ODBC functions are all synchronous or all asynchronous on a given connection.
NO
Use scrollable cursors, and thereby achieve access to a result set in methods other than forward-only, by calling SQLFetchScroll with the FetchOrientation argument other than SQL_FETCH_NEXT.
NO
Obtain primary keys of tables, by calling SQLPrimaryKeys.
YES
Use stored procedures, through the ODBC escape sequence for procedure calls, and query the data dictionary regarding stored procedures, by calling SQLProcedureColumns and SQLProcedures.
NO
Connect to a data source by interactively browsing the available servers, by calling SQLBrowseConnect.
NO
Use ODBC functions instead of SQL statements to perform certain database operations: SQLSetPos with SQL_POSITION and SQL_REFRESH.
NO
Gain access to the contents of multiple result sets generated by batches and stored procedures, by calling SQLMoreResults.
YES
Delimit transactions spanning several ODBC functions, with true atomicity and the ability to specify SQL_ROLLBACK in SQLEndTran.
YES
Level 2 Interface Conformance
Use three-part names of database tables and views.
NO
GridGain SQL does not support catalogs.
Describe dynamic parameters, by calling SQLDescribeParam.
NO
Use not only input parameters but also output and input/output parameters, and result values of stored procedures.
NO
GridGain SQL does not support output parameters
Use bookmarks, including retrieving bookmarks, by calling SQLDescribeCol and SQLColAttribute on column number 0; fetching based on a bookmark, by calling SQLFetchScroll with the FetchOrientation argument set to SQL_FETCH_BOOKMARK; and update, delete, and fetch by bookmark operations, by calling SQLBulkOperations with the Operation argument set to SQL_UPDATE_BY_BOOKMARK, SQL_DELETE_BY_BOOKMARK, or SQL_FETCH_BY_BOOKMARK.
NO
GridGain SQL does not support bookmarks.
Retrieve advanced information about the data dictionary, by calling SQLColumnPrivileges, SQLForeignKeys, and SQLTablePrivileges.
PARTIALLY
SQLForeignKeys implemented, but returns empty result set.
Use ODBC functions instead of SQL statements to perform additional database operations, by calling SQLBulkOperations with SQL_ADD, or SQLSetPos with SQL_DELETE or SQL_UPDATE.
NO
Enable asynchronous execution of ODBC functions for specified individual statements.
NO
Obtain the SQL_ROWVER row-identifying column of tables, by calling SQLSpecialColumns.
NO
Set the SQL_ATTR_CONCURRENCY statement attribute to at least one value other than SQL_CONCUR_READ_ONLY.
NO
The ability to time out login request and SQL queries (SQL_ATTR_LOGIN_TIMEOUT and SQL_ATTR_QUERY_TIMEOUT).
YES
The ability to change the default isolation level; the ability to execute transactions with the "serializable" level of isolation.
NO
Function Conformance
SQLAllocHandle
YES
Core
SQLBindCol
YES
Core
SQLBindParameter
YES
Core
SQLBrowseConnect
NO
Level 1
SQLBulkOperations
NO
Level 1
SQLCancel
NO
Core
SQLCloseCursor
YES
Core
SQLColAttribute
YES
Core
SQLColumnPrivileges
NO
Level 2
SQLColumns
YES
Core
SQLConnect
YES
Core
SQLCopyDesc
NO
Core
SQLDataSources
N/A
Core
SQLDescribeCol
YES
Core
SQLDescribeParam
NO
Level 2
SQLDisconnect
YES
Core
SQLDriverConnect
YES
Core
SQLDrivers
N/A
Core
SQLEndTran
PARTIALLY
Core
SQLExecDirect
YES
Core
SQLExecute
YES
Core
SQLFetch
YES
Core
SQLFetchScroll
YES
Core
SQLForeignKeys
PARTIALLY
Level 2
SQLFreeHandle
YES
Core
SQLFreeStmt
YES
Core
SQLGetConnectAttr
PARTIALLY
Core
SQLGetCursorName
NO
Core
SQLGetData
YES
Core
SQLGetDescField
NO
Core
SQLGetDescRec
NO
Core
SQLGetDiagField
YES
Core
SQLGetDiagRec
YES
Core
SQLGetEnvAttr
PARTIALLY
Core
SQLGetFunctions
NO
Core
SQLGetInfo
YES
Core
SQLGetStmtAttr
PARTIALLY
Core
SQLGetTypeInfo
YES
Core
SQLMoreResults
YES
Level 1
SQLNativeSql
YES
Core
SQLNumParams
YES
Core
SQLNumResultCols
YES
Core
SQLParamData
YES
Core
SQLPrepare
YES
Core
SQLPrimaryKeys
YES
Level 1
SQLProcedureColumns
NO
Level 1
SQLProcedures
NO
Level 1
SQLPutData
YES
Core
SQLRowCount
YES
Core
SQLSetConnectAttr
PARTIALLY
Core
SQLSetCursorName
NO
Core
SQLSetDescField
NO
Core
SQLSetDescRec
NO
Core
SQLSetEnvAttr
PARTIALLY
Core
SQLSetPos
NO
Level 1
SQLSetStmtAttr
PARTIALLY
Core
SQLSpecialColumns
PARTIALLY
Core
SQLStatistics
NO
Core
SQLTablePrivileges
NO
Level 2
SQLTables
YES
Core
Environment Attribute Conformance
SQL_ATTR_CONNECTION_POOLING
NO
Optional
SQL_ATTR_CP_MATCH
NO
Optional
SQL_ATTR_ODBC_VER
YES
Core
SQL_ATTR_OUTPUT_NTS
YES
Optional
Connection Attribute Conformance
SQL_ATTR_ACCESS_MODE
NO
Core
SQL_ATTR_ASYNC_ENABLE
NO
Level 1 / Level 2
SQL_ATTR_AUTO_IPD
NO
Level 2
SQL_ATTR_AUTOCOMMIT
YES
Level 1
SQL_ATTR_CONNECTION_DEAD
YES
Level 1
SQL_ATTR_CONNECTION_TIMEOUT
YES
Level 2
SQL_ATTR_CURRENT_CATALOG
NO
Level 2
SQL_ATTR_LOGIN_TIMEOUT
YES
Level 2
SQL_ATTR_ODBC_CURSORS
NO
Core
SQL_ATTR_PACKET_SIZE
NO
Level 2
SQL_ATTR_QUIET_MODE
NO
Core
SQL_ATTR_TRACE
NO
Core
SQL_ATTR_TRACEFILE
NO
Core
SQL_ATTR_TRANSLATE_LIB
NO
Core
SQL_ATTR_TRANSLATE_OPTION
NO
Core
SQL_ATTR_TXN_ISOLATION
NO
Level 1 / Level 2
Statement Attribute Conformance
SQL_ATTR_APP_PARAM_DESC
PARTIALLY
Core
SQL_ATTR_APP_ROW_DESC
PARTIALLY
Core
SQL_ATTR_ASYNC_ENABLE
NO
Level 1/ Level 2
SQL_ATTR_CONCURRENCY
NO
Level 1 / Level 2
SQL_ATTR_CURSOR_SCROLLABLE
NO
Level 1
SQL_ATTR_CURSOR_SENSITIVITY
NO
Level 2
SQL_ATTR_CURSOR_TYPE
NO
Level 1 / Level 2
SQL_ATTR_ENABLE_AUTO_IPD
NO
Level 2
SQL_ATTR_FETCH_BOOKMARK_PTR
NO
Level 2
SQL_ATTR_IMP_PARAM_DESC
PARTIALLY
Core
SQL_ATTR_IMP_ROW_DESC
PARTIALLY
Core
SQL_ATTR_KEYSET_SIZE
NO
Level 2
SQL_ATTR_MAX_LENGTH
NO
Level 1
SQL_ATTR_MAX_ROWS
NO
Level 1
SQL_ATTR_METADATA_ID
NO
Core
SQL_ATTR_NOSCAN
NO
Core
SQL_ATTR_PARAM_BIND_OFFSET_PTR
YES
Core
SQL_ATTR_PARAM_BIND_TYPE
NO
Core
SQL_ATTR_PARAM_OPERATION_PTR
NO
Core
SQL_ATTR_PARAM_STATUS_PTR
YES
Core
SQL_ATTR_PARAMS_PROCESSED_PTR
YES
Core
SQL_ATTR_PARAMSET_SIZE
YES
Core
SQL_ATTR_QUERY_TIMEOUT
YES
Level 2
SQL_ATTR_RETRIEVE_DATA
NO
Level 1
SQL_ATTR_ROW_ARRAY_SIZE
YES
Core
SQL_ATTR_ROW_BIND_OFFSET_PTR
YES
Core
SQL_ATTR_ROW_BIND_TYPE
YES
Core
SQL_ATTR_ROW_NUMBER
NO
Level 1
SQL_ATTR_ROW_OPERATION_PTR
NO
Level 1
SQL_ATTR_ROW_STATUS_PTR
YES
Core
SQL_ATTR_ROWS_FETCHED_PTR
YES
Core
SQL_ATTR_SIMULATE_CURSOR
NO
Level 2
SQL_ATTR_USE_BOOKMARKS
NO
Level 2
Descriptor Header Fields Conformance
SQL_DESC_ALLOC_TYPE
NO
Core
SQL_DESC_ARRAY_SIZE
NO
Core
SQL_DESC_ARRAY_STATUS_PTR
NO
Core / Level 1
SQL_DESC_BIND_OFFSET_PTR
NO
Core
SQL_DESC_BIND_TYPE
NO
Core
SQL_DESC_COUNT
NO
Core
SQL_DESC_ROWS_PROCESSED_PTR
NO
Core
Descriptor Record Fields Conformance
SQL_DESC_AUTO_UNIQUE_VALUE
NO
Level 2
SQL_DESC_BASE_COLUMN_NAME
NO
Core
SQL_DESC_BASE_TABLE_NAME
NO
Level 1
SQL_DESC_CASE_SENSITIVE
NO
Core
SQL_DESC_CATALOG_NAME
NO
Level 2
SQL_DESC_CONCISE_TYPE
NO
Core
SQL_DESC_DATA_PTR
NO
Core
SQL_DESC_DATETIME_INTERVAL_CODE
NO
Core
SQL_DESC_DATETIME_INTERVAL_PRECISION
NO
Core
SQL_DESC_DISPLAY_SIZE
NO
Core
SQL_DESC_FIXED_PREC_SCALE
NO
Core
SQL_DESC_INDICATOR_PTR
NO
Core
SQL_DESC_LABEL
NO
Level 2
SQL_DESC_LENGTH
NO
Core
SQL_DESC_LITERAL_PREFIX
NO
Core
SQL_DESC_LITERAL_SUFFIX
NO
Core
SQL_DESC_LOCAL_TYPE_NAME
NO
Core
SQL_DESC_NAME
NO
Core
SQL_DESC_NULLABLE
NO
Core
SQL_DESC_OCTET_LENGTH
NO
Core
SQL_DESC_OCTET_LENGTH_PTR
NO
Core
SQL_DESC_PARAMETER_TYPE
NO
Core / Level 2
SQL_DESC_PRECISION
NO
Core
SQL_DESC_ROWVER
NO
Level 1
SQL_DESC_SCALE
NO
Core
SQL_DESC_SCHEMA_NAME
NO
Level 1
SQL_DESC_SEARCHABLE
NO
Core
SQL_DESC_TABLE_NAME
NO
Level 1
SQL_DESC_TYPE
NO
Core
SQL_DESC_TYPE_NAME
NO
Core
SQL_DESC_UNNAMED
NO
Core
SQL_DESC_UNSIGNED
NO
Core
SQL_DESC_UPDATABLE
NO
Core
SQL Data Types
The following SQL data types listed in the specification are supported:
SQL_CHAR
YES
SQL_VARCHAR
YES
SQL_LONGVARCHAR
YES
SQL_WCHAR
NO
SQL_WVARCHAR
NO
SQL_WLONGVARCHAR
NO
SQL_DECIMAL
YES
SQL_NUMERIC
NO
SQL_SMALLINT
YES
SQL_INTEGER
YES
SQL_REAL
NO
SQL_FLOAT
YES
SQL_DOUBLE
YES
SQL_BIT
YES
SQL_TINYINT
YES
SQL_BIGINT
YES
SQL_BINARY
YES
SQL_VARBINARY
YES
SQL_LONGVARBINARY
YES
SQL_TYPE_DATE
YES
SQL_TYPE_TIME
YES
SQL_TYPE_TIMESTAMP
YES
SQL_TYPE_UTCDATETIME
NO
SQL_TYPE_UTCTIME
NO
SQL_INTERVAL_MONTH
NO
SQL_INTERVAL_YEAR
NO
SQL_INTERVAL_YEAR_TO_MONTH
NO
SQL_INTERVAL_DAY
NO
SQL_INTERVAL_HOUR
NO
SQL_INTERVAL_MINUTE
NO
SQL_INTERVAL_SECOND
NO
SQL_INTERVAL_DAY_TO_HOUR
NO
SQL_INTERVAL_DAY_TO_MINUTE
NO
SQL_INTERVAL_DAY_TO_SECOND
NO
SQL_INTERVAL_HOUR_TO_MINUTE
NO
SQL_INTERVAL_HOUR_TO_SECOND
NO
SQL_INTERVAL_MINUTE_TO_SECOND
NO
SQL_GUID
YES
Last updated
Was this helpful?

