Query & SQL

Every query runs through the governed path — ACL, cell masking, audit — and carries an optional PURPOSE. SQL is the primary door; GraphQL/SPARQL/Cypher are auto-routed. Bi-temporal AS OF time-travel and WITH PROVENANCE are first-class on every read.

Note
Async mirrors: every method has an a-prefixed async twin (queryaquery) with the identical signature and semantics on Python.

15 methods across this domain. Signatures, parameters (incl. keyword-only tunable defaults), and the three SDK spellings are ported from the live SDK source; flagship methods carry a hand-written When to use + example.

FlightClient

query_flight(sql, flight_endpoint=None, purpose=None, bearer_token=None)

query_flight(sql, flight_endpoint=None, purpose=None, bearer_token=None)`

  • Pythonclient.flightclient.query_flight(sql, flight_endpoint=None, purpose=None, bearer_token=None)

Parameters: sql, flight_endpoint=None, purpose=None, bearer_token=None

RelataClient

query(sql, purpose=None)

When to use. You have raw SQL or a Cypher/GraphQL/SPARQL string and want the governed result as iterable rows.

  • Pythonclient.relataclient.query(sql, purpose=None)
  • GoQuery(sql)

Parameters: sql, purpose=None

Example

for row in relata.query("SELECT * FROM Person WHERE nationality = 'IN' LIMIT 10", purpose="analytics"):
    print(row["name"])
const rows = await relata.query("SELECT * FROM Person LIMIT 10", { purpose: "analytics" });
res, _ := relata.Query(ctx, "SELECT * FROM Person LIMIT 10")
for _, row := range res.Rows {
    fmt.Println(row["name"])
}

query_arrow(sql, purpose=None)

When to use. You want a zero-copy pyarrow.Table for analytics / pandas / Flight interchange.

  • Pythonclient.relataclient.query_arrow(sql, purpose=None)

Parameters: sql, purpose=None

Example

import pyarrow as pa
table: pa.Table = relata.query_arrow("SELECT * FROM Person")
df = table.to_pandas()

query_flight(sql, flight_endpoint=None, purpose=None, bearer_token=None)

When to use. Bulk-pull or stream large results over gRPC (Arrow Flight) — the highest-throughput door.

  • Pythonclient.relataclient.query_flight(sql, flight_endpoint=None, purpose=None, bearer_token=None)
  • GoQueryFlight(sql, flightEndpoint, purpose, bearer)

Parameters: sql, flight_endpoint=None, purpose=None, bearer_token=None

Example

table = relata.query_flight("SELECT * FROM TradeHistory")

query_params(sql, params, purpose=None)

When to use. You have untrusted values — bind them. ? placeholders auto-rewrite to $N server-side.

  • Pythonclient.relataclient.query_params(sql, params, purpose=None)

Parameters: sql, params, purpose=None

Example

rows = relata.query_params("SELECT * FROM Person WHERE nationality = ? AND age > ?", ['IN', 25])
res, _ := relata.QueryWithParams(ctx, "SELECT * FROM Person WHERE nationality = $1 AND age > $2", []any{"IN", 25})

create_schema_branch(name, from_branch)

create_schema_branch(name, from_branch)`

  • Pythonclient.relataclient.create_schema_branch(name, from_branch)
  • TypeScriptcreateSchemaBranch(name, fromBranch)
  • GoCreateSchemaBranch(name, fromBranch)

Parameters: name, from_branch

delete_schema_branch(name)

delete_schema_branch(name)`

  • Pythonclient.relataclient.delete_schema_branch(name)
  • TypeScriptdeleteSchemaBranch(name)
  • GoDeleteSchemaBranch(name)

Parameters: name

export_data(object_type, format="json")

export_data(object_type, format="json")`

  • Pythonclient.relataclient.export_data(object_type, format="json")
  • TypeScriptexportData(objectType, format)
  • GoExportData(objectType, format)

Parameters: object_type, format="json"

graphql(query, variables=None, operation_name=None)

graphql(query, variables=None, operation_name=None)`

  • Pythonclient.relataclient.graphql(query, variables=None, operation_name=None)
  • TypeScriptgraphql(query, variables, operationName)
  • GoGraphQL(gqlQuery, variables, operationName)

Parameters: query, variables=None, operation_name=None

namespace(name)

namespace(name)`

  • Pythonclient.relataclient.namespace(name)
  • TypeScriptnamespace(name)
  • GoNamespace(name)

Parameters: name

select(*columns_or_table: str)

select(*columns_or_table: str)`

  • Pythonclient.relataclient.select(*columns_or_table: str)
  • TypeScriptselect(type)

Parameters: *columns_or_table: str

session_commit(session_id)

session_commit(session_id)`

  • Pythonclient.relataclient.session_commit(session_id)
  • TypeScriptsessionCommit(sessionId)
  • GoSessionCommit(sessionID)

Parameters: session_id

session_diff(session_id)

session_diff(session_id)`

  • Pythonclient.relataclient.session_diff(session_id)
  • TypeScriptsessionDiff(sessionId)
  • GoSessionDiff(sessionID)

Parameters: session_id

session_discard(session_id)

session_discard(session_id)`

  • Pythonclient.relataclient.session_discard(session_id)
  • TypeScriptsessionDiscard(sessionId)
  • GoSessionDiscard(sessionID)

Parameters: session_id

sparql(query)

sparql(query)`

  • Pythonclient.relataclient.sparql(query)
  • TypeScriptsparql(query)
  • GoSparql(query)

Parameters: query