Package org.apache.ignite.configuration

## Class SqlConfiguration

- java.lang.Object
- - org.apache.ignite.configuration.SqlConfiguration

-     public class SqlConfiguration
      extends Object

  The configuration of the SQL query subsystem.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static long` | `DFLT_LONG_QRY_WARN_TIMEOUT` | Default timeout after which long query warning will be printed.
    `static long` | `DFLT_QRY_TIMEOUT` | Default query timeout.
    `static int` | `DFLT_SQL_PLAN_HISTORY_SIZE` | Default SQL plan history size.
    `static int` | `DFLT_SQL_QUERY_HISTORY_SIZE` | Default SQL query history size.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SqlConfiguration()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getDefaultQueryTimeout()` | Deprecated. Since 2.9.
    `long` | `getLongQueryWarningTimeout()` | Gets timeout in milliseconds after which long query warning will be printed.
    `QueryEngineConfiguration[]` | `getQueryEnginesConfiguration()` | Gets query engines configuration.
    `int` | `getSqlPlanHistorySize()` | Number of SQL plan history elements to keep in memory.
    `int` | `getSqlQueryHistorySize()` | Number of SQL query history elements to keep in memory.
    `String[]` | `getSqlSchemas()` | Gets SQL schemas to be created on node startup.
    `boolean` | `isValidationEnabled()` | Returns whether Ignite validates cache keys and values against the declared SQL schema before applying DML operations such as `INSERT`, `MERGE`, `UPDATE` and cache API calls that modify data.
    `SqlConfiguration` | `setDefaultQueryTimeout​(long dfltQryTimeout)` | Deprecated. Since 2.9.
    `SqlConfiguration` | `setLongQueryWarningTimeout​(long longQryWarnTimeout)` | Sets timeout in milliseconds after which long query warning will be printed.
    `SqlConfiguration` | `setQueryEnginesConfiguration​(QueryEngineConfiguration... enginesConfiguration)` | Sets query engines configuration.
    `SqlConfiguration` | `setSqlPlanHistorySize​(int size)` | Sets number of SQL plan history elements kept in memory.
    `SqlConfiguration` | `setSqlQueryHistorySize​(int size)` | Sets number of SQL query history elements kept in memory.
    `SqlConfiguration` | `setSqlSchemas​(String... sqlSchemas)` | Sets SQL schemas to be created on node startup.
    `SqlConfiguration` | `setValidationEnabled​(boolean validationEnabled)` | Enables or disables validation of cache keys and values against the SQL schema.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DFLT_SQL_QUERY_HISTORY_SIZE

          public static final int DFLT_SQL_QUERY_HISTORY_SIZE

      Default SQL query history size.
      See Also:
        Constant Field Values

    - #### DFLT_SQL_PLAN_HISTORY_SIZE

          public static final int DFLT_SQL_PLAN_HISTORY_SIZE

      Default SQL plan history size.
      See Also:
        Constant Field Values

    - #### DFLT_QRY_TIMEOUT

          public static final long DFLT_QRY_TIMEOUT

      Default query timeout.
      See Also:
        Constant Field Values

    - #### DFLT_LONG_QRY_WARN_TIMEOUT

          public static final long DFLT_LONG_QRY_WARN_TIMEOUT

      Default timeout after which long query warning will be printed.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SqlConfiguration

          public SqlConfiguration()

  - ### Method Detail

    - #### getDefaultQueryTimeout

          @Deprecated
          public long getDefaultQueryTimeout()

      Deprecated.
      Since 2.9. Please use distributed default query timeout.
      Defines the default query timeout. Defaults to `DFLT_QRY_TIMEOUT`. `0` means there is no timeout (this is a default value)
      Returns:
        Default query timeout.

    - #### setDefaultQueryTimeout

          @Deprecated
          public SqlConfiguration setDefaultQueryTimeout​(long dfltQryTimeout)

      Deprecated.
      Since 2.9. Please use distributed default query timeout.
      Sets timeout in milliseconds for default query timeout. `0` means there is no timeout (this is a default value)
      Parameters:
        `dfltQryTimeout` - Timeout in milliseconds.
      Returns:
        `this` for chaining.

    - #### getSqlQueryHistorySize

          public int getSqlQueryHistorySize()

      Number of SQL query history elements to keep in memory. If not provided, then default value `DFLT_SQL_QUERY_HISTORY_SIZE` is used. If provided value is less or equals 0, then gathering SQL query history will be switched off.
      Returns:
        SQL query history size.

    - #### setSqlQueryHistorySize

          public SqlConfiguration setSqlQueryHistorySize​(int size)

      Sets number of SQL query history elements kept in memory. If not explicitly set, then default value is `DFLT_SQL_QUERY_HISTORY_SIZE`.
      Parameters:
        `size` - Number of SQL query history elements kept in memory.
      Returns:
        `this` for chaining.

    - #### getSqlPlanHistorySize

          public int getSqlPlanHistorySize()

      Number of SQL plan history elements to keep in memory. If not provided, then default value `-1` applies when the indexing module is in use and `DFLT_SQL_PLAN_HISTORY_SIZE` is used for other engines. If provided value is less or equals 0, then gathering SQL plan history will be switched off.
      Returns:
        SQL plan history size.

    - #### setSqlPlanHistorySize

          public SqlConfiguration setSqlPlanHistorySize​(int size)

      Sets number of SQL plan history elements kept in memory. If not explicitly set, then default value `-1` applies when the indexing module is in use and `DFLT_SQL_PLAN_HISTORY_SIZE` is used for other engines.
      Parameters:
        `size` - Number of SQL plan history elements kept in memory.
      Returns:
        `this` for chaining.

    - #### getSqlSchemas

          public String[] getSqlSchemas()

      Gets SQL schemas to be created on node startup.

      See `setSqlSchemas(String...)` for more information.

      Returns:
        SQL schemas to be created on node startup.

    - #### setSqlSchemas

          public SqlConfiguration setSqlSchemas​(String... sqlSchemas)

      Sets SQL schemas to be created on node startup. Schemas are created on local node only and are not propagated to other cluster nodes. Created schemas cannot be dropped.

      By default schema names are case-insensitive, i.e. `my_schema` and `My_Schema` represents the same object. Use quotes to enforce case sensitivity (e.g. `"My_Schema"`).

      Property is ignored if `ignite-indexing` module is not in classpath.

      Parameters:
        `sqlSchemas` - SQL schemas to be created on node startup.
      Returns:
        `this` for chaining.

    - #### getLongQueryWarningTimeout

          public long getLongQueryWarningTimeout()

      Gets timeout in milliseconds after which long query warning will be printed.
      Returns:
        Timeout in milliseconds.

    - #### setLongQueryWarningTimeout

          public SqlConfiguration setLongQueryWarningTimeout​(long longQryWarnTimeout)

      Sets timeout in milliseconds after which long query warning will be printed.
      Parameters:
        `longQryWarnTimeout` - Timeout in milliseconds.
      Returns:
        `this` for chaining.

    - #### isValidationEnabled

          public boolean isValidationEnabled()

      Returns whether Ignite validates cache keys and values against the declared SQL schema before applying DML operations such as `INSERT`, `MERGE`, `UPDATE` and cache API calls that modify data. When enabled, Ignite checks that each property uses a runtime type compatible with the column definition (including for non-indexed columns). Violations raise an IgniteSQLException for SQL operations or a CacheException for cache API updates.
      Returns:
        `true` if key and value validation against the SQL schema is enabled; `false` otherwise.

    - #### setValidationEnabled

          public SqlConfiguration setValidationEnabled​(boolean validationEnabled)

      Enables or disables validation of cache keys and values against the SQL schema.
      Parameters:
        `validationEnabled` - `true` to validate key and value objects against the SQL schema and reject data that violates declared types or constraints; `false` to skip these checks. The default value is `false`.
      Returns:
        `this` for chaining.

    - #### setQueryEnginesConfiguration

          public SqlConfiguration setQueryEnginesConfiguration​(QueryEngineConfiguration... enginesConfiguration)

      Sets query engines configuration.

      There are several engines to execute SQL queries can be configured. If configured more than one engine, exact engine to execute the query can be chosen in run-time by `queryEngine` JDBC connection property or by `QUERY_ENGINE('engineName')` SQL query hint. If no query engine is explicitly chosen, default query engine will be used (see `QueryEngineConfiguration.setDefault(boolean)`).

      When this property is not set, the query engine cannot be chosen in run-time, and the engine provided by the ignite-indexing module will be used for all queries.

      Parameters:
        `enginesConfiguration` - Query engines configuration.
      Returns:
        `this` for chaining.

    - #### getQueryEnginesConfiguration

          public QueryEngineConfiguration[] getQueryEnginesConfiguration()

      Gets query engines configuration.
      Returns:
        Query engines configuration.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`