tree: a53dae92cd57335cd1901f530b7de98fa009c5c5 [path history] [tgz]
  1. async/
  2. reactive/
  3. BatchedArguments.java
  4. ColumnMetadata.java
  5. ColumnType.java
  6. IgniteSql.java
  7. NoRowSetExpectedException.java
  8. package-info.java
  9. README.md
  10. ResultSet.java
  11. ResultSetMetadata.java
  12. Session.java
  13. SqlBatchException.java
  14. SqlException.java
  15. SqlRow.java
  16. Statement.java
modules/api/src/main/java/org/apache/ignite/sql/README.md

#Apache Ignite SQL API

##Overview IgniteSql interface is an entry point for SQL query execution and provide method for creating SQL session and SQL statement.

An SQL session provide methods for running queries in sync, async and reactive ways and holds a context that queries will be executed against (e.g. default query timeout, or some hints, which may affects SQL query execution flow, and SQL extension/plugin specific hints).

SQL statement object represents an SQL query text with the context that overrides the session defaults.

The result of SQL query is represented with ResultSet, AsyncResultSet, and ReactiveResultSet classes, which provides the result itself and metadata for it. The query may return either boolean value (for a conditional query), or number of affected rows (for DML query), or a set of rows.

##Async query execution Note: Asynchronous API offers user methods for asynchronous result processing, which are very similar to synchronous one. Some users may find this approach easier understanding and using rather than reactive way.

##Reactive query execution Reactive methods provide reactive primitives of Java Flow API for building reactive flows.

Note: These primitives may be hard to use “as is”. Thus it is expected users will use some 3-rd party reactive framework for their purpose.

Query execution optimization

TBD: cover “query plan caching” topic.