# 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 |
+-------+--------------------------------------+----------+---------------------------------------------------------------------+
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.deltastream.io/reference/sql-syntax/query/resume-query.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
