@sixb/sqlite 0.1.14 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +739 -261
- package/dist/index.js.map +14 -14
- package/dist/latest-run-query.d.ts +2 -0
- package/dist/latest-run-query.d.ts.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/objects/query-compiler.d.ts +3 -0
- package/dist/objects/query-compiler.d.ts.map +1 -1
- package/dist/objects/read-scope.d.ts +2 -0
- package/dist/objects/read-scope.d.ts.map +1 -1
- package/dist/objects/reader.d.ts +1 -0
- package/dist/objects/reader.d.ts.map +1 -1
- package/dist/objects/rows.d.ts +1 -0
- package/dist/objects/rows.d.ts.map +1 -1
- package/dist/ontology-storage/materialization-state.d.ts.map +1 -1
- package/dist/ontology-storage/shared.d.ts +11 -8
- package/dist/ontology-storage/shared.d.ts.map +1 -1
- package/dist/ontology-storage/source-cleanup.d.ts +7 -1
- package/dist/ontology-storage/source-cleanup.d.ts.map +1 -1
- package/dist/ontology-storage/source-roots.d.ts +14 -2
- package/dist/ontology-storage/source-roots.d.ts.map +1 -1
- package/dist/ontology-storage/sources.d.ts +8 -3
- package/dist/ontology-storage/sources.d.ts.map +1 -1
- package/dist/projection-run-storage.d.ts +3 -1
- package/dist/projection-run-storage.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/latest-run-query.ts +8 -2
- package/src/migrations/051-projection-run-supersession.sql +126 -0
- package/src/migrations/052-compact-source-storage.sql +181 -0
- package/src/migrations.ts +38 -0
- package/src/objects/README.md +19 -0
- package/src/objects/query-compiler.ts +44 -7
- package/src/objects/read-scope.ts +10 -8
- package/src/objects/reader.ts +43 -8
- package/src/objects/rows.ts +1 -0
- package/src/ontology-storage/materialization-state.ts +34 -44
- package/src/ontology-storage/shared.ts +20 -11
- package/src/ontology-storage/source-cleanup.ts +61 -24
- package/src/ontology-storage/source-roots.ts +166 -110
- package/src/ontology-storage/sources.ts +169 -118
- package/src/projection-run-storage.ts +59 -1
|
@@ -17,6 +17,8 @@ export declare function queryLatestRunsByOwnerId<TRow>(input: {
|
|
|
17
17
|
readonly ownerIds: readonly string[];
|
|
18
18
|
readonly projectId: string;
|
|
19
19
|
readonly ownerIdFor: (row: TRow) => string;
|
|
20
|
+
/** A status that never counts as the latest run, such as a run made stale by a newer one. */
|
|
21
|
+
readonly excludedStatus?: string;
|
|
20
22
|
} & SqliteLatestRunTarget): readonly TRow[];
|
|
21
23
|
export {};
|
|
22
24
|
//# sourceMappingURL=latest-run-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latest-run-query.d.ts","sourceRoot":"","sources":["../src/latest-run-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,KAAK,qBAAqB,GACtB;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;CAAE,GAChF;IAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAA;CAAE,GACpE;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAA;CAAE,CAAA;AAEhF,wBAAgB,wBAAwB,CAAC,IAAI,EAC3C,KAAK,EAAE;IACL,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"latest-run-query.d.ts","sourceRoot":"","sources":["../src/latest-run-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,KAAK,qBAAqB,GACtB;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;CAAE,GAChF;IAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAA;CAAE,GACpE;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAA;CAAE,CAAA;AAEhF,wBAAgB,wBAAwB,CAAC,IAAI,EAC3C,KAAK,EAAE;IACL,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAA;IAC1C,6FAA6F;IAC7F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC,GAAG,qBAAqB,GACxB,SAAS,IAAI,EAAE,CA0CjB"}
|
package/dist/migrations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAGV,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAGV,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AA8H3B,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAC5D,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,eAAO,MAAM,uBAAuB,wBA6GlC,CAAA;AAEF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAQ9E;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC1C,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAAC,QAAQ,CAAC,CAEzB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAS3D;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAOzF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CAC5C,GAAG,eAAe,CAoBlB;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E"}
|
|
@@ -11,6 +11,9 @@ export interface CompiledObjectQuery {
|
|
|
11
11
|
sql: string;
|
|
12
12
|
args: SqliteValue[];
|
|
13
13
|
limit: number;
|
|
14
|
+
/** Maximum returned rows and total before the outermost limit, respectively. */
|
|
15
|
+
rowLimit: number;
|
|
16
|
+
totalLimit: number;
|
|
14
17
|
};
|
|
15
18
|
sql: string;
|
|
16
19
|
args: SqliteValue[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/objects/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAKjB,MAAM,YAAY,CAAA;AASnB,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,CAAA;AAEhF,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/objects/query-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface SqliteSelectedObjectReadSource extends SqliteObjectQuerySource
|
|
|
15
15
|
* CROSS JOIN keeps authorized parents/grants before indexed edge/object lookups, even when
|
|
16
16
|
* statistics would otherwise make SQLite rescan all grants for every stored object.
|
|
17
17
|
* Property grants are grouped only after path-sensitive reachability has been resolved.
|
|
18
|
+
* Expose identities from grants/visible, so flattened joins can seek those relations by key
|
|
19
|
+
* before loading stored values. Exposing stored identities makes traversal rescan grants per edge.
|
|
18
20
|
*/
|
|
19
21
|
export declare function compileSqliteSelectedObjectReadSource(projectId: string, scope: CompiledSelectedObjectReadScope, maxTraversalFacts: number): SqliteSelectedObjectReadSource;
|
|
20
22
|
//# sourceMappingURL=read-scope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-scope.d.ts","sourceRoot":"","sources":["../../src/objects/read-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,8BAA8B,EAAE,MAAM,CAAA;IAC/C,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;KACtC,CAAA;CACF;AAED
|
|
1
|
+
{"version":3,"file":"read-scope.d.ts","sourceRoot":"","sources":["../../src/objects/read-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,8BAA8B,EAAE,MAAM,CAAA;IAC/C,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;KACtC,CAAA;CACF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,+BAA+B,EACtC,iBAAiB,EAAE,MAAM,GACxB,8BAA8B,CAoDhC"}
|
package/dist/objects/reader.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare class SqliteObjectReader {
|
|
|
9
9
|
constructor(db: Database, source: SqliteObjectQuerySource | SqliteSelectedObjectReadSource);
|
|
10
10
|
private assertVectorSearch;
|
|
11
11
|
queryObjects(params: QueryObjectsInput): QueryObjectsResult;
|
|
12
|
+
private vectorResultTotal;
|
|
12
13
|
countObjects(params: CountObjectsInput): CountObjectsResult;
|
|
13
14
|
existsObjects(params: ExistsObjectsInput): ExistsObjectsResult;
|
|
14
15
|
facetObjects(params: FacetObjectsInput): FacetObjectsResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/objects/reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EAEd,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAWlE,qGAAqG;AACrG,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,uBAAuB,GAAG,8BAA8B;IAGnF,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/objects/reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EAEd,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAWlE,qGAAqG;AACrG,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,uBAAuB,GAAG,8BAA8B;IAGnF,OAAO,CAAC,kBAAkB;IAY1B,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB;IA8B3D,OAAO,CAAC,iBAAiB;IAoBzB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB;IAa3D,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,mBAAmB;IAS9D,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB;IAc3D,cAAc,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;KAClB,GAAG,SAAS,GAAG,IAAI;IAYpB,uBAAuB,CACrB,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,GAClE,SAAS,OAAO,EAAE;IA8BrB,SAAS,CAAC,MAAM,EAAE;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,aAAa,CAAA;KAC1B,GAAG,SAAS,aAAa,EAAE;IAgC5B,mBAAmB,CAAC,MAAM,EAAE;QAC1B,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,SAAS;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC9D,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC;IA4BlC,cAAc,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,aAAa,CAAA;QACzB,KAAK,EAAE,SAAS;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC7E,GAAG,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;IA+CtC,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,sBAAsB;IAiFjE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACtD,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;QAC7B,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd;CA6EF;AAYD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIxD"}
|
package/dist/objects/rows.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface DatabaseRow {
|
|
|
14
14
|
last_commit_id: string;
|
|
15
15
|
}
|
|
16
16
|
export interface ObjectQueryDatabaseRow extends DatabaseRow {
|
|
17
|
+
_vector_candidate_count?: number;
|
|
17
18
|
_vector_score?: number;
|
|
18
19
|
_cursor_properties?: string;
|
|
19
20
|
/** `json_object(linkId, value, ...)` serialized text from an `expand` pushdown; absent otherwise. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/objects/rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,SAAS,EAEV,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAWvD;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,sBAAsB,GAAG,SAAS,CAOvE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,CAa7D;AAqDD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACvB"}
|
|
1
|
+
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/objects/rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,SAAS,EAEV,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAWvD;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,sBAAsB,GAAG,SAAS,CAOvE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,CAa7D;AAqDD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialization-state.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/materialization-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAGV,eAAe,EACf,iBAAiB,EAEjB,kBAAkB,EACnB,MAAM,qCAAqC,CAAA;AAe5C,OAAO,KAAK,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAO5B,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"materialization-state.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/materialization-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAGV,eAAe,EACf,iBAAiB,EAEjB,kBAAkB,EACnB,MAAM,qCAAqC,CAAA;AAe5C,OAAO,KAAK,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAO5B,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAkB3B,eAAO,MAAM,iCAAiC,kCAAkC,CAAA;AAChF,eAAO,MAAM,6BAA6B,8BAA8B,CAAA;AAiFxE,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAA;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B,CAAA;AAEL,UAAU,wBAAwB;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAA;IAC3C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjD,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAcD,qBAAa,gCAAgC;IAEzC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM;gBADT,EAAE,EAAE,QAAQ,EACpB,SAAS,EAAE,MAAM;IAG5B,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,0BAA0B;IAI/D,YAAY,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,0BAA0B,EAAE;IA8FvF,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,wBAAwB;IAIzD,UAAU,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,wBAAwB,EAAE;IAmGjF,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAI/E,WAAW,CACT,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,GAC9E,SAAS,oBAAoB,EAAE;IAwClC,kBAAkB,CAChB,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GACjF,SAAS,gCAAgC,EAAE;IAK9C,cAAc,CACZ,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GACjF,SAAS,6BAA6B,EAAE;IA0D3C,OAAO,CAAC,uBAAuB;IAwD9B,aAAa,CACZ,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,QAAQ,EAAE,MAAM,GACf,QAAQ,CAAC,eAAe,EAAE,CAAC;IAwD7B,qBAAqB,CAAC,KAAK,EAAE,wBAAwB,GAAG,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IAaxF,uBAAuB,CACrB,QAAQ,EAAE,MAAM,EAChB,0BAA0B,EAAE,MAAM,EAClC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GACjC,SAAS,4BAA4B,EAAE;IAoB1C,qBAAqB,CACnB,QAAQ,EAAE,MAAM,EAChB,0BAA0B,EAAE,MAAM,EAClC,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,UAAU,EAAE,SAAS,OAAO,CAAC,mBAAmB,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EAC9E,WAAW,UAAQ,GAClB,SAAS,0BAA0B,EAAE;IAyBxC,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,GAAG;QAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KACrC,GAAG,IAAI;IAaR,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;IAoBxE,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,uBAAuB;IAiI/B,OAAO,CAAC,eAAe;CAwBxB;AAoMD,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzD"}
|
|
@@ -23,6 +23,7 @@ export interface SqliteOntologyCommitRow {
|
|
|
23
23
|
readonly committed_at: string;
|
|
24
24
|
}
|
|
25
25
|
export interface SqliteOntologySourceRow {
|
|
26
|
+
readonly version_id: number;
|
|
26
27
|
readonly project_id: string;
|
|
27
28
|
readonly source_id: string;
|
|
28
29
|
readonly materialization_id: string;
|
|
@@ -48,19 +49,21 @@ export interface SqliteOntologySourceRow {
|
|
|
48
49
|
readonly last_commit_id: string | null;
|
|
49
50
|
readonly updated_at: string;
|
|
50
51
|
}
|
|
52
|
+
/** An assertion with its root and version, as `SOURCE_ASSERTION_COLUMNS` selects it. */
|
|
51
53
|
export interface SqliteOntologySourceAssertionRow {
|
|
52
|
-
readonly project_id: string;
|
|
53
54
|
readonly source_id: string;
|
|
54
55
|
readonly materialization_id: string;
|
|
55
|
-
readonly entity_kind: "object" | "link";
|
|
56
|
-
readonly entity_key: string;
|
|
57
|
-
readonly entity_sort_key: string;
|
|
58
|
-
readonly root_kind: "object" | "link";
|
|
59
56
|
readonly root_key: string;
|
|
60
|
-
readonly root_sort_key: string;
|
|
61
57
|
readonly staging_ordinal: number;
|
|
62
|
-
readonly
|
|
63
|
-
readonly
|
|
58
|
+
readonly entity_kind: "object" | "link";
|
|
59
|
+
readonly object_type_id: string | null;
|
|
60
|
+
readonly primary_id: string | null;
|
|
61
|
+
readonly source_type_id: string | null;
|
|
62
|
+
readonly source_primary_id: string | null;
|
|
63
|
+
readonly link_id: string | null;
|
|
64
|
+
readonly target_type_id: string | null;
|
|
65
|
+
readonly target_primary_id: string | null;
|
|
66
|
+
readonly payload: string | null;
|
|
64
67
|
}
|
|
65
68
|
export interface SqliteStoredOverrideRow {
|
|
66
69
|
readonly value: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
-
import type { CleanupTerminalSourceMaterializationsInput, CleanupTerminalSourceMaterializationsResult } from "@sixb/core/storage";
|
|
2
|
+
import type { CleanupTerminalSourceMaterializationsInput, CleanupTerminalSourceMaterializationsResult, PurgeAbandonedSourceMaterializationsInput } from "@sixb/core/storage";
|
|
3
|
+
/**
|
|
4
|
+
* Superseded versions can still hold live roots (a delta keeps unchanged roots where they were),
|
|
5
|
+
* so they are cleaned root by root once retired. An abandoned candidate was never published:
|
|
6
|
+
* everything it holds goes, one whole version at a time, each delete on its own version prefix.
|
|
7
|
+
*/
|
|
8
|
+
export declare function purgeAbandonedSourceVersions(db: Database, input: PurgeAbandonedSourceMaterializationsInput): CleanupTerminalSourceMaterializationsResult;
|
|
3
9
|
export declare function cleanupSourceVersions(db: Database, input: CleanupTerminalSourceMaterializationsInput): CleanupTerminalSourceMaterializationsResult;
|
|
4
10
|
//# sourceMappingURL=source-cleanup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-cleanup.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/source-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,0CAA0C,EAC1C,2CAA2C,
|
|
1
|
+
{"version":3,"file":"source-cleanup.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/source-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,0CAA0C,EAC1C,2CAA2C,EAC3C,yCAAyC,EAC1C,MAAM,oBAAoB,CAAA;AAE3B;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,yCAAyC,GAC/C,2CAA2C,CAmC7C;AAED,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,0CAA0C,GAChD,2CAA2C,CAwC7C"}
|
|
@@ -3,19 +3,31 @@ import type { ProjectionEntityRef } from "@sixb/core/internal/materialization";
|
|
|
3
3
|
import type { SourceActivationWrite, StageSourceRowsInput } from "@sixb/core/storage";
|
|
4
4
|
import type { SqliteOntologySourceAssertionRow } from "./shared";
|
|
5
5
|
import { type SqliteOntologySourceRow } from "./shared";
|
|
6
|
-
|
|
6
|
+
/** The columns `sourceAssertion` reads, over `versions`, `roots` and `rows`. */
|
|
7
|
+
export declare const SOURCE_ASSERTION_COLUMNS = "versions.source_id, versions.materialization_id,\n roots.root_key, roots.staging_ordinal, rows.entity_kind, rows.object_type_id, rows.primary_id,\n rows.source_type_id, rows.source_primary_id, rows.link_id, rows.target_type_id,\n rows.target_primary_id, rows.payload";
|
|
8
|
+
/**
|
|
9
|
+
* Keeps `rows` to those of live roots, joined as `roots` and `versions`; binds the project id.
|
|
10
|
+
* CROSS JOIN keeps it a filter on the rows already selected: as a plain JOIN, SQLite may start
|
|
11
|
+
* from every live root of the project instead.
|
|
12
|
+
*/
|
|
13
|
+
export declare const LIVE_SOURCE_ROWS_JOIN = "\n CROSS JOIN ontology_source_roots AS roots ON roots.id = rows.root_id\n AND roots.project_id = ? AND roots.retired_at IS NULL AND roots.deleted = 0\n CROSS JOIN ontology_sources AS versions ON versions.version_id = roots.version_id\n AND versions.status IN ('active', 'superseded')";
|
|
14
|
+
/** The candidate's rows, plus the rows of the live roots it may replace. */
|
|
15
|
+
export declare function replacementSourceRows(db: Database, input: {
|
|
7
16
|
readonly projectId: string;
|
|
8
17
|
readonly sourceId: string;
|
|
9
18
|
readonly materializationId: string;
|
|
10
19
|
readonly incremental: boolean;
|
|
11
20
|
}): {
|
|
12
21
|
readonly sql: string;
|
|
13
|
-
readonly values: readonly string[];
|
|
22
|
+
readonly values: readonly (string | number | null)[];
|
|
14
23
|
};
|
|
15
24
|
export declare function stageSourceRoots(db: Database, manifest: SqliteOntologySourceRow, input: StageSourceRowsInput): void;
|
|
25
|
+
/** Retires what the candidate replaces; its own roots go live when its version turns active. */
|
|
16
26
|
export declare function activateSourceRoots(db: Database, projectId: string, candidate: SqliteOntologySourceRow, activation: SourceActivationWrite): void;
|
|
17
27
|
export declare function assertSourceRootCoverage(db: Database, manifest: SqliteOntologySourceRow): void;
|
|
28
|
+
/** The live assertions of `refs`, whichever source asserts them. */
|
|
18
29
|
export declare function activeSourceRows(db: Database, projectId: string, refs: readonly ProjectionEntityRef[]): SqliteOntologySourceAssertionRow[];
|
|
30
|
+
/** The candidate's assertions of `refs`, and optionally the live ones they would replace. */
|
|
19
31
|
export declare function replacementAssertionRows(db: Database, input: {
|
|
20
32
|
projectId: string;
|
|
21
33
|
sourceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-roots.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/source-roots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"source-roots.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/source-roots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAU9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACrF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAiB,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAatE,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,kRAGE,CAAA;AAEvC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,wSAIM,CAAA;AAmDxC,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B,GACA;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;CAAE,CAsBhF;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CAiCN;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,uBAAuB,EAClC,UAAU,EAAE,qBAAqB,GAChC,IAAI,CA8BN;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAY9F;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,mBAAmB,EAAE,GACnC,gCAAgC,EAAE,CAgBpC;AAED,6FAA6F;AAC7F,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,SAAS,mBAAmB,EAAE,CAAA;CACrC,GACA,gCAAgC,EAAE,CAmCpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
-
import type { AbandonSourceMaterializationCandidateInput, BeginSourceMaterializationInput, CleanupTerminalSourceMaterializationsInput, CleanupTerminalSourceMaterializationsResult, GetActiveOntologySourceInput, MarkSourceMaterializationReadyInput, OntologySourceRecord, OntologySourceStorage,
|
|
2
|
+
import type { AbandonRunSourceMaterializationInput, AbandonSourceMaterializationCandidateInput, AdoptedSourceMaterialization, AdoptSourceMaterializationInput, BeginSourceMaterializationInput, CleanupTerminalSourceMaterializationsInput, CleanupTerminalSourceMaterializationsResult, GetActiveOntologySourceInput, MarkSourceMaterializationReadyInput, OntologySourceRecord, OntologySourceStorage, PurgeAbandonedSourceMaterializationsInput, StageSourceRowsInput, StageSourceRowsResult, SummarizeTerminalSourceMaterializationsInput, TerminalSourceMaterializationSummary } from "@sixb/core/storage";
|
|
3
3
|
import { type SqliteRootOperation } from "./shared";
|
|
4
4
|
export declare class SqliteOntologySourceStorage implements OntologySourceStorage {
|
|
5
5
|
private readonly db;
|
|
@@ -9,14 +9,19 @@ export declare class SqliteOntologySourceStorage implements OntologySourceStorag
|
|
|
9
9
|
stageRows(input: StageSourceRowsInput): Promise<StageSourceRowsResult>;
|
|
10
10
|
markReady(input: MarkSourceMaterializationReadyInput): Promise<OntologySourceRecord>;
|
|
11
11
|
getActive(input: GetActiveOntologySourceInput): Promise<OntologySourceRecord | null>;
|
|
12
|
+
adopt(input: AdoptSourceMaterializationInput): Promise<AdoptedSourceMaterialization | null>;
|
|
12
13
|
abandon(input: AbandonSourceMaterializationCandidateInput): Promise<OntologySourceRecord>;
|
|
13
|
-
abandon(input:
|
|
14
|
+
abandon(input: AbandonRunSourceMaterializationInput): Promise<OntologySourceRecord | null>;
|
|
14
15
|
cleanupTerminal(input: CleanupTerminalSourceMaterializationsInput): Promise<CleanupTerminalSourceMaterializationsResult>;
|
|
16
|
+
purgeAbandoned(input: PurgeAbandonedSourceMaterializationsInput): Promise<CleanupTerminalSourceMaterializationsResult>;
|
|
15
17
|
summarizeTerminal(input: SummarizeTerminalSourceMaterializationsInput): Promise<TerminalSourceMaterializationSummary>;
|
|
16
18
|
private abandonCandidate;
|
|
17
|
-
|
|
19
|
+
/** The run's one staging or ready candidate, whichever execution staged it. */
|
|
20
|
+
private findRunCandidate;
|
|
21
|
+
private lastStagedOrdinal;
|
|
18
22
|
private transitionToAbandoned;
|
|
19
23
|
private assertReadyState;
|
|
24
|
+
/** Already staged assertions sharing a root or an ordinal with `rows`. */
|
|
20
25
|
private findStageRows;
|
|
21
26
|
private insertStageRows;
|
|
22
27
|
private assertExecution;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAkB1C,OAAO,KAAK,EACV,0CAA0C,
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAkB1C,OAAO,KAAK,EACV,oCAAoC,EACpC,0CAA0C,EAE1C,4BAA4B,EAC5B,+BAA+B,EAE/B,+BAA+B,EAC/B,0CAA0C,EAC1C,2CAA2C,EAC3C,4BAA4B,EAC5B,mCAAmC,EACnC,oBAAoB,EACpB,qBAAqB,EACrB,yCAAyC,EACzC,oBAAoB,EACpB,qBAAqB,EACrB,4CAA4C,EAC5C,oCAAoC,EACrC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EASL,KAAK,mBAAmB,EAGzB,MAAM,UAAU,CAAA;AAQjB,qBAAa,2BAA4B,YAAW,qBAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADhB,EAAE,EAAE,QAAQ,EACZ,gBAAgB,EAAE,mBAAmB;IAGlD,oBAAoB,CACxB,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,oBAAoB,CAAC;IAuE1B,SAAS,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA2BtE,SAAS,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8DpF,SAAS,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAepF,KAAK,CACT,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAwCzC,OAAO,CAAC,KAAK,EAAE,0CAA0C,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACzF,OAAO,CAAC,KAAK,EAAE,oCAAoC,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAa1F,eAAe,CACnB,KAAK,EAAE,0CAA0C,GAChD,OAAO,CAAC,2CAA2C,CAAC;IASjD,cAAc,CAClB,KAAK,EAAE,yCAAyC,GAC/C,OAAO,CAAC,2CAA2C,CAAC;IAQjD,iBAAiB,CACrB,KAAK,EAAE,4CAA4C,GAClD,OAAO,CAAC,oCAAoC,CAAC;IAsBhD,OAAO,CAAC,gBAAgB;IAuBxB,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,gBAAgB;IA0FxB,0EAA0E;IAC1E,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,eAAe;IA4CvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;CASxB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AdvanceProjectionTelemetryCheckpointInput, ExecutionStorage, FailProjectionRunEnqueueInput, FinishProjectionRunInput, ListLatestProjectionRunsInput, ListLatestProjectionRunsResult, ListProjectionRunsInput, ListProjectionRunsResult, LockProjectionRunForMaterializationInput, ProjectionRunClaim, ProjectionRunRecord, ProjectionRunStorage, QueueProjectionRunInput, RecordProjectionMissingTargetInput, StartOrReclaimProjectionRunInput, TelemetryProjectionRunRecord, UpdateProjectionRunInput } from "@sixb/core/storage";
|
|
1
|
+
import type { AdvanceProjectionTelemetryCheckpointInput, ExecutionStorage, FailProjectionRunEnqueueInput, FindSupersedingProjectionRunInput, FinishProjectionRunInput, ListLatestProjectionRunsInput, ListLatestProjectionRunsResult, ListProjectionRunsInput, ListProjectionRunsResult, LockProjectionRunForMaterializationInput, ProjectionRunClaim, ProjectionRunRecord, ProjectionRunStorage, QueueProjectionRunInput, RecordProjectionAttemptFailureInput, RecordProjectionMissingTargetInput, StartOrReclaimProjectionRunInput, TelemetryProjectionRunRecord, UpdateProjectionRunInput } from "@sixb/core/storage";
|
|
2
2
|
import { type SqliteStoreConnection } from "./transactions";
|
|
3
3
|
export interface SqliteProjectionRunStorageOptions {
|
|
4
4
|
/** Execution lookup sharing the same provider transaction. */
|
|
@@ -18,6 +18,7 @@ export declare class SqliteProjectionRunStorage implements ProjectionRunStorage
|
|
|
18
18
|
failEnqueue(input: FailProjectionRunEnqueueInput): Promise<ProjectionRunRecord>;
|
|
19
19
|
lockForMaterialization(input: LockProjectionRunForMaterializationInput): Promise<ProjectionRunRecord>;
|
|
20
20
|
update(input: UpdateProjectionRunInput): Promise<ProjectionRunRecord>;
|
|
21
|
+
recordAttemptFailure(input: RecordProjectionAttemptFailureInput): Promise<ProjectionRunRecord>;
|
|
21
22
|
finish(input: FinishProjectionRunInput): Promise<ProjectionRunRecord>;
|
|
22
23
|
advanceTelemetryCheckpoint(input: AdvanceProjectionTelemetryCheckpointInput): Promise<TelemetryProjectionRunRecord>;
|
|
23
24
|
recordMissingTarget(input: RecordProjectionMissingTargetInput): Promise<TelemetryProjectionRunRecord>;
|
|
@@ -26,6 +27,7 @@ export declare class SqliteProjectionRunStorage implements ProjectionRunStorage
|
|
|
26
27
|
id: string;
|
|
27
28
|
}): Promise<ProjectionRunRecord | null>;
|
|
28
29
|
list(input: ListProjectionRunsInput): Promise<ListProjectionRunsResult>;
|
|
30
|
+
findSupersedingRun(input: FindSupersedingProjectionRunInput): Promise<ProjectionRunRecord | null>;
|
|
29
31
|
listLatestByProjectionIds(input: ListLatestProjectionRunsInput): Promise<ListLatestProjectionRunsResult>;
|
|
30
32
|
close(): void;
|
|
31
33
|
private assertDatasetVersionIsImmutable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection-run-storage.d.ts","sourceRoot":"","sources":["../src/projection-run-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projection-run-storage.d.ts","sourceRoot":"","sources":["../src/projection-run-storage.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EACV,yCAAyC,EACzC,gBAAgB,EAChB,6BAA6B,EAC7B,iCAAiC,EACjC,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,wBAAwB,EACxB,wCAAwC,EAExC,kBAAkB,EAElB,mBAAmB,EAEnB,oBAAoB,EACpB,uBAAuB,EACvB,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAI3B,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,iCAAiC;IAChD,8DAA8D;IAC9D,UAAU,EAAE,gBAAgB,CAAA;IAC5B,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,UAAU,CAAC,EAAE,qBAAqB,CAAA;CACnC;AAED,qBAAa,0BAA2B,YAAW,oBAAoB;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;gBAEjC,OAAO,EAAE,iCAAiC;IAUhD,KAAK,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0DnE,cAAc,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyDpF,WAAW,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0B/E,sBAAsB,CAC1B,KAAK,EAAE,wCAAwC,GAC9C,OAAO,CAAC,mBAAmB,CAAC;IAIzB,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAYrE,oBAAoB,CACxB,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,mBAAmB,CAAC;IAuBzB,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuCrE,0BAA0B,CAC9B,KAAK,EAAE,yCAAyC,GAC/C,OAAO,CAAC,4BAA4B,CAAC;IAsClC,mBAAmB,CACvB,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,4BAA4B,CAAC;IAmClC,OAAO,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAKvF,IAAI,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAmFvE,kBAAkB,CACtB,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IA0BhC,yBAAyB,CAC7B,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,8BAA8B,CAAC;IAa1C,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,+BAA+B;IAoBvC,OAAO,CAAC,YAAY;IA2CpB,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,UAAU;CAOnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sixb/sqlite",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "SQLite storage provider for Sixb",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sixb",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"prepack": "bun run build"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@sixb/core": "0.1.
|
|
40
|
+
"@sixb/core": "0.1.16"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@sixb/core": "0.1.
|
|
43
|
+
"@sixb/core": "0.1.16",
|
|
44
44
|
"@types/bun": "latest",
|
|
45
45
|
"typescript": "^5.7.0"
|
|
46
46
|
},
|
package/src/latest-run-query.ts
CHANGED
|
@@ -13,6 +13,8 @@ export function queryLatestRunsByOwnerId<TRow>(
|
|
|
13
13
|
readonly ownerIds: readonly string[]
|
|
14
14
|
readonly projectId: string
|
|
15
15
|
readonly ownerIdFor: (row: TRow) => string
|
|
16
|
+
/** A status that never counts as the latest run, such as a run made stale by a newer one. */
|
|
17
|
+
readonly excludedStatus?: string
|
|
16
18
|
} & SqliteLatestRunTarget
|
|
17
19
|
): readonly TRow[] {
|
|
18
20
|
const ownerIds = [...new Set(input.ownerIds)]
|
|
@@ -21,6 +23,8 @@ export function queryLatestRunsByOwnerId<TRow>(
|
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
const placeholders = ownerIds.map(() => "?").join(", ")
|
|
26
|
+
const statusFilter = input.excludedStatus === undefined ? "" : " AND status <> ?"
|
|
27
|
+
const statusArgs = input.excludedStatus === undefined ? [] : [input.excludedStatus]
|
|
24
28
|
const orderColumn =
|
|
25
29
|
input.tableName === "sync_runs" ||
|
|
26
30
|
input.tableName === "pipeline_runs" ||
|
|
@@ -39,12 +43,14 @@ export function queryLatestRunsByOwnerId<TRow>(
|
|
|
39
43
|
ORDER BY ${orderColumn} DESC, id DESC
|
|
40
44
|
) AS sixb_latest_rank
|
|
41
45
|
FROM ${input.tableName}
|
|
42
|
-
WHERE project_id = ? AND ${input.ownerColumn} IN (${placeholders})
|
|
46
|
+
WHERE project_id = ? AND ${input.ownerColumn} IN (${placeholders})${statusFilter}
|
|
43
47
|
)
|
|
44
48
|
WHERE sixb_latest_rank = 1
|
|
45
49
|
`
|
|
46
50
|
)
|
|
47
|
-
.all(input.projectId, ...ownerIds) as (TRow & {
|
|
51
|
+
.all(input.projectId, ...ownerIds, ...statusArgs) as (TRow & {
|
|
52
|
+
sixb_latest_rank: SqliteValue
|
|
53
|
+
})[]
|
|
48
54
|
|
|
49
55
|
const latestByOwnerId = new Map(rows.map((row) => [input.ownerIdFor(row), row]))
|
|
50
56
|
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
-- Projection runs gain the terminal status `superseded`, and a running run may carry the failure
|
|
2
|
+
-- of its last attempt in `error` while the queue retries it. SQLite cannot alter a CHECK
|
|
3
|
+
-- constraint, so the table is rebuilt.
|
|
4
|
+
CREATE TABLE projection_runs_v2 (
|
|
5
|
+
project_id TEXT NOT NULL,
|
|
6
|
+
id TEXT NOT NULL,
|
|
7
|
+
execution_id TEXT NOT NULL,
|
|
8
|
+
projection_id TEXT NOT NULL,
|
|
9
|
+
projection_kind TEXT NOT NULL CHECK (projection_kind IN ('object', 'link', 'telemetry')),
|
|
10
|
+
materialization_protocol TEXT NOT NULL CHECK (
|
|
11
|
+
materialization_protocol IN ('replacement', 'telemetry')
|
|
12
|
+
),
|
|
13
|
+
dataset_id TEXT NOT NULL,
|
|
14
|
+
dataset_version_id TEXT NOT NULL,
|
|
15
|
+
dataset_version_created_at TEXT NOT NULL,
|
|
16
|
+
ontology_revision TEXT NOT NULL,
|
|
17
|
+
projection_revision TEXT NOT NULL,
|
|
18
|
+
ownership_hash TEXT NOT NULL,
|
|
19
|
+
object_type_id TEXT,
|
|
20
|
+
source_object_type_id TEXT,
|
|
21
|
+
target_object_type_id TEXT,
|
|
22
|
+
status TEXT NOT NULL CHECK (
|
|
23
|
+
status IN ('queued', 'running', 'succeeded', 'failed', 'cancelled', 'superseded')
|
|
24
|
+
),
|
|
25
|
+
queued_at TEXT NOT NULL,
|
|
26
|
+
started_at TEXT,
|
|
27
|
+
finished_at TEXT,
|
|
28
|
+
attempt INTEGER NOT NULL CHECK (attempt >= 0),
|
|
29
|
+
execution_token TEXT,
|
|
30
|
+
fixed_batch_size INTEGER CHECK (fixed_batch_size > 0),
|
|
31
|
+
next_batch_ordinal INTEGER CHECK (next_batch_ordinal >= 0),
|
|
32
|
+
next_row_offset INTEGER CHECK (next_row_offset >= 0),
|
|
33
|
+
input_exhausted INTEGER CHECK (input_exhausted IN (0, 1)),
|
|
34
|
+
missing_target_object_type_id TEXT,
|
|
35
|
+
missing_target_object_id TEXT,
|
|
36
|
+
missing_target_batch_ordinal INTEGER CHECK (
|
|
37
|
+
missing_target_batch_ordinal IS NULL OR missing_target_batch_ordinal >= 0
|
|
38
|
+
),
|
|
39
|
+
missing_target_first_seen_at TEXT,
|
|
40
|
+
source_rows_read INTEGER NOT NULL DEFAULT 0 CHECK (source_rows_read >= 0),
|
|
41
|
+
source_rows_skipped INTEGER NOT NULL DEFAULT 0 CHECK (source_rows_skipped >= 0),
|
|
42
|
+
source_changes_read INTEGER CHECK (source_changes_read IS NULL OR source_changes_read >= 0),
|
|
43
|
+
error TEXT CHECK (error IS NULL OR json_valid(error)),
|
|
44
|
+
PRIMARY KEY (project_id, id),
|
|
45
|
+
UNIQUE (project_id, execution_id),
|
|
46
|
+
FOREIGN KEY (project_id, execution_id) REFERENCES executions (project_id, id) ON DELETE RESTRICT,
|
|
47
|
+
CHECK (source_rows_skipped <= source_rows_read),
|
|
48
|
+
CHECK ((status = 'running') = (execution_token IS NOT NULL)),
|
|
49
|
+
CHECK (
|
|
50
|
+
(status = 'queued' AND attempt = 0 AND started_at IS NULL AND finished_at IS NULL
|
|
51
|
+
AND error IS NULL)
|
|
52
|
+
OR (status = 'running' AND attempt >= 1 AND started_at IS NOT NULL AND finished_at IS NULL)
|
|
53
|
+
OR (
|
|
54
|
+
status IN ('succeeded', 'failed', 'cancelled', 'superseded')
|
|
55
|
+
AND finished_at IS NOT NULL
|
|
56
|
+
AND (
|
|
57
|
+
(json_extract(error, '$.code') = 'queue.enqueue_failed'
|
|
58
|
+
AND status = 'failed' AND attempt = 0 AND started_at IS NULL)
|
|
59
|
+
OR (COALESCE(json_extract(error, '$.code'), '') != 'queue.enqueue_failed'
|
|
60
|
+
AND attempt >= 1 AND started_at IS NOT NULL)
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
),
|
|
64
|
+
CHECK (status != 'succeeded' OR error IS NULL),
|
|
65
|
+
-- A run is superseded instead of materialized, so it carries no failure, and only replacement
|
|
66
|
+
-- runs can be: telemetry appends readings rather than replace a source.
|
|
67
|
+
CHECK (status != 'superseded' OR (error IS NULL AND materialization_protocol = 'replacement')),
|
|
68
|
+
CHECK ((projection_kind = 'telemetry') = (materialization_protocol = 'telemetry')),
|
|
69
|
+
CHECK (
|
|
70
|
+
(projection_kind = 'link' AND object_type_id IS NULL
|
|
71
|
+
AND source_object_type_id IS NOT NULL AND target_object_type_id IS NOT NULL)
|
|
72
|
+
OR (projection_kind IN ('object', 'telemetry') AND object_type_id IS NOT NULL
|
|
73
|
+
AND source_object_type_id IS NULL AND target_object_type_id IS NULL)
|
|
74
|
+
),
|
|
75
|
+
CHECK (
|
|
76
|
+
(materialization_protocol = 'replacement' AND fixed_batch_size IS NULL
|
|
77
|
+
AND next_batch_ordinal IS NULL AND next_row_offset IS NULL AND input_exhausted IS NULL)
|
|
78
|
+
OR (materialization_protocol = 'telemetry' AND fixed_batch_size IS NOT NULL
|
|
79
|
+
AND next_batch_ordinal IS NOT NULL AND next_row_offset IS NOT NULL
|
|
80
|
+
AND input_exhausted IS NOT NULL)
|
|
81
|
+
),
|
|
82
|
+
CHECK (
|
|
83
|
+
(missing_target_object_type_id IS NULL AND missing_target_object_id IS NULL
|
|
84
|
+
AND missing_target_batch_ordinal IS NULL AND missing_target_first_seen_at IS NULL)
|
|
85
|
+
OR (projection_kind = 'telemetry' AND missing_target_object_type_id = object_type_id
|
|
86
|
+
AND missing_target_object_id IS NOT NULL
|
|
87
|
+
AND missing_target_batch_ordinal = next_batch_ordinal
|
|
88
|
+
AND missing_target_first_seen_at IS NOT NULL)
|
|
89
|
+
),
|
|
90
|
+
CHECK (projection_kind != 'telemetry' OR status != 'succeeded' OR input_exhausted = 1)
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
INSERT INTO projection_runs_v2 (
|
|
94
|
+
project_id, id, execution_id, projection_id, projection_kind, materialization_protocol,
|
|
95
|
+
dataset_id, dataset_version_id, dataset_version_created_at, ontology_revision,
|
|
96
|
+
projection_revision, ownership_hash, object_type_id, source_object_type_id,
|
|
97
|
+
target_object_type_id, status, queued_at, started_at, finished_at, attempt, execution_token,
|
|
98
|
+
fixed_batch_size, next_batch_ordinal, next_row_offset, input_exhausted,
|
|
99
|
+
missing_target_object_type_id, missing_target_object_id, missing_target_batch_ordinal,
|
|
100
|
+
missing_target_first_seen_at, source_rows_read, source_rows_skipped, source_changes_read, error
|
|
101
|
+
)
|
|
102
|
+
SELECT
|
|
103
|
+
project_id, id, execution_id, projection_id, projection_kind, materialization_protocol,
|
|
104
|
+
dataset_id, dataset_version_id, dataset_version_created_at, ontology_revision,
|
|
105
|
+
projection_revision, ownership_hash, object_type_id, source_object_type_id,
|
|
106
|
+
target_object_type_id, status, queued_at, started_at, finished_at, attempt, execution_token,
|
|
107
|
+
fixed_batch_size, next_batch_ordinal, next_row_offset, input_exhausted,
|
|
108
|
+
missing_target_object_type_id, missing_target_object_id, missing_target_batch_ordinal,
|
|
109
|
+
missing_target_first_seen_at, source_rows_read, source_rows_skipped, source_changes_read, error
|
|
110
|
+
FROM projection_runs;
|
|
111
|
+
|
|
112
|
+
DROP TABLE projection_runs;
|
|
113
|
+
ALTER TABLE projection_runs_v2 RENAME TO projection_runs;
|
|
114
|
+
|
|
115
|
+
CREATE INDEX idx_projection_runs_project_started
|
|
116
|
+
ON projection_runs(project_id, COALESCE(started_at, queued_at) DESC);
|
|
117
|
+
CREATE INDEX idx_projection_runs_project_projection_started
|
|
118
|
+
ON projection_runs(project_id, projection_id, COALESCE(started_at, queued_at) DESC);
|
|
119
|
+
CREATE INDEX idx_projection_runs_project_dataset_started
|
|
120
|
+
ON projection_runs(project_id, dataset_id, COALESCE(started_at, queued_at) DESC);
|
|
121
|
+
CREATE INDEX idx_projection_runs_project_version_started
|
|
122
|
+
ON projection_runs(project_id, dataset_version_id, COALESCE(started_at, queued_at) DESC);
|
|
123
|
+
CREATE INDEX idx_projection_runs_project_status_started
|
|
124
|
+
ON projection_runs(project_id, status, COALESCE(started_at, queued_at) DESC);
|
|
125
|
+
CREATE INDEX idx_projection_runs_project_object_type_started
|
|
126
|
+
ON projection_runs(project_id, object_type_id, COALESCE(started_at, queued_at) DESC);
|