Apache Ignite SQL Documentation

The Apache Ignite SQL Developer Hub

Welcome to the Apache Ignite SQL developer hub. You'll find comprehensive guides and documentation to help you start working with Apache Ignite SQL as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Specification

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

FeatureSupported in Apache IgniteComments
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 SQLPutDataYES
Manage cursors and cursor names, by calling SQLCloseCursor, SQLGetCursorName, and SQLSetCursorName.PARTIALLYSQLCloseCursor 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.PARTIALLYSQLStatistics 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.YES
Prepare and execute SQL statements, by calling SQLExecDirect, SQLExecute, and SQLPrepare.YES
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_NEXTYES
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.PARTIALLYNot all attributes are supported by now. 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.NOCurrent implementation does not support asynchronous execution. Also, is not supported for data-at-execution.
Obtain the SQL_BEST_ROWID row-identifying column of tables, by calling SQLSpecialColumns.PARTIALLYCurrent implementation always returns empty row set.

Level 1 Interface Conformance

FeatureSupportedComments
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.PARTIALLYReturns empty result set by now.
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.NOIgnite SQL does not support transactions.

Level 2 Interface Conformance

FeatureSupportedComments
Use three-part names of database tables and views.NOIgnite SQL does not supports catalogs.
Describe dynamic parameters, by calling SQLDescribeParam.YES
Use not only input parameters but also output and input/output parameters, and result values of stored procedures.NOIgnite SQL does not supports 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.NOIgnite SQL does not supports bookmarks.
Retrieve advanced information about the data dictionary, by calling SQLColumnPrivileges, SQLForeignKeys, and SQLTablePrivileges.PARTIALLYSQLForeignKeys 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.PARTIALLYImplemented by returning an empty row set.
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).PARTIALLYSQL_ATTR_QUERY_TIMEOUT support implemented.
SQL_ATTR_LOGIN_TIMEOUT is not implemented yet.
The ability to change the default isolation level; the ability to execute transactions with the "serializable" level of isolation.NOIgnite does not supports SQL transactions

Function Support

FunctionSupported in Apache IgniteConformance level
SQLAllocHandleYESCore
SQLBindColYESCore
SQLBindParameterYESCore
SQLBrowseConnectNOLevel 1
SQLBulkOperationsNOLevel 1
SQLCancelNOCore
SQLCloseCursorYESCore
SQLColAttributeYESCore
SQLColumnPrivilegesNOLevel 2
SQLColumnsYESCore
SQLConnectYESCore
SQLCopyDescNOCore
SQLDataSourcesN/ACore
SQLDescribeColYESCore
SQLDescribeParamYESLevel 2
SQLDisconnectYESCore
SQLDriverConnectYESCore
SQLDriversN/ACore
SQLEndTranPARTIALLYCore
SQLExecDirectYESCore
SQLExecuteYESCore
SQLFetchYESCore
SQLFetchScrollYESCore
SQLForeignKeysPARTIALLYLevel 2
SQLFreeHandleYESCore
SQLFreeStmtYESCore
SQLGetConnectAttrPARTIALLYCore
SQLGetCursorNameNOCore
SQLGetDataYESCore
SQLGetDescFieldNOCore
SQLGetDescRecNOCore
SQLGetDiagFieldYESCore
SQLGetDiagRecYESCore
SQLGetEnvAttrPARTIALLYCore
SQLGetFunctionsNOCore
SQLGetInfoYESCore
SQLGetStmtAttrPARTIALLYCore
SQLGetTypeInfoYESCore
SQLMoreResultsYESLevel 1
SQLNativeSqlYESCore
SQLNumParamsYESCore
SQLNumResultColsYESCore
SQLParamDataYESCore
SQLPrepareYESCore
SQLPrimaryKeysPARTIALLYLevel 1
SQLProcedureColumnsNOLevel 1
SQLProceduresNOLevel 1
SQLPutDataYESCore
SQLRowCountYESCore
SQLSetConnectAttrPARTIALLYCore
SQLSetCursorNameNOCore
SQLSetDescFieldNOCore
SQLSetDescRecNOCore
SQLSetEnvAttrPARTIALLYCore
SQLSetPosNOLevel 1
SQLSetStmtAttrPARTIALLYCore
SQLSpecialColumnsPARTIALLYCore
SQLStatisticsNOCore
SQLTablePrivilegesNOLevel 2
SQLTablesYESCore

Environment Attribute Conformance

