> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summation.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update calculation table query

> Replace the SELECT query that defines a calculation table; the table's columns follow the new query. Only calculation tables accept this (422 not_a_calculation_table otherwise), and a query the table refuses returns 422 with the reason. Responds 200 with the applied change when the update finishes within the request budget, or 202 with a pending change to poll when it is still running. When another change blocks the table the response is 409 naming that change and whether to wait for it or roll it back. A 504 means the budget ran out; its detail says whether the update was sent (list the table's changes before retrying) or never started (retry). Requires confirm=true: the replaced query is not kept, and an applied update cannot be rolled back through this API.



## OpenAPI

````yaml https://api.summation.com/openapi.json patch /v1/grid/tables/{table_id}
openapi: 3.1.0
info:
  title: summation-api public API
  version: 0.1.0
servers: []
security: []
tags:
  - name: Auth
    description: Machine authentication for API clients.
  - name: Tenant
    description: Organization and tenant context resolved by summation-api.
  - name: Projects
    description: Project resources.
  - name: Conversations
    description: Conversation and message resources.
  - name: Reports
    description: Report resources and report operations.
  - name: Runs
    description: Project run history and execution status.
  - name: Playbooks
    description: Playbook resources.
  - name: Files
    description: Project file resources.
  - name: Catalog Entries
    description: Project-scoped data asset attachments.
  - name: Data Connectors
    description: Reusable external data source connections.
  - name: App Connectors
    description: External app connectors whose tools the agent can use during chat.
  - name: Tables
    description: Canonical table metadata and catalog.
  - name: Views
    description: Canonical Summation view metadata and catalog.
  - name: Query Executions
    description: Read-only SQL query execution.
  - name: Grid
    description: Materialized grid status, sync, and lineage.
  - name: Schedules
    description: Schedule and schedule run inspection.
  - name: Workflows
    description: >-
      Workflows: what they run, when they run, and where their output is
      delivered.
  - name: Verification Tests
    description: >-
      Administrative custom verification-test definitions, overlays, and
      effective-set previews.
paths:
  /v1/grid/tables/{table_id}:
    patch:
      tags:
        - Grid
      summary: Update calculation table query
      description: >-
        Replace the SELECT query that defines a calculation table; the table's
        columns follow the new query. Only calculation tables accept this (422
        not_a_calculation_table otherwise), and a query the table refuses
        returns 422 with the reason. Responds 200 with the applied change when
        the update finishes within the request budget, or 202 with a pending
        change to poll when it is still running. When another change blocks the
        table the response is 409 naming that change and whether to wait for it
        or roll it back. A 504 means the budget ran out; its detail says whether
        the update was sent (list the table's changes before retrying) or never
        started (retry). Requires confirm=true: the replaced query is not kept,
        and an applied update cannot be rolled back through this API.
      operationId: update_grid_table
      parameters:
        - name: table_id
          in: path
          required: true
          schema:
            type: string
            title: Table Id
        - name: confirm
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              Must be true. Replacing the defining query discards the current
              one and rebuilds the table's columns from the new query; an
              applied update cannot be undone through this API.
            default: false
            title: Confirm
          description: >-
            Must be true. Replacing the defining query discards the current one
            and rebuilds the table's columns from the new query; an applied
            update cannot be undone through this API.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridTableUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '202':
          description: >-
            Accepted: the change is still being applied. The body carries the
            table's change in progress, matched to this request by kind and
            table version (by id for a rollback); poll it with the table's
            changes routes rather than resubmitting.
        '400':
          description: Invalid request or unsupported option.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '401':
          description: Missing, invalid, or expired credentials.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '403':
          description: Authenticated but missing the required scope.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '404':
          description: Resource not found or not accessible.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
      security:
        - SummationMachineAuth:
            - agent:write
components:
  schemas:
    GridTableUpdateRequest:
      properties:
        query:
          type: string
          minLength: 1
          title: Query
          description: >-
            New SELECT query that defines the calculation table. Replaces the
            current defining query; the table's columns follow the new query.
            Only calculation tables accept this.
      additionalProperties: false
      type: object
      required:
        - query
      title: GridTableUpdateRequest
    ProblemError:
      description: >-
        Public error envelope (RFC 7807 ``application/problem+json``).


        Mirrors the body produced by :func:`api_error`. Declaring it in the
        contract

        lets generated clients type error handling instead of guessing.
      properties:
        type:
          description: URI reference identifying the problem type.
          title: Type
          type: string
        title:
          description: Short, human-readable summary of the problem type.
          title: Title
          type: string
        status:
          description: HTTP status code.
          title: Status
          type: integer
        detail:
          description: Human-readable explanation specific to this occurrence.
          title: Detail
          type: string
        code:
          description: Stable, machine-readable error code.
          title: Code
          type: string
        request_id:
          description: Correlation id, echoed in the x-request-id header.
          title: Request Id
          type: string
      required:
        - type
        - title
        - status
        - detail
        - code
        - request_id
      title: ProblemError
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    SummationMachineAuth:
      type: oauth2
      flows:
        clientCredentials:
          scopes:
            agent:read: agent:read
            agent:write: agent:write
          tokenUrl: /v1/auth/m2m/token

````