ServicesScanDALHTTP APIScans

Plan changes between versions

POST
/changes/plan

Plan how one version of a Table changed since an earlier one, without reading column values: for each file of the later version, whether the earlier version has it, with the row IDs patched and deleted since, or it was added since, with the row IDs appended since and those a rewrite carried over. Planning reads version metadata, the row IDs that patches and deletes target, and the stored row IDs of files whose row IDs are not ranges. Read the rows a plan names with a scan's rowIds.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Request Body

application/json
  1. body

Two versions of one Table: to, and from, which is to or one of its ancestors at most 4,096 versions back. columns names the top-level columns of to whose changes count, or all of them when absent.

columns?array<string>|null
from*string
Formatuuid
storage?|null
table*string
Formatuuid
to*string
Formatuuid

Response Body

Success

application/json
  1. response

How version to of a Table changed since version from. fragments has one entry for each file of to, in stored order. removedFragmentIds names the files of from that to no longer has; each of their rows was deleted or carried into an added file. retypedColumns names the requested columns whose type differs from their type in from, including columns that from lacks. Each set of row IDs is sorted, disjoint ranges.

fragments*array<>
removedFragmentIds*array<>
retypedColumns*array<string>
curl -X POST 'https://scandal.spiraldb.dev/changes/plan' \  -H 'Content-Type: application/json' \  -d '{  "from": "dee192b0-275e-44a2-9c77-32b75da2f26f",  "table": "07ef5ba8-1af0-4779-8f89-822f61a5c62a",  "to": "4a3e8739-e3a9-4b51-9b6f-406b6818a828"}'
{  "fragments": [    {      "change": {        "added": {          "appended": [            {              "end": "string",              "start": "string"            }          ],          "carried": [            {              "end": "string",              "start": "string"            }          ],          "patched": [            {              "end": "string",              "start": "string"            }          ]        },        "type": "added"      },      "fragmentId": "5d87088b-78ff-43fe-aeb7-86bff9e3b8f1",      "rowCount": "string"    }  ],  "removedFragmentIds": [    "a0f9aae5-64e7-43dc-b7ab-cd38c3743b46"  ],  "retypedColumns": [    "string"  ]}