FeatureSupportedConformance level
SQL_ATTR_CONNECTION_POOLINGNOOptional
SQL_ATTR_CP_MATCHNOOptional
SQL_ATTR_ODBC_VERYESCore
SQL_ATTR_OUTPUT_NTSYESOptional

Connection Attribute Conformance

FeatureSupportedConformance level
SQL_ATTR_ACCESS_MODENOCore
SQL_ATTR_ASYNC_ENABLENOLevel 1 / Level 2
SQL_ATTR_AUTO_IPDNOLevel 2
SQL_ATTR_AUTOCOMMITNOLevel 1
SQL_ATTR_CONNECTION_DEADYESLevel 1
SQL_ATTR_CONNECTION_TIMEOUTYESLevel 2
SQL_ATTR_CURRENT_CATALOGNOLevel 2
SQL_ATTR_LOGIN_TIMEOUTNOLevel 2
SQL_ATTR_ODBC_CURSORSNOCore
SQL_ATTR_PACKET_SIZENOLevel 2
SQL_ATTR_QUIET_MODENOCore
SQL_ATTR_TRACENOCore
SQL_ATTR_TRACEFILENOCore
SQL_ATTR_TRANSLATE_LIBNOCore
SQL_ATTR_TRANSLATE_OPTIONNOCore
SQL_ATTR_TXN_ISOLATIONNOLevel 1 / Level 2

Statement Attribute Conformance

FeatureSupportedConformance level
SQL_ATTR_APP_PARAM_DESCPARTIALLYCore
SQL_ATTR_APP_ROW_DESCPARTIALLYCore
SQL_ATTR_ASYNC_ENABLENOLevel 1/ Level 2
SQL_ATTR_CONCURRENCYNOLevel 1 / Level 2
SQL_ATTR_CURSOR_SCROLLABLENOLevel 1
SQL_ATTR_CURSOR_SENSITIVITYNOLevel 2
SQL_ATTR_CURSOR_TYPENOLevel 1 / Level 2
SQL_ATTR_ENABLE_AUTO_IPDNOLevel 2
SQL_ATTR_FETCH_BOOKMARK_PTRNOLevel 2
SQL_ATTR_IMP_PARAM_DESCPARTIALLYCore
SQL_ATTR_IMP_ROW_DESCPARTIALLYCore
SQL_ATTR_KEYSET_SIZENOLevel 2
SQL_ATTR_MAX_LENGTHNOLevel 1
SQL_ATTR_MAX_ROWSNOLevel 1
SQL_ATTR_METADATA_IDNOCore
SQL_ATTR_NOSCANNOCore
SQL_ATTR_PARAM_BIND_OFFSET_PTRYESCore
SQL_ATTR_PARAM_BIND_TYPENOCore
SQL_ATTR_PARAM_OPERATION_PTRNOCore
SQL_ATTR_PARAM_STATUS_PTRYESCore
SQL_ATTR_PARAMS_PROCESSED_PTRYESCore
SQL_ATTR_PARAMSET_SIZEYESCore
SQL_ATTR_QUERY_TIMEOUTYESLevel 2
SQL_ATTR_RETRIEVE_DATANOLevel 1
SQL_ATTR_ROW_ARRAY_SIZEYESCore
SQL_ATTR_ROW_BIND_OFFSET_PTRYESCore
SQL_ATTR_ROW_BIND_TYPEYESCore
SQL_ATTR_ROW_NUMBERNOLevel 1
SQL_ATTR_ROW_OPERATION_PTRNOLevel 1
SQL_ATTR_ROW_STATUS_PTRYESCore
SQL_ATTR_ROWS_FETCHED_PTRYESCore
SQL_ATTR_SIMULATE_CURSORNOLevel 2
SQL_ATTR_USE_BOOKMARKSNOLevel 2

Descriptor Header Fields Conformance

FeatureSupportedConformance level
SQL_DESC_ALLOC_TYPENOCore
SQL_DESC_ARRAY_SIZENOCore
SQL_DESC_ARRAY_STATUS_PTRNOCore / Level 1
SQL_DESC_BIND_OFFSET_PTRNOCore
SQL_DESC_BIND_TYPENOCore
SQL_DESC_COUNTNOCore
SQL_DESC_ROWS_PROCESSED_PTRNOCore

Descriptor Record Fields Conformance

