Plan changes between versions
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.
bearerAuthAuthorizationBearer <token>application/json- 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>|nullfrom*stringuuidstorage?|nulltable*stringuuidto*stringuuidSuccess
application/json- 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" ]}