@sixb/ducklake 0.0.1
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/LICENSE +21 -0
- package/README.md +490 -0
- package/dist/ducklake-storage.d.ts +42 -0
- package/dist/ducklake-storage.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3112 -0
- package/dist/index.js.map +34 -0
- package/dist/internal/catalog-key.d.ts +11 -0
- package/dist/internal/catalog-key.d.ts.map +1 -0
- package/dist/internal/dataset-row-commit.d.ts +26 -0
- package/dist/internal/dataset-row-commit.d.ts.map +1 -0
- package/dist/internal/duckdb-column-types.d.ts +45 -0
- package/dist/internal/duckdb-column-types.d.ts.map +1 -0
- package/dist/internal/duckdb-decimal.d.ts +6 -0
- package/dist/internal/duckdb-decimal.d.ts.map +1 -0
- package/dist/internal/duckdb-row.d.ts +8 -0
- package/dist/internal/duckdb-row.d.ts.map +1 -0
- package/dist/internal/duckdb-runtime.d.ts +63 -0
- package/dist/internal/duckdb-runtime.d.ts.map +1 -0
- package/dist/internal/duckdb-value-converter.d.ts +7 -0
- package/dist/internal/duckdb-value-converter.d.ts.map +1 -0
- package/dist/internal/ducklake-catalog-schema.d.ts +12 -0
- package/dist/internal/ducklake-catalog-schema.d.ts.map +1 -0
- package/dist/internal/ducklake-connection-manager.d.ts +67 -0
- package/dist/internal/ducklake-connection-manager.d.ts.map +1 -0
- package/dist/internal/ducklake-current-dataset-definitions.d.ts +10 -0
- package/dist/internal/ducklake-current-dataset-definitions.d.ts.map +1 -0
- package/dist/internal/ducklake-dataset-catalog.d.ts +33 -0
- package/dist/internal/ducklake-dataset-catalog.d.ts.map +1 -0
- package/dist/internal/ducklake-dataset-table-ref.d.ts +9 -0
- package/dist/internal/ducklake-dataset-table-ref.d.ts.map +1 -0
- package/dist/internal/ducklake-maintenance.d.ts +9 -0
- package/dist/internal/ducklake-maintenance.d.ts.map +1 -0
- package/dist/internal/ducklake-row-reader.d.ts +24 -0
- package/dist/internal/ducklake-row-reader.d.ts.map +1 -0
- package/dist/internal/ducklake-snapshot-reader.d.ts +73 -0
- package/dist/internal/ducklake-snapshot-reader.d.ts.map +1 -0
- package/dist/internal/ducklake-sql-executor.d.ts +33 -0
- package/dist/internal/ducklake-sql-executor.d.ts.map +1 -0
- package/dist/internal/ducklake-write-coordinator.d.ts +53 -0
- package/dist/internal/ducklake-write-coordinator.d.ts.map +1 -0
- package/dist/internal/ducklake-write-session.d.ts +17 -0
- package/dist/internal/ducklake-write-session.d.ts.map +1 -0
- package/dist/internal/names.d.ts +13 -0
- package/dist/internal/names.d.ts.map +1 -0
- package/dist/internal/row-appender.d.ts +7 -0
- package/dist/internal/row-appender.d.ts.map +1 -0
- package/dist/internal/schema.d.ts +35 -0
- package/dist/internal/schema.d.ts.map +1 -0
- package/dist/internal/sql-transform-relations.d.ts +13 -0
- package/dist/internal/sql-transform-relations.d.ts.map +1 -0
- package/dist/internal/sql.d.ts +62 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/versions.d.ts +22 -0
- package/dist/internal/versions.d.ts.map +1 -0
- package/dist/tsconfig.json +5 -0
- package/dist/types.d.ts +147 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +64 -0
- package/src/ducklake-storage.ts +130 -0
- package/src/index.ts +14 -0
- package/src/internal/catalog-key.ts +28 -0
- package/src/internal/dataset-row-commit.ts +128 -0
- package/src/internal/duckdb-column-types.ts +68 -0
- package/src/internal/duckdb-decimal.ts +36 -0
- package/src/internal/duckdb-row.ts +83 -0
- package/src/internal/duckdb-runtime.ts +347 -0
- package/src/internal/duckdb-value-converter.ts +27 -0
- package/src/internal/ducklake-catalog-schema.ts +116 -0
- package/src/internal/ducklake-connection-manager.ts +510 -0
- package/src/internal/ducklake-current-dataset-definitions.ts +228 -0
- package/src/internal/ducklake-dataset-catalog.ts +363 -0
- package/src/internal/ducklake-dataset-table-ref.ts +35 -0
- package/src/internal/ducklake-maintenance.ts +116 -0
- package/src/internal/ducklake-row-reader.ts +143 -0
- package/src/internal/ducklake-snapshot-reader.ts +826 -0
- package/src/internal/ducklake-sql-executor.ts +334 -0
- package/src/internal/ducklake-write-coordinator.ts +532 -0
- package/src/internal/ducklake-write-session.ts +170 -0
- package/src/internal/names.ts +111 -0
- package/src/internal/row-appender.ts +73 -0
- package/src/internal/schema.ts +149 -0
- package/src/internal/sql-transform-relations.ts +99 -0
- package/src/internal/sql.ts +440 -0
- package/src/internal/versions.ts +140 -0
- package/src/types.ts +159 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Stable key for coordinating local catalog users inside this process.
|
|
4
|
+
*
|
|
5
|
+
* PostgreSQL coordinates through the database. In-memory local catalogs have no
|
|
6
|
+
* shared file identity. File-backed local catalogs need equivalent path
|
|
7
|
+
* spellings, such as `lake.ducklake` and `dir/../lake.ducklake`, to map to the
|
|
8
|
+
* same coordination key.
|
|
9
|
+
*/
|
|
10
|
+
export declare function localCatalogCoordinationKey(options: Pick<DuckLakeStorageOptions, "catalog">): string | undefined;
|
|
11
|
+
//# sourceMappingURL=catalog-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-key.d.ts","sourceRoot":"","sources":["../../src/internal/catalog-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,GAC/C,MAAM,GAAG,SAAS,CAcpB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DatasetDefinition } from "@sixb/core";
|
|
2
|
+
import { type DatasetWriteMode } from "@sixb/core/lake-storage";
|
|
3
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
4
|
+
import type { DuckDbQueryRuntime } from "./duckdb-runtime";
|
|
5
|
+
export type CommitRowCount = {
|
|
6
|
+
readonly kind: "exact";
|
|
7
|
+
readonly value: number;
|
|
8
|
+
} | {
|
|
9
|
+
readonly kind: "unknown";
|
|
10
|
+
};
|
|
11
|
+
export interface ApplyDatasetRowsResult {
|
|
12
|
+
readonly dataChangeExpected: boolean;
|
|
13
|
+
readonly sourceRowCount: number;
|
|
14
|
+
readonly resultingRowCount: CommitRowCount;
|
|
15
|
+
}
|
|
16
|
+
export declare function assertDatasetWriteMode(mode: unknown, operation: string): asserts mode is DatasetWriteMode;
|
|
17
|
+
export declare function applyDatasetRowsFromRelation(input: {
|
|
18
|
+
readonly options: DuckLakeStorageOptions;
|
|
19
|
+
readonly runtime: DuckDbQueryRuntime;
|
|
20
|
+
readonly dataset: DatasetDefinition;
|
|
21
|
+
readonly mode: DatasetWriteMode;
|
|
22
|
+
/** Provider-rendered relation SQL, such as a quoted staging or temp table. */
|
|
23
|
+
readonly sourceRelationSql: string;
|
|
24
|
+
readonly previousRowCount?: number;
|
|
25
|
+
}): Promise<ApplyDatasetRowsResult>;
|
|
26
|
+
//# sourceMappingURL=dataset-row-commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-row-commit.d.ts","sourceRoot":"","sources":["../../src/internal/dataset-row-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAoB,MAAM,yBAAyB,CAAA;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAK1D,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAEhC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAA;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,IAAI,gBAAgB,CAMlC;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA0ClC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { DatasetColumnType } from "@sixb/core";
|
|
2
|
+
interface DuckDbColumnTypeMapping {
|
|
3
|
+
readonly sql: string;
|
|
4
|
+
readonly matches: (typeSql: string) => boolean;
|
|
5
|
+
}
|
|
6
|
+
interface DuckDbDecimalTypeMapping extends DuckDbColumnTypeMapping {
|
|
7
|
+
readonly precision: number;
|
|
8
|
+
readonly scale: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* DuckDB representations used for every Sixb dataset column type.
|
|
12
|
+
*
|
|
13
|
+
* Each entry owns both its CREATE TABLE representation and the metadata
|
|
14
|
+
* spellings accepted when reconstructing a Sixb dataset schema.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DUCKDB_COLUMN_TYPES: {
|
|
17
|
+
string: DuckDbColumnTypeMapping & {
|
|
18
|
+
readonly sql: "VARCHAR";
|
|
19
|
+
};
|
|
20
|
+
boolean: DuckDbColumnTypeMapping & {
|
|
21
|
+
readonly sql: "BOOLEAN";
|
|
22
|
+
};
|
|
23
|
+
int64: DuckDbColumnTypeMapping & {
|
|
24
|
+
readonly sql: "BIGINT";
|
|
25
|
+
};
|
|
26
|
+
float64: DuckDbColumnTypeMapping & {
|
|
27
|
+
readonly sql: "DOUBLE";
|
|
28
|
+
};
|
|
29
|
+
decimal: DuckDbDecimalTypeMapping;
|
|
30
|
+
date: DuckDbColumnTypeMapping & {
|
|
31
|
+
readonly sql: "DATE";
|
|
32
|
+
};
|
|
33
|
+
timestamp: DuckDbColumnTypeMapping & {
|
|
34
|
+
readonly sql: "TIMESTAMPTZ";
|
|
35
|
+
};
|
|
36
|
+
json: DuckDbColumnTypeMapping & {
|
|
37
|
+
readonly sql: "JSON";
|
|
38
|
+
};
|
|
39
|
+
fileRef: DuckDbColumnTypeMapping & {
|
|
40
|
+
readonly sql: "STRUCT(blobId VARCHAR, digest VARCHAR, sizeBytes BIGINT, fileName VARCHAR, mediaType VARCHAR, logicalPath VARCHAR)";
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export declare function findDatasetColumnTypeForDuckDbSql(typeSql: string): DatasetColumnType | undefined;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=duckdb-column-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duckdb-column-types.d.ts","sourceRoot":"","sources":["../../src/internal/duckdb-column-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;CAC/C;AAED,UAAU,wBAAyB,SAAQ,uBAAuB;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AA6BD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;CAY8B,CAAA;AAE9D,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAQhG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type DecimalValue } from "@sixb/core";
|
|
2
|
+
/**
|
|
3
|
+
* Normalize a dataset decimal and reject values DuckDB would round or overflow.
|
|
4
|
+
*/
|
|
5
|
+
export declare function normalizeDuckDbDecimalValue(value: unknown, columnName: string): DecimalValue;
|
|
6
|
+
//# sourceMappingURL=duckdb-decimal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duckdb-decimal.d.ts","sourceRoot":"","sources":["../../src/internal/duckdb-decimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAyB,MAAM,YAAY,CAAA;AAOrE;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAyB5F"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type DuckDbRow = Readonly<Record<string, unknown>>;
|
|
2
|
+
export declare function getString(row: DuckDbRow, key: string): string;
|
|
3
|
+
export declare function getOptionalString(row: DuckDbRow, key: string): string | undefined;
|
|
4
|
+
export declare function getBoolean(row: DuckDbRow, key: string): boolean;
|
|
5
|
+
export declare function getBigIntLike(row: DuckDbRow, key: string): bigint;
|
|
6
|
+
export declare function getOptionalBigIntLike(row: DuckDbRow, key: string): bigint | undefined;
|
|
7
|
+
export declare function getDate(row: DuckDbRow, key: string): Date;
|
|
8
|
+
//# sourceMappingURL=duckdb-row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duckdb-row.d.ts","sourceRoot":"","sources":["../../src/internal/duckdb-row.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEzD,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAajF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAS/D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBjE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOrF;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAazD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type DuckDBValue } from "@duckdb/node-api";
|
|
2
|
+
import type { DuckDbRuntimeOptions, DuckLakeStorageOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Narrow adapter around `@duckdb/node-api`.
|
|
5
|
+
*
|
|
6
|
+
* Keeping the public provider behind this interface confines the driver types to
|
|
7
|
+
* this module instead of leaking them into `DuckLakeStorage`. Calls on a runtime
|
|
8
|
+
* are serialized through one queue because a runtime owns one DuckDB connection.
|
|
9
|
+
*/
|
|
10
|
+
export interface DuckDbQueryRuntime {
|
|
11
|
+
run(sql: string, values?: readonly DuckDBValue[]): Promise<void>;
|
|
12
|
+
runStatements(statements: readonly string[]): Promise<void>;
|
|
13
|
+
query(sql: string, values?: readonly DuckDBValue[]): Promise<readonly Record<string, unknown>[]>;
|
|
14
|
+
withAppender<T>(tableName: string, useAppender: (appender: DuckDbAppender) => T | Promise<T>): Promise<T>;
|
|
15
|
+
}
|
|
16
|
+
export interface DuckDbRuntime extends DuckDbQueryRuntime {
|
|
17
|
+
streamRows(sql: string, values?: readonly DuckDBValue[]): AsyncIterable<Record<string, unknown>>;
|
|
18
|
+
/**
|
|
19
|
+
* Reserve the runtime queue for a multi-statement critical section.
|
|
20
|
+
*
|
|
21
|
+
* Use this for sequences such as BEGIN/read metadata/write/COMMIT where an
|
|
22
|
+
* interleaved read or write would observe the wrong connection state.
|
|
23
|
+
*/
|
|
24
|
+
withExclusive<T>(useRuntime: (runtime: DuckDbExclusiveRuntime) => Promise<T>): Promise<T>;
|
|
25
|
+
close(): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Runtime surface available while the caller already owns the queue slot.
|
|
29
|
+
*
|
|
30
|
+
* This is the query/appender subset only: no streaming, no close, and no nested
|
|
31
|
+
* exclusive block.
|
|
32
|
+
*/
|
|
33
|
+
export type DuckDbExclusiveRuntime = DuckDbQueryRuntime;
|
|
34
|
+
export interface DuckDbAppender {
|
|
35
|
+
appendNull(): void;
|
|
36
|
+
appendBoolean(value: boolean): void;
|
|
37
|
+
appendVarchar(value: string): void;
|
|
38
|
+
appendBigInt(value: bigint): void;
|
|
39
|
+
appendDouble(value: number): void;
|
|
40
|
+
appendStruct(value: Readonly<Record<string, DuckDBValue>>): void;
|
|
41
|
+
endRow(): void;
|
|
42
|
+
}
|
|
43
|
+
interface SetupDuckLakeOptions {
|
|
44
|
+
readonly installExtensions?: boolean;
|
|
45
|
+
readonly attach?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create the DuckDB runtime used by the provider.
|
|
49
|
+
*/
|
|
50
|
+
export declare function createDuckDbRuntime(options?: DuckDbRuntimeOptions): Promise<DuckDbRuntime>;
|
|
51
|
+
/**
|
|
52
|
+
* Install DuckLake and any catalog/data-path extensions into DuckDB's local
|
|
53
|
+
* extension directory. Installation is idempotent and can be shared by many
|
|
54
|
+
* short-lived runtimes created by one provider instance.
|
|
55
|
+
*/
|
|
56
|
+
export declare function installDuckLakeExtensions(runtime: DuckDbRuntime, options: DuckLakeStorageOptions): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Load DuckLake, load catalog extensions, run caller setup SQL, and optionally
|
|
59
|
+
* attach the configured DuckLake catalog.
|
|
60
|
+
*/
|
|
61
|
+
export declare function setupDuckLake(runtime: DuckDbRuntime, options: DuckLakeStorageOptions, setupOptions?: SetupDuckLakeOptions): Promise<void>;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=duckdb-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duckdb-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/duckdb-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAW5E;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,aAAa,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAChG,YAAY,CAAC,CAAC,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,CAAC,CAAC,CAAA;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAChG;;;;;OAKG;IACH,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,IAAI,CAAA;IAClB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI,CAAA;IAChE,MAAM,IAAI,IAAI,CAAA;CACf;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAsND;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAGxB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,sBAAsB,EAC/B,YAAY,GAAE,oBAAyB,GACtC,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type DuckDBValueConverter, type JS } from "@duckdb/node-api";
|
|
2
|
+
/**
|
|
3
|
+
* Preserve DuckDB decimals as exact strings while retaining the driver's normal
|
|
4
|
+
* JavaScript conversions for every other scalar and nested value.
|
|
5
|
+
*/
|
|
6
|
+
export declare const sixbDuckDbValueConverter: DuckDBValueConverter<JS>;
|
|
7
|
+
//# sourceMappingURL=duckdb-value-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duckdb-value-converter.d.ts","sourceRoot":"","sources":["../../src/internal/duckdb-value-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,EAAE,EAER,MAAM,kBAAkB,CAAA;AAGzB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,EAAE,CAa7D,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DatasetSchema } from "@sixb/core";
|
|
2
|
+
export interface DuckLakeCatalogColumn {
|
|
3
|
+
readonly tableName: string;
|
|
4
|
+
readonly columnId: bigint;
|
|
5
|
+
readonly columnOrder: bigint;
|
|
6
|
+
readonly columnName: string;
|
|
7
|
+
readonly columnType: string;
|
|
8
|
+
readonly nullsAllowed: boolean;
|
|
9
|
+
readonly parentColumnId?: bigint;
|
|
10
|
+
}
|
|
11
|
+
export declare function duckLakeCatalogColumnsToDatasetSchema(tableName: string, rows: readonly DuckLakeCatalogColumn[]): DatasetSchema;
|
|
12
|
+
//# sourceMappingURL=ducklake-catalog-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-catalog-schema.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-catalog-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,MAAM,YAAY,CAAA;AAIxE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAWD,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,qBAAqB,EAAE,GACrC,aAAa,CAoBf"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
2
|
+
import { type DuckDbExclusiveRuntime, type DuckDbQueryRuntime, type DuckDbRuntime } from "./duckdb-runtime";
|
|
3
|
+
export interface DuckLakeAttachedRuntimeLease {
|
|
4
|
+
readonly runtime: DuckDbRuntime;
|
|
5
|
+
release(): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Owns DuckDB/DuckLake runtime lifecycle for DuckLakeStorage.
|
|
9
|
+
*
|
|
10
|
+
* A storage instance owns one DuckDB runtime and at most one DuckLake
|
|
11
|
+
* attachment. The runtime starts unattached so construction and non-lake setup
|
|
12
|
+
* do not immediately open DuckLake metadata connections; reads and commits
|
|
13
|
+
* attach lazily through `attachedRuntime()`.
|
|
14
|
+
*/
|
|
15
|
+
export declare class DuckLakeConnectionManager {
|
|
16
|
+
private readonly options;
|
|
17
|
+
private runtimePromise;
|
|
18
|
+
private installExtensionsPromise;
|
|
19
|
+
private attachPromise;
|
|
20
|
+
private refreshPromise;
|
|
21
|
+
private localAttachmentLock;
|
|
22
|
+
private observedLocalCatalogGeneration;
|
|
23
|
+
private attached;
|
|
24
|
+
private closed;
|
|
25
|
+
private runtimePoisoned;
|
|
26
|
+
constructor(options: DuckLakeStorageOptions);
|
|
27
|
+
assertOpen(): void;
|
|
28
|
+
runtime(): Promise<DuckDbRuntime>;
|
|
29
|
+
attachedRuntime(): Promise<DuckDbRuntime>;
|
|
30
|
+
withAttachedRuntime<T>(run: (runtime: DuckDbRuntime) => Promise<T>): Promise<T>;
|
|
31
|
+
acquireAttachedRuntime(): Promise<DuckLakeAttachedRuntimeLease>;
|
|
32
|
+
withExclusiveAttached<T>(run: (runtime: DuckDbExclusiveRuntime) => Promise<T>): Promise<T>;
|
|
33
|
+
stagingRuntime(): Promise<DuckDbRuntime>;
|
|
34
|
+
/**
|
|
35
|
+
* Create the one runtime owned by this manager. Setup loads extensions,
|
|
36
|
+
* secrets, setup SQL, and pre-attach Postgres pool settings, but deliberately
|
|
37
|
+
* leaves DuckLake unattached until `attachedRuntime()` is needed.
|
|
38
|
+
*/
|
|
39
|
+
createRuntime(): Promise<DuckDbRuntime>;
|
|
40
|
+
resetRuntime(): Promise<void>;
|
|
41
|
+
private resetRuntimeUnlocked;
|
|
42
|
+
refreshForExternalChanges(): Promise<void>;
|
|
43
|
+
markLocalCatalogChanged(): void;
|
|
44
|
+
detachLocalCatalogAfterCommit(runtime: DuckDbQueryRuntime): Promise<void>;
|
|
45
|
+
private refreshForExternalChangesUnlocked;
|
|
46
|
+
private needsLocalCatalogRefresh;
|
|
47
|
+
close(): Promise<void>;
|
|
48
|
+
private ensureAttached;
|
|
49
|
+
private ensureExtensionsInstalled;
|
|
50
|
+
private attachRuntime;
|
|
51
|
+
private refreshAttachedRuntime;
|
|
52
|
+
private detachRuntime;
|
|
53
|
+
/**
|
|
54
|
+
* Mark the active runtime as unusable for reuse. The next lease release
|
|
55
|
+
* discards the connection so session state that could not be cleaned up
|
|
56
|
+
* (such as a SET pragma whose RESET failed) cannot reach a later operation.
|
|
57
|
+
*/
|
|
58
|
+
poisonRuntime(): void;
|
|
59
|
+
private detachDuckDbCatalogAfterLease;
|
|
60
|
+
private discardRuntimeUnlocked;
|
|
61
|
+
private detachRuntimeUnlocked;
|
|
62
|
+
private withLocalAttachmentLock;
|
|
63
|
+
private acquireLocalAttachmentLock;
|
|
64
|
+
private closeRuntimePromise;
|
|
65
|
+
private closeRuntime;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=ducklake-connection-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-connection-manager.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-connection-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAGnB,MAAM,kBAAkB,CAAA;AAQzB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IAcxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAbpC,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,cAAc,CAA2B;IAIjD,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,8BAA8B,CAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,eAAe,CAAQ;gBAEF,OAAO,EAAE,sBAAsB;IAI5D,UAAU,IAAI,IAAI;IAMZ,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAgBjC,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAMzC,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAS/E,sBAAsB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAoC/D,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAS1F,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAa9C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAoBvC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YASrB,oBAAoB;IAuC5B,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBhD,uBAAuB,IAAI,IAAI;IAQzB,6BAA6B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBjE,iCAAiC;IAW/C,OAAO,CAAC,wBAAwB;IAI1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBd,cAAc;YAgCd,yBAAyB;YAgBzB,aAAa;YASb,sBAAsB;YAUtB,aAAa;IAI3B;;;;OAIG;IACH,aAAa,IAAI,IAAI;YAIP,6BAA6B;YAmB7B,sBAAsB;YAOtB,qBAAqB;YAcrB,uBAAuB;YASvB,0BAA0B;YAyB1B,mBAAmB;YAqBnB,YAAY;CAe3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DatasetDefinition } from "@sixb/core";
|
|
2
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
3
|
+
import type { DuckDbQueryRuntime } from "./duckdb-runtime";
|
|
4
|
+
export interface ReadCurrentDatasetDefinitionsInput {
|
|
5
|
+
readonly options: DuckLakeStorageOptions;
|
|
6
|
+
readonly runtime: DuckDbQueryRuntime;
|
|
7
|
+
readonly datasetIds?: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
export declare function readCurrentDatasetDefinitions(input: ReadCurrentDatasetDefinitionsInput): Promise<Map<string, DatasetDefinition>>;
|
|
10
|
+
//# sourceMappingURL=ducklake-current-dataset-definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-current-dataset-definitions.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-current-dataset-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAQtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAoB1D,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAkCzC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { DatasetDefinition, DatasetSchema } from "@sixb/core";
|
|
2
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
3
|
+
import type { DuckDbQueryRuntime } from "./duckdb-runtime";
|
|
4
|
+
import type { DuckLakeConnectionManager } from "./ducklake-connection-manager";
|
|
5
|
+
/**
|
|
6
|
+
* Translates between Sixb dataset definitions and DuckLake table metadata.
|
|
7
|
+
*
|
|
8
|
+
* DuckLake stays the source of truth for the physical table, schema, comments,
|
|
9
|
+
* and partitioning. Sixb only decides which definition changes are safe to
|
|
10
|
+
* translate into DuckLake DDL.
|
|
11
|
+
*/
|
|
12
|
+
export declare class DuckLakeDatasetCatalog {
|
|
13
|
+
private readonly options;
|
|
14
|
+
private readonly connections;
|
|
15
|
+
constructor(options: DuckLakeStorageOptions, connections: DuckLakeConnectionManager);
|
|
16
|
+
createDataset(definition: DatasetDefinition): Promise<DatasetDefinition>;
|
|
17
|
+
assertDatasetDefinitionsCompatible(definitions: readonly DatasetDefinition[]): Promise<void>;
|
|
18
|
+
getDataset(datasetId: string): Promise<DatasetDefinition | null>;
|
|
19
|
+
getDatasetOnRuntime(runtime: DuckDbQueryRuntime, datasetId: string): Promise<DatasetDefinition | null>;
|
|
20
|
+
listDatasets(): Promise<readonly DatasetDefinition[]>;
|
|
21
|
+
private readCurrentDatasetDefinitions;
|
|
22
|
+
private readCurrentDatasetDefinitionsOnRuntime;
|
|
23
|
+
getDatasetSchemaAtSnapshot(runtime: DuckDbQueryRuntime, datasetId: string, tableName: string, tableId: bigint, snapshotId: string): Promise<DatasetSchema>;
|
|
24
|
+
assertSchema(definition: DatasetDefinition): void;
|
|
25
|
+
private applyExistingDatasetUpdate;
|
|
26
|
+
private applySchemaEvolutionDdl;
|
|
27
|
+
private applyMetadataDelta;
|
|
28
|
+
private applyPartitionBy;
|
|
29
|
+
private setSchemaEvolutionCommitMetadata;
|
|
30
|
+
private rollbackTransaction;
|
|
31
|
+
private readDatasetColumnsAtSnapshot;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ducklake-dataset-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-dataset-catalog.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-dataset-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAGlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAK1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E;;;;;;GAMG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,yBAAyB;IAGnD,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4CxE,kCAAkC,CACtC,WAAW,EAAE,SAAS,iBAAiB,EAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IAwCV,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQhE,mBAAmB,CACvB,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAU9B,YAAY,IAAI,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;YAU7C,6BAA6B;YAY7B,sCAAsC;IAW9C,0BAA0B,CAC9B,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IAazB,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;YAQnC,0BAA0B;YA+B1B,uBAAuB;YAYvB,kBAAkB;YAmBlB,gBAAgB;YA0BhB,gCAAgC;YAwBhC,mBAAmB;YASnB,4BAA4B;CAgC3C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
2
|
+
import type { DuckDbQueryRuntime } from "./duckdb-runtime";
|
|
3
|
+
export interface DatasetTableRef {
|
|
4
|
+
readonly datasetId: string;
|
|
5
|
+
readonly tableName: string;
|
|
6
|
+
readonly tableId: bigint;
|
|
7
|
+
}
|
|
8
|
+
export declare function resolveDatasetTableRef(options: DuckLakeStorageOptions, runtime: DuckDbQueryRuntime, datasetId: string): Promise<DatasetTableRef | null>;
|
|
9
|
+
//# sourceMappingURL=ducklake-dataset-table-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-dataset-table-ref.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-dataset-table-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAI1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkBjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DuckLakeMaintenanceOptions, DuckLakeMaintenanceReport, DuckLakeStorageOptions } from "../types";
|
|
2
|
+
import type { DuckLakeConnectionManager } from "./ducklake-connection-manager";
|
|
3
|
+
export declare class DuckLakeMaintenance {
|
|
4
|
+
private readonly options;
|
|
5
|
+
private readonly connections;
|
|
6
|
+
constructor(options: DuckLakeStorageOptions, connections: DuckLakeConnectionManager);
|
|
7
|
+
runMaintenance(options?: DuckLakeMaintenanceOptions): Promise<DuckLakeMaintenanceReport>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ducklake-maintenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-maintenance.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-maintenance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAW9E,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,yBAAyB;IAGnD,cAAc,CAClB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC;CAoCtC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DatasetRow } from "@sixb/core";
|
|
2
|
+
import type { ReadDatasetRowsInput } from "@sixb/core/lake-storage";
|
|
3
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
4
|
+
import type { DuckLakeConnectionManager } from "./ducklake-connection-manager";
|
|
5
|
+
import type { DuckLakeSnapshotReader } from "./ducklake-snapshot-reader";
|
|
6
|
+
/**
|
|
7
|
+
* Reads dataset rows from DuckLake snapshots.
|
|
8
|
+
*
|
|
9
|
+
* This module owns the last mile of reads: resolve the requested Sixb version
|
|
10
|
+
* to a DuckLake snapshot id, render a DuckLake time-travel query, and normalize
|
|
11
|
+
* DuckDB values back into Sixb row shape.
|
|
12
|
+
*/
|
|
13
|
+
export declare class DuckLakeRowReader {
|
|
14
|
+
private readonly options;
|
|
15
|
+
private readonly connections;
|
|
16
|
+
private readonly snapshots;
|
|
17
|
+
constructor(options: DuckLakeStorageOptions, connections: DuckLakeConnectionManager, snapshots: DuckLakeSnapshotReader);
|
|
18
|
+
readRows(input: ReadDatasetRowsInput): AsyncIterable<DatasetRow>;
|
|
19
|
+
private normalizeRows;
|
|
20
|
+
private resolveVersion;
|
|
21
|
+
private resolveReadColumns;
|
|
22
|
+
private throwNoCommittedVersion;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ducklake-row-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-row-reader.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-row-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,UAAU,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,KAAK,EAAkB,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAEnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAE9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAKxE;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,yBAAyB,EACtC,SAAS,EAAE,sBAAsB;IAG7C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,aAAa,CAAC,UAAU,CAAC;YAoDxD,aAAa;YAad,cAAc;IAuB5B,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,uBAAuB;CAKhC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { DatasetDefinition } from "@sixb/core";
|
|
2
|
+
import type { DatasetCatalogState, DatasetVersion, DatasetVersionRef } from "@sixb/core/lake-storage";
|
|
3
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
4
|
+
import type { DuckDbQueryRuntime } from "./duckdb-runtime";
|
|
5
|
+
import type { DuckLakeConnectionManager } from "./ducklake-connection-manager";
|
|
6
|
+
import type { DuckLakeDatasetCatalog } from "./ducklake-dataset-catalog";
|
|
7
|
+
import { type DatasetTableRef } from "./ducklake-dataset-table-ref";
|
|
8
|
+
export interface DuckLakeVersionSummary {
|
|
9
|
+
readonly datasetId: string;
|
|
10
|
+
readonly versionId: string;
|
|
11
|
+
readonly rowCount?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Reconstructs Sixb DatasetVersion objects from DuckLake snapshots.
|
|
15
|
+
*
|
|
16
|
+
* DuckLake remains the source of truth for version ids, commit times, and
|
|
17
|
+
* historical reads. Sixb commit metadata only hydrates fields DuckLake does
|
|
18
|
+
* not know about, such as producer info and declared inputs.
|
|
19
|
+
*
|
|
20
|
+
* This class intentionally reads DuckLake metadata directly. The provider does
|
|
21
|
+
* not keep a Sixb side table for versions; a Sixb version is a DuckLake
|
|
22
|
+
* snapshot that either changed the dataset table or was explicitly tagged with
|
|
23
|
+
* Sixb dataset metadata.
|
|
24
|
+
*/
|
|
25
|
+
export declare class DuckLakeSnapshotReader {
|
|
26
|
+
private readonly options;
|
|
27
|
+
private readonly connections;
|
|
28
|
+
private readonly datasets;
|
|
29
|
+
constructor(options: DuckLakeStorageOptions, connections: DuckLakeConnectionManager, datasets: DuckLakeDatasetCatalog);
|
|
30
|
+
listVersions(datasetId: string, limit?: number): Promise<readonly DatasetVersion[]>;
|
|
31
|
+
getLatestVersion(datasetId: string): Promise<DatasetVersion | null>;
|
|
32
|
+
getVersion(datasetId: string, versionId: string): Promise<DatasetVersion | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Bulk catalog-summary read used by the dataset list view.
|
|
35
|
+
*
|
|
36
|
+
* Resolves materialized state and a lightweight latest-version summary for
|
|
37
|
+
* many datasets with a bounded number of metadata queries, never one snapshot
|
|
38
|
+
* scan per dataset and never a count(*) over dataset contents.
|
|
39
|
+
*/
|
|
40
|
+
listDatasetCatalogState(datasetIds: readonly string[]): Promise<readonly DatasetCatalogState[]>;
|
|
41
|
+
private collectDatasetCatalogState;
|
|
42
|
+
private snapshotRowToSummary;
|
|
43
|
+
private resolveDatasetTableIds;
|
|
44
|
+
/**
|
|
45
|
+
* Resolve each dataset's latest snapshot row with one shared descending walk.
|
|
46
|
+
*
|
|
47
|
+
* The walk reuses {@link candidateToSnapshotRow} so Sixb visibility, mode
|
|
48
|
+
* derivation, and the loud conflict rule match exact version hydration. Cost
|
|
49
|
+
* is bounded by the snapshot window, not by the number of datasets.
|
|
50
|
+
*/
|
|
51
|
+
private resolveLatestSnapshotRows;
|
|
52
|
+
private queryCatalogSnapshotBatch;
|
|
53
|
+
private queryFileChangeFlags;
|
|
54
|
+
private assertNoMetadataConflict;
|
|
55
|
+
getLatestVersionForDefinition(runtime: DuckDbQueryRuntime, dataset: DatasetDefinition): Promise<DatasetVersion | null>;
|
|
56
|
+
getLatestVersionRefForDefinition(runtime: DuckDbQueryRuntime, dataset: DatasetDefinition): Promise<DatasetVersionRef | null>;
|
|
57
|
+
getLatestVersionSummaryForDefinition(runtime: DuckDbQueryRuntime, dataset: DatasetDefinition): Promise<DuckLakeVersionSummary | null>;
|
|
58
|
+
getVersionForSnapshot(runtime: DuckDbQueryRuntime, dataset: DatasetDefinition, snapshotId: string): Promise<DatasetVersion | null>;
|
|
59
|
+
getVersionForTableRef(runtime: DuckDbQueryRuntime, tableRef: DatasetTableRef, snapshotId: string): Promise<DatasetVersion | null>;
|
|
60
|
+
getVersionRefForSnapshot(runtime: DuckDbQueryRuntime, dataset: DatasetDefinition, snapshotId: string): Promise<DatasetVersionRef | null>;
|
|
61
|
+
listVersionsForDefinition(runtime: DuckDbQueryRuntime, dataset: DatasetDefinition, limit?: number): Promise<readonly DatasetVersion[]>;
|
|
62
|
+
private listVersionsForTableRef;
|
|
63
|
+
getLatestVersionForTableRef(runtime: DuckDbQueryRuntime, tableRef: DatasetTableRef): Promise<DatasetVersion | null>;
|
|
64
|
+
private getLatestSnapshotRowForTableRef;
|
|
65
|
+
private getSnapshotRowForTableRef;
|
|
66
|
+
private getSnapshotRowsForTableRef;
|
|
67
|
+
private collectVisibleSnapshotRows;
|
|
68
|
+
private querySnapshotCandidates;
|
|
69
|
+
private candidateToSnapshotRow;
|
|
70
|
+
private snapshotToVersion;
|
|
71
|
+
private withParentSnapshotIds;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ducklake-snapshot-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-snapshot-reader.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-snapshot-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EAEd,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AA4C3F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAyBD;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,yBAAyB,EACtC,QAAQ,EAAE,sBAAsB;IAG7C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;IAanF,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAanE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IActF;;;;;;OAMG;IACG,uBAAuB,CAC3B,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;YAY5B,0BAA0B;IAsBxC,OAAO,CAAC,oBAAoB;YAad,sBAAsB;IAiCpC;;;;;;OAMG;YACW,yBAAyB;YA8DzB,yBAAyB;YAyCzB,oBAAoB;IAuDlC,OAAO,CAAC,wBAAwB;IAY1B,6BAA6B,CACjC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAK3B,gCAAgC,CACpC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAK9B,oCAAoC,CACxC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAkBnC,qBAAqB,CACzB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAO3B,qBAAqB,CACzB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAO3B,wBAAwB,CAC5B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAc9B,yBAAyB,CAC7B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,iBAAiB,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;YAKvB,uBAAuB;IAe/B,2BAA2B,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAKnB,+BAA+B;YAY/B,yBAAyB;YAgCzB,0BAA0B;YAmB1B,0BAA0B;YA2C1B,uBAAuB;IAsGrC,OAAO,CAAC,sBAAsB;YAyChB,iBAAiB;IAgC/B,OAAO,CAAC,qBAAqB;CAa9B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { DatasetRow } from "@sixb/core";
|
|
2
|
+
import { type DatasetWriteCommitResult, type ExecuteSqlTransformInput, type LakeSqlExecutor, type PreviewSqlTransformInput } from "@sixb/core/lake-storage";
|
|
3
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
4
|
+
import type { DuckLakeConnectionManager } from "./ducklake-connection-manager";
|
|
5
|
+
import type { DuckLakeDatasetCatalog } from "./ducklake-dataset-catalog";
|
|
6
|
+
import type { DuckLakeSnapshotReader } from "./ducklake-snapshot-reader";
|
|
7
|
+
import type { DuckLakeWriteCoordinator } from "./ducklake-write-coordinator";
|
|
8
|
+
/**
|
|
9
|
+
* DuckDB-backed SQL transform executor for DuckLakeStorage.
|
|
10
|
+
*/
|
|
11
|
+
export declare class DuckLakeSqlExecutor implements LakeSqlExecutor<"duckdb"> {
|
|
12
|
+
private readonly options;
|
|
13
|
+
private readonly connections;
|
|
14
|
+
private readonly datasets;
|
|
15
|
+
private readonly snapshots;
|
|
16
|
+
private readonly writes;
|
|
17
|
+
readonly dialect: "duckdb";
|
|
18
|
+
readonly capabilities: {
|
|
19
|
+
preview: boolean;
|
|
20
|
+
supportsAppend: boolean;
|
|
21
|
+
supportsSnapshot: boolean;
|
|
22
|
+
};
|
|
23
|
+
constructor(options: DuckLakeStorageOptions, connections: DuckLakeConnectionManager, datasets: DuckLakeDatasetCatalog, snapshots: DuckLakeSnapshotReader, writes: DuckLakeWriteCoordinator);
|
|
24
|
+
preview(input: PreviewSqlTransformInput<"duckdb">): AsyncIterable<DatasetRow>;
|
|
25
|
+
execute(input: ExecuteSqlTransformInput<"duckdb">): Promise<DatasetWriteCommitResult>;
|
|
26
|
+
private resolveSources;
|
|
27
|
+
private resolveSourceDataset;
|
|
28
|
+
private resolveTargetDataset;
|
|
29
|
+
private resolveSourceVersion;
|
|
30
|
+
private assertResultSchemaMatchesTarget;
|
|
31
|
+
private applySqlTransform;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ducklake-sql-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-sql-executor.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-sql-executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8C,UAAU,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,EAEL,KAAK,wBAAwB,EAE7B,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EAEpB,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAyB5E;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe,CAAC,QAAQ,CAAC;IASjE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAS;IACpC,QAAQ,CAAC,YAAY;;;;MAIpB;gBAGkB,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,yBAAyB,EACtC,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,wBAAwB;IAG5C,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC;IAkB9E,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAkC7E,cAAc;YA2Bd,oBAAoB;YAcpB,oBAAoB;YAepB,oBAAoB;YAuBpB,+BAA+B;YAsC/B,iBAAiB;CA+BhC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { DatasetDefinition } from "@sixb/core";
|
|
2
|
+
import type { BeginDatasetWriteInput, DatasetWriteCommitResult, DatasetWriteMode, LakeWriteSession } from "@sixb/core/lake-storage";
|
|
3
|
+
import type { DuckLakeStorageOptions } from "../types";
|
|
4
|
+
import { type ApplyDatasetRowsResult } from "./dataset-row-commit";
|
|
5
|
+
import type { DuckDbQueryRuntime } from "./duckdb-runtime";
|
|
6
|
+
import type { DuckLakeConnectionManager } from "./ducklake-connection-manager";
|
|
7
|
+
import type { DuckLakeDatasetCatalog } from "./ducklake-dataset-catalog";
|
|
8
|
+
import type { DuckLakeSnapshotReader } from "./ducklake-snapshot-reader";
|
|
9
|
+
export interface DuckLakeCommitDatasetVersionInput {
|
|
10
|
+
readonly dataset: DatasetDefinition;
|
|
11
|
+
readonly mode: DatasetWriteMode;
|
|
12
|
+
readonly expectedLatestVersionId?: string;
|
|
13
|
+
readonly commitMessage: string;
|
|
14
|
+
readonly producer?: BeginDatasetWriteInput["producer"];
|
|
15
|
+
readonly inputs?: BeginDatasetWriteInput["inputs"];
|
|
16
|
+
applyChanges(runtime: DuckDbQueryRuntime, context: DuckLakeApplyChangesContext): Promise<ApplyDatasetRowsResult>;
|
|
17
|
+
}
|
|
18
|
+
export interface DuckLakeApplyChangesContext {
|
|
19
|
+
readonly previousRowCount?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Owns the durable DuckLake transaction for a staged Sixb write.
|
|
23
|
+
*
|
|
24
|
+
* Write sessions keep validation and temp staging table mechanics close to the
|
|
25
|
+
* caller. This coordinator handles everything that changes shared DuckLake
|
|
26
|
+
* state: attachment refresh, optimistic guards, row replacement/append,
|
|
27
|
+
* commit_extra_info, no-op detection, and DatasetVersion hydration.
|
|
28
|
+
*/
|
|
29
|
+
export declare class DuckLakeWriteCoordinator {
|
|
30
|
+
private readonly options;
|
|
31
|
+
private readonly connections;
|
|
32
|
+
private readonly datasets;
|
|
33
|
+
private readonly snapshots;
|
|
34
|
+
constructor(options: DuckLakeStorageOptions, connections: DuckLakeConnectionManager, datasets: DuckLakeDatasetCatalog, snapshots: DuckLakeSnapshotReader);
|
|
35
|
+
beginWrite(input: BeginDatasetWriteInput): Promise<LakeWriteSession>;
|
|
36
|
+
private commitWrite;
|
|
37
|
+
commitDatasetVersion(input: DuckLakeCommitDatasetVersionInput): Promise<DatasetWriteCommitResult>;
|
|
38
|
+
withCommitRuntime<T>(run: (runtime: DuckDbQueryRuntime) => Promise<T>): Promise<T>;
|
|
39
|
+
commitDatasetVersionOnExclusiveRuntime(runtime: DuckDbQueryRuntime, input: DuckLakeCommitDatasetVersionInput): Promise<DatasetWriteCommitResult>;
|
|
40
|
+
private withGuardedRetrySetting;
|
|
41
|
+
private commitDatasetVersionUnlocked;
|
|
42
|
+
private versionForCommittedWrite;
|
|
43
|
+
private applyStagedRows;
|
|
44
|
+
private setCommitMetadata;
|
|
45
|
+
private versionForNoOpCommit;
|
|
46
|
+
private rollbackTransaction;
|
|
47
|
+
private latestVersionForCommit;
|
|
48
|
+
private lastCommittedSnapshotId;
|
|
49
|
+
private findSnapshotIdByCommitId;
|
|
50
|
+
private findOwnSnapshotId;
|
|
51
|
+
private assertExpectedLatestVersion;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=ducklake-write-coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-write-coordinator.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-write-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EACV,sBAAsB,EAEtB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAA0B,MAAM,4BAA4B,CAAA;AAKhG,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAA;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAClD,YAAY,CACV,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAAA;CACnC;AAMD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,yBAAyB,EACtC,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAE,sBAAsB;IAG9C,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YA4B5D,WAAW;IAyBnB,oBAAoB,CACxB,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,wBAAwB,CAAC;IAM9B,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQlF,sCAAsC,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,wBAAwB,CAAC;YAOtB,uBAAuB;YA2CvB,4BAA4B;YAwD5B,wBAAwB;YAoDxB,eAAe;YAyBf,iBAAiB;YA4BjB,oBAAoB;YAcpB,mBAAmB;YASnB,sBAAsB;YAUtB,uBAAuB;YAYvB,wBAAwB;YAiCxB,iBAAiB;IA0B/B,OAAO,CAAC,2BAA2B;CAepC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BeginDatasetWriteInput, CommitDatasetWriteInput, DatasetWriteCommitResult, LakeWriteSession } from "@sixb/core/lake-storage";
|
|
2
|
+
import type { DuckDbRuntime } from "./duckdb-runtime";
|
|
3
|
+
export interface DuckLakeCommitWriteInput {
|
|
4
|
+
readonly write: BeginDatasetWriteInput;
|
|
5
|
+
readonly commit?: CommitDatasetWriteInput;
|
|
6
|
+
readonly stagingTableName: string;
|
|
7
|
+
readonly rowsWritten: number;
|
|
8
|
+
}
|
|
9
|
+
type DuckLakeCommitWrite = (options: DuckLakeCommitWriteInput) => Promise<DatasetWriteCommitResult>;
|
|
10
|
+
interface CreateDuckLakeWriteSessionInput {
|
|
11
|
+
readonly commitWrite: DuckLakeCommitWrite;
|
|
12
|
+
readonly runtime: DuckDbRuntime;
|
|
13
|
+
readonly write: BeginDatasetWriteInput;
|
|
14
|
+
}
|
|
15
|
+
export declare function createDuckLakeWriteSession(input: CreateDuckLakeWriteSessionInput): Promise<LakeWriteSession>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=ducklake-write-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ducklake-write-session.d.ts","sourceRoot":"","sources":["../../src/internal/ducklake-write-session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAKrD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAA;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,KAAK,mBAAmB,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAOnG,UAAU,+BAA+B;IACvC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;CACvC;AAED,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,gBAAgB,CAAC,CAa3B"}
|