FeatureSupportedConformance level
SQL_DESC_AUTO_UNIQUE_VALUENOLevel 2
SQL_DESC_BASE_COLUMN_NAMENOCore
SQL_DESC_BASE_TABLE_NAMENOLevel 1
SQL_DESC_CASE_SENSITIVENOCore
SQL_DESC_CATALOG_NAMENOLevel 2
SQL_DESC_CONCISE_TYPENOCore
SQL_DESC_DATA_PTRNOCore
SQL_DESC_DATETIME_INTERVAL_CODENOCore
SQL_DESC_DATETIME_INTERVAL_PRECISIONNOCore
SQL_DESC_DISPLAY_SIZENOCore
SQL_DESC_FIXED_PREC_SCALENOCore
SQL_DESC_INDICATOR_PTRNOCore
SQL_DESC_LABELNOLevel 2
SQL_DESC_LENGTHNOCore
SQL_DESC_LITERAL_PREFIXNOCore
SQL_DESC_LITERAL_SUFFIXNOCore
SQL_DESC_LOCAL_TYPE_NAMENOCore
SQL_DESC_NAMENOCore
SQL_DESC_NULLABLENOCore
SQL_DESC_OCTET_LENGTHNOCore
SQL_DESC_OCTET_LENGTH_PTRNOCore
SQL_DESC_PARAMETER_TYPENOCore / Level 2
SQL_DESC_PRECISIONNOCore
SQL_DESC_ROWVERNOLevel 1
SQL_DESC_SCALENOCore
SQL_DESC_SCHEMA_NAMENOLevel 1
SQL_DESC_SEARCHABLENOCore
SQL_DESC_TABLE_NAMENOLevel 1
SQL_DESC_TYPENOCore
SQL_DESC_TYPE_NAMENOCore
SQL_DESC_UNNAMEDNOCore
SQL_DESC_UNSIGNEDNOCore
SQL_DESC_UPDATABLENOCore

SQL Data Types

Following SQL data types listed in specification are supported:

Data TypeSupported
SQL_CHARYES
SQL_VARCHARYES
SQL_LONGVARCHARYES
SQL_WCHARNO
SQL_WVARCHARNO
SQL_WLONGVARCHARNO
SQL_DECIMALYES
SQL_NUMERICNO
SQL_SMALLINTYES
SQL_INTEGERYES
SQL_REALNO
SQL_FLOATYES
SQL_DOUBLEYES
SQL_BITYES
SQL_TINYINTYES
SQL_BIGINTYES
SQL_BINARYYES
SQL_VARBINARYYES
SQL_LONGVARBINARYYES
SQL_TYPE_DATEYES
SQL_TYPE_TIMEYES
SQL_TYPE_TIMESTAMPYES
SQL_TYPE_UTCDATETIMENO
SQL_TYPE_UTCTIMENO
SQL_INTERVAL_MONTHNO
SQL_INTERVAL_YEARNO
SQL_INTERVAL_YEAR_TO_MONTHNO
SQL_INTERVAL_DAYNO
SQL_INTERVAL_HOURNO
SQL_INTERVAL_MINUTENO
SQL_INTERVAL_SECONDNO
SQL_INTERVAL_DAY_TO_HOURNO
SQL_INTERVAL_DAY_TO_MINUTENO
SQL_INTERVAL_DAY_TO_SECONDNO
SQL_INTERVAL_HOUR_TO_MINUTENO
SQL_INTERVAL_HOUR_TO_SECONDNO
SQL_INTERVAL_MINUTE_TO_SECONDNO
SQL_GUIDYES

C Data Types

Following C data types listed in specification are supported:

Data TypeSupported
SQL_C_CHARYES
SQL_C_WCHARYES
SQL_C_SHORTYES
SQL_C_SSHORTYES
SQL_C_USHORTYES
SQL_C_LONGYES
SQL_C_SLONGYES
SQL_C_ULONGYES
SQL_C_FLOATYES
SQL_C_DOUBLEYES
SQL_C_BITYES
SQL_C_TINYINTYES
SQL_C_STINYINTYES
SQL_C_UTINYINTYES
SQL_C_BIGINTYES
SQL_C_SBIGINTYES
SQL_C_UBIGINTYES
SQL_C_BINARYYES
SQL_C_BOOKMARKNO
SQL_C_VARBOOKMARKNO
SQL_C_INTERVAL* (all interval types)NO
SQL_C_TYPE_DATEYES
SQL_C_TYPE_TIMEYES
SQL_C_TYPE_TIMESTAMPYES
SQL_C_NUMERICYES
SQL_C_GUIDYES

Updated less than a minute ago

Specification


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.