$defs:
  column:
    additionalProperties: false
    oneOf:
      - required:
          - field
      - required:
          - value
      - required:
          - values
    properties:
      as:
        type: string
      field:
        type: string
      value:
        type:
          - string
          - number
          - boolean
      values:
        items:
          type:
            - string
            - number
            - boolean
        type: array
    type: object
  comparison:
    additionalProperties: false
    properties:
      left:
        $ref: '#/$defs/expression'
      op:
        enum:
          - <
          - <=
          - ==
          - '>'
          - '>='
          - In
      right:
        $ref: '#/$defs/expression'
    required:
      - op
      - left
      - right
    type: object
  condition:
    oneOf:
      - $ref: '#/$defs/comparison'
      - $ref: '#/$defs/group'
  expression:
    additionalProperties: false
    oneOf:
      - required:
          - field
      - required:
          - value
      - required:
          - values
    properties:
      field:
        type: string
      value:
        type:
          - string
          - number
          - boolean
      values:
        items:
          type:
            - string
            - number
            - boolean
        type: array
    type: object
  from:
    additionalProperties: false
    properties:
      alias:
        type: string
      name:
        minLength: 1
        type: string
    required:
      - name
    type: object
  group:
    additionalProperties: false
    oneOf:
      - required:
          - and
      - required:
          - or
    properties:
      and:
        items:
          $ref: '#/$defs/condition'
        type: array
      or:
        items:
          $ref: '#/$defs/condition'
        type: array
    type: object
  order:
    additionalProperties: false
    oneOf:
      - required:
          - field
      - required:
          - value
      - required:
          - values
    properties:
      desc:
        type: boolean
      field:
        type: string
      value:
        type:
          - string
          - number
          - boolean
      values:
        items:
          type:
            - string
            - number
            - boolean
        type: array
    type: object
$id: https://dal-go.github.io/dtql/schema.json
$schema: https://json-schema.org/draft/2020-12/schema
additionalProperties: false
description: YAML serialization of dalgo's dal.StructuredQuery (core relational read-only subset).
properties:
  columns:
    items:
      $ref: '#/$defs/column'
    type: array
  from:
    $ref: '#/$defs/from'
  limit:
    minimum: 0
    type: integer
  offset:
    minimum: 0
    type: integer
  orderBy:
    items:
      $ref: '#/$defs/order'
    type: array
  where:
    $ref: '#/$defs/condition'
required:
  - from
title: DTQL
type: object
