Skip to content
Start here

Validate SQL

client.Pipelines.ValidateSql(ctx, params) (*PipelineValidateSqlResponse, error)
POST/accounts/{account_id}/pipelines/v1/validate_sql

Validate Arroyo SQL.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Pipelines Write
ParametersExpand Collapse
params PipelineValidateSqlParams
AccountID param.Field[string]

Path param: Specifies the public ID of the account.

Sql param.Field[string]

Body param: Specifies SQL to validate.

ReturnsExpand Collapse
type PipelineValidateSqlResponse struct{…}
Tables map[string, PipelineValidateSqlResponseTable]

Indicates tables involved in the processing.

ID string
Name string
Type string
Version float64
Graph PipelineValidateSqlResponseGraphoptional
Edges []PipelineValidateSqlResponseGraphEdge
DestID int64
formatint32
minimum0
EdgeType string
KeyType string
SrcID int64
formatint32
minimum0
ValueType string
Nodes []PipelineValidateSqlResponseGraphNode
Description string
NodeID int64
formatint32
minimum0
Operator string
Parallelism int64
formatint32
minimum0

Validate SQL

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/pipelines"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.Pipelines.ValidateSql(context.TODO(), pipelines.PipelineValidateSqlParams{
    AccountID: cloudflare.F("0123105f4ecef8ad9ca31a8372d0c353"),
    Sql: cloudflare.F("insert into sink select * from source;"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Tables)
}
{
  "result": {
    "tables": {
      "foo": {
        "id": "id",
        "name": "name",
        "type": "type",
        "version": 0
      }
    },
    "graph": {
      "edges": [
        {
          "dest_id": 0,
          "edge_type": "edge_type",
          "key_type": "key_type",
          "src_id": 0,
          "value_type": "value_type"
        }
      ],
      "nodes": [
        {
          "description": "description",
          "node_id": 0,
          "operator": "operator",
          "parallelism": 0
        }
      ]
    }
  },
  "success": true
}
Returns Examples
{
  "result": {
    "tables": {
      "foo": {
        "id": "id",
        "name": "name",
        "type": "type",
        "version": 0
      }
    },
    "graph": {
      "edges": [
        {
          "dest_id": 0,
          "edge_type": "edge_type",
          "key_type": "key_type",
          "src_id": 0,
          "value_type": "value_type"
        }
      ],
      "nodes": [
        {
          "description": "description",
          "node_id": 0,
          "operator": "operator",
          "parallelism": 0
        }
      ]
    }
  },
  "success": true
}