/  Yamcs HTTP API  /  Table  /  Execute Streaming Sql

Execute Streaming SqlΒΆ

Execute streaming SQL

Warning

This method uses server-streaming. Yamcs sends an unspecified amount of data using chunked transfer encoding.

URI Template

POST /api/archive/{instance}:executeStreamingSql
{instance}

Yamcs instance name.

Request Body

interface ExecuteSqlRequest {

  // StreamSQL statement
  statement: string;
}

Response Type

interface ResultSet {
  columns: ColumnInfo[];
  rows: ListValue[];
}

Related Types

interface ColumnInfo {

  // Colum name
  name: string;

  // Column type
  type: string;
  enumValue: EnumValue[];

  // Attribute indicating automatic auto increment upon
  // record insertion. Only set for table column info.
  autoIncrement: boolean;
}

interface EnumValue {
  value: number;
  label: string;
}

interface ListValue {
  values: Value[];
}

// Union type for storing a value
interface Value {
  type: Type;
  floatValue: number;
  doubleValue: number;
  sint32Value: number;
  uint32Value: number;
  binaryValue: string;  // Base64
  stringValue: string;
  timestampValue: string;  // String decimal
  uint64Value: string;  // String decimal
  sint64Value: string;  // String decimal
  booleanValue: boolean;
  aggregateValue: AggregateValue;
  arrayValue: Value[];
}

// An aggregate value is an ordered list of (member name, member value).
// Two arrays are used in order to be able to send just the values (since
// the names will not change)
interface AggregateValue {
  name: string[];
  value: Value[];
}

enum Type {
  FLOAT = "FLOAT",
  DOUBLE = "DOUBLE",
  UINT32 = "UINT32",
  SINT32 = "SINT32",
  BINARY = "BINARY",
  STRING = "STRING",
  TIMESTAMP = "TIMESTAMP",
  UINT64 = "UINT64",
  SINT64 = "SINT64",
  BOOLEAN = "BOOLEAN",
  AGGREGATE = "AGGREGATE",
  ARRAY = "ARRAY",

  // Enumerated values have both an integer (sint64Value) and a string representation
  ENUMERATED = "ENUMERATED",
  NONE = "NONE",
}