Zum Inhalt
HALOWERK

Technische Prüfungen & Formate

relational / relational query rewrite equivalence

An agent that changes a declared export query needs bag-result differences between two bounded relational programs measured on the supplied relations.

POST https://detect.halowerk.com/v1/relational/relational-query-rewrite-equivalence

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
artifactobjectJa
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "properties": {
    "artifact": {
      "type": "object",
      "properties": {
        "tables": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "width": {
                "type": "integer",
                "minimum": 1,
                "maximum": 12
              },
              "rows": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -1000000000,
                        "maximum": 1000000000
                      },
                      {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 128
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "minItems": 1,
                  "maxItems": 12
                },
                "minItems": 0,
                "maxItems": 128
              }
            },
            "required": [
              "width",
              "rows"
            ],
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 4
        },
        "before": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "scan"
                  },
                  "table": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 3
                  }
                },
                "required": [
                  "op",
                  "table"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "project"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "columns": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 0,
                    "maxItems": 12
                  }
                },
                "required": [
                  "op",
                  "input",
                  "columns"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "filter"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "column": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "compare": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 8,
                    "enum": [
                      "eq",
                      "ne",
                      "lt",
                      "gt",
                      "is_null",
                      "not_null"
                    ]
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -1000000000,
                        "maximum": 1000000000
                      },
                      {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 128
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "op",
                  "input",
                  "column",
                  "compare",
                  "value"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "join"
                  },
                  "left": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "right": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "left_keys": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 1,
                    "maxItems": 12
                  },
                  "right_keys": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 1,
                    "maxItems": 12
                  }
                },
                "required": [
                  "op",
                  "left",
                  "right",
                  "left_keys",
                  "right_keys"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "distinct"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  }
                },
                "required": [
                  "op",
                  "input"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "union_all"
                  },
                  "left": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "right": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  }
                },
                "required": [
                  "op",
                  "left",
                  "right"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "group_sum"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "group": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 0,
                    "maxItems": 12
                  },
                  "measure": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  }
                },
                "required": [
                  "op",
                  "input",
                  "group",
                  "measure"
                ],
                "additionalProperties": false
              }
            ]
          },
          "minItems": 1,
          "maxItems": 12
        },
        "after": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "scan"
                  },
                  "table": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 3
                  }
                },
                "required": [
                  "op",
                  "table"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "project"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "columns": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 0,
                    "maxItems": 12
                  }
                },
                "required": [
                  "op",
                  "input",
                  "columns"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "filter"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "column": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "compare": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 8,
                    "enum": [
                      "eq",
                      "ne",
                      "lt",
                      "gt",
                      "is_null",
                      "not_null"
                    ]
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -1000000000,
                        "maximum": 1000000000
                      },
                      {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 128
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "op",
                  "input",
                  "column",
                  "compare",
                  "value"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "join"
                  },
                  "left": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "right": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "left_keys": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 1,
                    "maxItems": 12
                  },
                  "right_keys": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 1,
                    "maxItems": 12
                  }
                },
                "required": [
                  "op",
                  "left",
                  "right",
                  "left_keys",
                  "right_keys"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "distinct"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  }
                },
                "required": [
                  "op",
                  "input"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "union_all"
                  },
                  "left": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "right": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  }
                },
                "required": [
                  "op",
                  "left",
                  "right"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "op": {
                    "const": "group_sum"
                  },
                  "input": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  },
                  "group": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    },
                    "minItems": 0,
                    "maxItems": 12
                  },
                  "measure": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 11
                  }
                },
                "required": [
                  "op",
                  "input",
                  "group",
                  "measure"
                ],
                "additionalProperties": false
              }
            ]
          },
          "minItems": 1,
          "maxItems": 12
        }
      },
      "required": [
        "tables",
        "before",
        "after"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "artifact"
  ],
  "additionalProperties": false
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "artifact": {
    "tables": [
      {
        "width": 1,
        "rows": [
          [
            1
          ]
        ]
      }
    ],
    "before": [
      {
        "op": "scan",
        "table": 0
      }
    ],
    "after": [
      {
        "op": "scan",
        "table": 0
      }
    ]
  }
}

Ergebnis & Dokumentation

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →