Presto Foundation Statement API
Submit, page, and cancel SQL queries.
Submit, page, and cancel SQL queries.
openapi: 3.1.0
info:
title: Presto Client REST Statement API
description: 'The Presto Client REST API is the HTTP protocol used by Presto clients to
submit SQL queries to a Presto coordinator and stream back results. Queries
are submitted with POST /v1/statement, subsequent result pages are fetched
by following the nextUri returned in each response, and queries can be
cancelled by issuing DELETE on the nextUri. Session context such as user,
catalog, schema, time zone, and language is conveyed through X-Presto-*
request headers; coordinators echo back X-Presto-Set-* / X-Presto-Clear-*
response headers that clients must propagate on subsequent requests.
Supported authentication mechanisms on the coordinator include Kerberos,
LDAP, password files, OAuth 2.0, and custom authenticators.
'
version: '0.290'
contact:
name: Presto Foundation
url: https://prestodb.io/
license:
name: Apache 2.0
url: https://github.com/prestodb/presto/blob/master/LICENSE
servers:
- url: http://{coordinator}:{port}
description: Presto coordinator
variables:
coordinator:
default: localhost
port:
default: '8080'
security: []
tags:
- name: Statement
description: Submit, page, and cancel SQL queries.
paths:
/v1/statement:
post:
tags:
- Statement
summary: Submit a SQL statement
description: 'Submits a SQL query to the Presto coordinator. The request body is the
raw SQL text. Returns a QueryResults JSON document that may include an
initial columns/data batch and a nextUri to follow for subsequent pages.
'
operationId: submitStatement
parameters:
- name: X-Presto-User
in: header
required: true
schema:
type: string
description: Session user.
- name: X-Presto-Source
in: header
schema:
type: string
description: Client software name.
- name: X-Presto-Catalog
in: header
schema:
type: string
- name: X-Presto-Schema
in: header
schema:
type: string
- name: X-Presto-Time-Zone
in: header
schema:
type: string
- name: X-Presto-Language
in: header
schema:
type: string
- name: X-Presto-Session
in: header
schema:
type: string
description: Comma-separated session properties (name=value).
- name: X-Presto-Role
in: header
schema:
type: string
- name: X-Presto-Transaction-Id
in: header
schema:
type: string
- name: X-Presto-Trace-Token
in: header
schema:
type: string
- name: binaryResults
in: query
schema:
type: boolean
default: false
description: Request binary-format result pages.
requestBody:
required: true
content:
text/plain:
schema:
type: string
example: SELECT 1
responses:
'200':
description: Initial QueryResults document.
headers:
X-Presto-Set-Catalog:
schema:
type: string
X-Presto-Set-Schema:
schema:
type: string
X-Presto-Set-Session:
schema:
type: string
X-Presto-Clear-Session:
schema:
type: string
X-Presto-Started-Transaction-Id:
schema:
type: string
X-Presto-Clear-Transaction-Id:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/QueryResults'
'503':
description: Server busy. The client should retry after a delay.
/v1/statement/{queryId}/{token}:
get:
tags:
- Statement
summary: Fetch the next batch of results
description: 'Follows the nextUri returned by a previous response to retrieve the next
batch of results for the given query. The path shape here mirrors the
coordinator''s nextUri scheme; clients should always use the literal
nextUri returned in the previous response rather than constructing it.
'
operationId: getStatementResults
parameters:
- name: queryId
in: path
required: true
schema:
type: string
- name: token
in: path
required: true
schema:
type: string
- name: X-Presto-User
in: header
schema:
type: string
responses:
'200':
description: Next QueryResults batch.
content:
application/json:
schema:
$ref: '#/components/schemas/QueryResults'
'503':
description: Server busy. Retry the same nextUri after a delay.
delete:
tags:
- Statement
summary: Cancel a running query
description: 'DELETE on a query''s nextUri cancels the running query. Clients should
delete the most recent nextUri received for the query.
'
operationId: cancelStatement
parameters:
- name: queryId
in: path
required: true
schema:
type: string
- name: token
in: path
required: true
schema:
type: string
responses:
'204':
description: Cancellation accepted.
components:
schemas:
QueryResults:
type: object
description: One page of query results returned by the coordinator.
properties:
id:
type: string
description: Server-assigned query id.
infoUri:
type: string
format: uri
nextUri:
type: string
format: uri
description: URI to fetch the next page; absent when the query is complete.
partialCancelUri:
type: string
format: uri
columns:
type: array
items:
type: object
properties:
name:
type: string
type:
type: string
data:
type: array
items:
type: array
items: {}
stats:
type: object
additionalProperties: true
error:
type: object
additionalProperties: true
securitySchemes:
basicAuth:
type: http
scheme: basic
description: Basic auth, typically used with LDAP or password-file authenticators.
oauth2:
type: oauth2
description: OAuth 2.0 authenticator (when enabled on the coordinator).
flows:
authorizationCode:
authorizationUrl: https://example.com/oauth/authorize
tokenUrl: https://example.com/oauth/token
scopes: {}