# Resume Query

## Syntax <a href="#synopsis" id="synopsis"></a>

{% code overflow="wrap" %}

```sql
INSERT INTO relation_name
select_statement ...
QUERY WITH('resume.from.query.id' = query_id);

INSERT INTO relation_name
select_statement ...
QUERY WITH('resume.from.query.name' = query_name, 'resume.from.query.version' = query_version);
```

{% endcode %}

## Description <a href="#description" id="description"></a>

When launching a query, the `resume.from.query.id`, `resume.from.query.name`, and `resume.from.query.version` properties allow a query to resume processing from where a previously terminated query stopped.

In order to resume from a previous query, the following constraints must be met:

* Applications are not currently supported.
* Source Relations must be using a Kafka Store.
* Queries with aggregation, joins, or pattern recognition are not supported.
* Both the terminated and new query should only have one source relation.
* The topic and store of the source relation must be the same.

### Arguments <a href="#parameters" id="parameters"></a>

#### resume.from.query.id

This is the unique identifier of the Query to resume from. See [LIST QUERIES](https://github.com/deltastreaminc/ds-docs-gitbook/blob/main-dcap/reference/sql-syntax/query/list-queries.md) to find out how to list all Queries that the user has access to. The first column (`ID`) in the response corresponds with the `query_id`.

#### resume.from.query.name

This is the name of the Query to resume from. See [LIST QUERIES](https://github.com/deltastreaminc/ds-docs-gitbook/blob/main-dcap/reference/sql-syntax/query/list-queries.md) to find out how to list all Queries that the user has access to. The column (`Name`) in the response corresponds with the `query_name`. The `resume.from.query.version` property disambiguates between multiple queries with the same name.

#### resume.from.query.version

This is the version of the Query to resume from. See [LIST QUERIES](https://github.com/deltastreaminc/ds-docs-gitbook/blob/main-dcap/reference/sql-syntax/query/list-queries.md) to find out how to list all Queries that the user has access to. The column (`Version`) in the response corresponds with the `resume.from.query.version`.

## Examples

#### Launch a query resuming from a previous query

The following is an example of how to launch a Query which is resumed from a previous query identified by a Query ID.

```sh
demodb.public/demostore# LIST QUERIES;
+--------------------------------------+-----------+----------+-----------------+---------------+-------------------------------------------------------------------------------------------+----------+-------------------------------+-------------------------------+
|                  ID                  |    Name   |  Version |  Intended State |  Actual State |                                                           Query                           |   Owner  |           Created At          |           Updated At          |
+--------------------------------------+-----------+----------+-----------------+---------------+-------------------------------------------------------------------------------------------+----------+-------------------------------+-------------------------------+
| 89f21634-39a0-44e4-979d-9f35017a8ca0 | DemoQuery |        1 | running         | new           | CREATE STREAM demostream AS SELECT * FROM pageviews QUERY WITH('query.name' = "DemoQuery"); | sysadmin | 2024-07-30 20:00:01 +0000 UTC | 2024-07-30 20:00:05 +0000 UTC |
+--------------------------------------+-----------+----------+-----------------+---------------+-------------------------------------------------------------------------------------------+----------+-------------------------------+-------------------------------+

demodb.public/demostore# TERMINATE QUERY 89f21634-39a0-44e4-979d-9f35017a8ca0;
+-------+--------------------------------------+----------+-----------------------------------------------------------------------+
|  Type |                 Name                 |  Command |                                Summary                                |
+-------+--------------------------------------+----------+-----------------------------------------------------------------------+
| query | 89f21634-39a0-44e4-979d-9f35017a8ca0 | DROP     | query 89f21634-39a0-44e4-979d-9f35017a8ca0 was marked for termination |
+-------+--------------------------------------+----------+-----------------------------------------------------------------------+

demodb.public/demostore# DESCRIBE QUERY STATE 89f21634-39a0-44e4-979d-9f35017a8ca0;
+-------------------------+-------------+------------------------------+-----------+
|      Relation Name      |  Store Type |             Info             |   State   |
+-------------------------+-------------+------------------------------+-----------+
| demodb.public.pageviews | KAFKA       | partition:0,offset:106615757 | completed |
+-------------------------+-------------+------------------------------+-----------+

demodb.public/demostore# INSERT INTO demostream SELECT * FROM pageviews QUERY WITH('query.name' = "DemoQuery", 'resume.from.query.id' = "89f21634-39a0-44e4-979d-9f35017a8ca0" );
+-------+--------------------------------------+----------+---------------------------------------------------------------------+
|  Type |                 Name                 |  Command |                               Summary                               |
+-------+--------------------------------------+----------+---------------------------------------------------------------------+
| query | fe544108-bb58-44b0-8108-8fd9842d1b4d | CREATE   | query fe544108-bb58-44b0-8108-8fd9842d1b4d was successfully created |
+-------+--------------------------------------+----------+---------------------------------------------------------------------+
```

The following is an example of how to launch a Query which is resumed from a previous query identified by a Query Name and Version.

```sh
demodb.public/demostore# INSERT INTO demostream SELECT * FROM pageviews QUERY WITH('query.name' = "DemoQuery", 'resume.from.query.name' = "DemoQuery" , 'resume.from.query.version' = 1);
+-------+--------------------------------------+----------+---------------------------------------------------------------------+
|  Type |                 Name                 |  Command |                               Summary                               |
+-------+--------------------------------------+----------+---------------------------------------------------------------------+
| query | 74798e4e-6b72-4cab-a2a3-af8b4748e9bd | CREATE   | query 74798e4e-6b72-4cab-a2a3-af8b4748e9bd was successfully created |
+-------+--------------------------------------+----------+---------------------------------------------------------------------+
```
