@effect/sql-clickhouse 4.0.0-beta.9 → 4.0.0-beta.91
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/ClickhouseClient.d.ts +80 -26
- package/dist/ClickhouseClient.d.ts.map +1 -1
- package/dist/ClickhouseClient.js +117 -38
- package/dist/ClickhouseClient.js.map +1 -1
- package/dist/ClickhouseMigrator.d.ts +19 -5
- package/dist/ClickhouseMigrator.d.ts.map +1 -1
- package/dist/ClickhouseMigrator.js +10 -4
- package/dist/ClickhouseMigrator.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/package.json +6 -6
- package/src/ClickhouseClient.ts +171 -48
- package/src/ClickhouseMigrator.ts +19 -5
- package/src/index.ts +3 -3
|
@@ -1,30 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ClickHouse driver for Effect SQL, backed by `@clickhouse/client`.
|
|
3
|
+
*
|
|
4
|
+
* This module provides both the ClickHouse-specific {@link ClickhouseClient}
|
|
5
|
+
* service and the generic {@link Client.SqlClient} service. `make` creates a
|
|
6
|
+
* scoped client, checks the connection with `SELECT 1`, maps ClickHouse errors
|
|
7
|
+
* to `SqlError`, and aborts in-flight queries when interrupted. The
|
|
8
|
+
* ClickHouse-specific service adds typed parameters, command execution, insert
|
|
9
|
+
* queries, query id and settings helpers, a statement compiler, and direct or
|
|
10
|
+
* config-backed layers.
|
|
11
|
+
*
|
|
12
|
+
* @since 4.0.0
|
|
3
13
|
*/
|
|
4
14
|
import * as Clickhouse from "@clickhouse/client";
|
|
5
15
|
import * as Config from "effect/Config";
|
|
16
|
+
import * as Context from "effect/Context";
|
|
6
17
|
import * as Effect from "effect/Effect";
|
|
7
18
|
import * as Layer from "effect/Layer";
|
|
8
19
|
import type * as Scope from "effect/Scope";
|
|
9
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
10
20
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
11
21
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
12
22
|
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
13
23
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
14
24
|
import type { Readable } from "node:stream";
|
|
15
25
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
26
|
+
* Unique runtime identifier used to tag `ClickhouseClient` values.
|
|
27
|
+
*
|
|
28
|
+
* @category type IDs
|
|
29
|
+
* @since 4.0.0
|
|
18
30
|
*/
|
|
19
31
|
export declare const TypeId: TypeId;
|
|
20
32
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
33
|
+
* Type-level literal for the `ClickhouseClient` runtime identifier.
|
|
34
|
+
*
|
|
35
|
+
* @category type IDs
|
|
36
|
+
* @since 4.0.0
|
|
23
37
|
*/
|
|
24
38
|
export type TypeId = "~@effect/sql-clickhouse/ClickhouseClient";
|
|
25
39
|
/**
|
|
40
|
+
* ClickHouse-specific `SqlClient` extension with access to its configuration,
|
|
41
|
+
* typed parameter fragments, command-mode execution, insert queries, and
|
|
42
|
+
* per-effect query ID and ClickHouse settings.
|
|
43
|
+
*
|
|
26
44
|
* @category models
|
|
27
|
-
* @since
|
|
45
|
+
* @since 4.0.0
|
|
28
46
|
*/
|
|
29
47
|
export interface ClickhouseClient extends Client.SqlClient {
|
|
30
48
|
readonly [TypeId]: TypeId;
|
|
@@ -46,13 +64,23 @@ export interface ClickhouseClient extends Client.SqlClient {
|
|
|
46
64
|
};
|
|
47
65
|
}
|
|
48
66
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
67
|
+
* Service tag for the active ClickHouse SQL client.
|
|
68
|
+
*
|
|
69
|
+
* **When to use**
|
|
70
|
+
*
|
|
71
|
+
* Use to access or provide a ClickHouse SQL client through the Effect context.
|
|
72
|
+
*
|
|
73
|
+
* @category services
|
|
74
|
+
* @since 4.0.0
|
|
51
75
|
*/
|
|
52
|
-
export declare const ClickhouseClient:
|
|
76
|
+
export declare const ClickhouseClient: Context.Service<ClickhouseClient, ClickhouseClient>;
|
|
53
77
|
/**
|
|
78
|
+
* Configuration for creating a ClickHouse client, combining
|
|
79
|
+
* `@clickhouse/client` options with optional span attributes and query/result
|
|
80
|
+
* name transforms.
|
|
81
|
+
*
|
|
54
82
|
* @category constructors
|
|
55
|
-
* @since
|
|
83
|
+
* @since 4.0.0
|
|
56
84
|
*/
|
|
57
85
|
export interface ClickhouseClientConfig extends Clickhouse.ClickHouseClientConfigOptions {
|
|
58
86
|
readonly spanAttributes?: Record<string, unknown> | undefined;
|
|
@@ -60,48 +88,74 @@ export interface ClickhouseClientConfig extends Clickhouse.ClickHouseClientConfi
|
|
|
60
88
|
readonly transformQueryNames?: ((str: string) => string) | undefined;
|
|
61
89
|
}
|
|
62
90
|
/**
|
|
91
|
+
* Creates a scoped `ClickhouseClient`, verifies connectivity with `SELECT 1`,
|
|
92
|
+
* closes the underlying client when the scope ends, maps ClickHouse failures
|
|
93
|
+
* to `SqlError`, and aborts plus kills in-flight queries when interrupted.
|
|
94
|
+
*
|
|
63
95
|
* @category constructors
|
|
64
|
-
* @since
|
|
96
|
+
* @since 4.0.0
|
|
65
97
|
*/
|
|
66
98
|
export declare const make: (options: ClickhouseClientConfig) => Effect.Effect<ClickhouseClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
67
99
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
100
|
+
* Fiber reference read by the low-level ClickHouse connection to choose query
|
|
101
|
+
* or command execution for statements; defaults to `query`.
|
|
102
|
+
*
|
|
103
|
+
* @category references
|
|
104
|
+
* @since 4.0.0
|
|
70
105
|
*/
|
|
71
|
-
export declare const ClientMethod:
|
|
106
|
+
export declare const ClientMethod: Context.Reference<"query" | "command" | "insert">;
|
|
72
107
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
108
|
+
* Fiber reference for the ClickHouse `query_id` applied to queries and
|
|
109
|
+
* inserts; a random UUID is generated when no query ID is set.
|
|
110
|
+
*
|
|
111
|
+
* @category references
|
|
112
|
+
* @since 4.0.0
|
|
75
113
|
*/
|
|
76
|
-
export declare const QueryId:
|
|
114
|
+
export declare const QueryId: Context.Reference<string | undefined>;
|
|
77
115
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
116
|
+
* Fiber reference containing ClickHouse settings to attach to queries,
|
|
117
|
+
* commands, and inserts.
|
|
118
|
+
*
|
|
119
|
+
* @category references
|
|
120
|
+
* @since 4.0.0
|
|
80
121
|
*/
|
|
81
|
-
export declare const ClickhouseSettings:
|
|
122
|
+
export declare const ClickhouseSettings: Context.Reference<NonNullable<Clickhouse.BaseQueryParams["clickhouse_settings"]>>;
|
|
82
123
|
/**
|
|
124
|
+
* Provides both `ClickhouseClient` and generic `SqlClient` services from a
|
|
125
|
+
* `Config`-backed ClickHouse client configuration.
|
|
126
|
+
*
|
|
83
127
|
* @category layers
|
|
84
|
-
* @since
|
|
128
|
+
* @since 4.0.0
|
|
85
129
|
*/
|
|
86
130
|
export declare const layerConfig: (config: Config.Wrap<ClickhouseClientConfig>) => Layer.Layer<ClickhouseClient | Client.SqlClient, Config.ConfigError | SqlError>;
|
|
87
131
|
/**
|
|
132
|
+
* Provides both `ClickhouseClient` and generic `SqlClient` services from a
|
|
133
|
+
* ClickHouse client configuration.
|
|
134
|
+
*
|
|
88
135
|
* @category layers
|
|
89
|
-
* @since
|
|
136
|
+
* @since 4.0.0
|
|
90
137
|
*/
|
|
91
138
|
export declare const layer: (config: ClickhouseClientConfig) => Layer.Layer<ClickhouseClient | Client.SqlClient, Config.ConfigError | SqlError>;
|
|
92
139
|
/**
|
|
140
|
+
* Creates the SQL statement compiler for ClickHouse, emitting typed
|
|
141
|
+
* `{pN: Type}` placeholders and escaping identifiers with an optional query
|
|
142
|
+
* name transform.
|
|
143
|
+
*
|
|
93
144
|
* @category compiler
|
|
94
|
-
* @since
|
|
145
|
+
* @since 4.0.0
|
|
95
146
|
*/
|
|
96
147
|
export declare const makeCompiler: (transform?: (_: string) => string) => Statement.Compiler;
|
|
97
148
|
/**
|
|
149
|
+
* Custom SQL fragment type used for ClickHouse typed parameters created by
|
|
150
|
+
* `ClickhouseClient.param`.
|
|
151
|
+
*
|
|
98
152
|
* @category custom types
|
|
99
|
-
* @since
|
|
153
|
+
* @since 4.0.0
|
|
100
154
|
*/
|
|
101
155
|
export type ClickhouseCustom = ClickhouseParam;
|
|
102
156
|
/**
|
|
103
157
|
* @category custom types
|
|
104
|
-
* @since
|
|
158
|
+
* @since 4.0.0
|
|
105
159
|
*/
|
|
106
160
|
interface ClickhouseParam extends Statement.Custom<"ClickhouseParam", string, unknown> {
|
|
107
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickhouseClient.d.ts","sourceRoot":"","sources":["../src/ClickhouseClient.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ClickhouseClient.d.ts","sourceRoot":"","sources":["../src/ClickhouseClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAA;AAEhD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,EAIL,QAAQ,EAIT,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AA+C3C;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,MAAmD,CAAA;AAExE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,0CAA0C,CAAA;AAE/D;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,SAAS;IACxD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,QAAQ,CAAA;IACxE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACvF,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE;QAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,UAAU,CAAA;KACxC,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE;QACpB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACtF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KACnF,CAAA;IACD,QAAQ,CAAC,sBAAsB,EAAE;QAC/B,CACE,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GACvE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACtE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GACvE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAC1B,CAAA;CACF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,qDAA+E,CAAA;AAE5G;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAuB,SAAQ,UAAU,CAAC,6BAA6B;IACtF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,sBAAsB,KAC9B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAiO5E,CAAA;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,mDAKxB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,uCAGnB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAChD,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAG9D,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,CACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KACxC,KAAK,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAY1C,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,sBAAsB,KAC7B,KAAK,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAMxC,CAAA;AA2BzC;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,YAAY,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,uBAiB1D,CAAA;AAMJ;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAA;AAE9C;;;GAGG;AACH,UAAU,eAAgB,SAAQ,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC;CAAG"}
|
package/dist/ClickhouseClient.js
CHANGED
|
@@ -1,36 +1,96 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ClickHouse driver for Effect SQL, backed by `@clickhouse/client`.
|
|
3
|
+
*
|
|
4
|
+
* This module provides both the ClickHouse-specific {@link ClickhouseClient}
|
|
5
|
+
* service and the generic {@link Client.SqlClient} service. `make` creates a
|
|
6
|
+
* scoped client, checks the connection with `SELECT 1`, maps ClickHouse errors
|
|
7
|
+
* to `SqlError`, and aborts in-flight queries when interrupted. The
|
|
8
|
+
* ClickHouse-specific service adds typed parameters, command execution, insert
|
|
9
|
+
* queries, query id and settings helpers, a statement compiler, and direct or
|
|
10
|
+
* config-backed layers.
|
|
11
|
+
*
|
|
12
|
+
* @since 4.0.0
|
|
3
13
|
*/
|
|
4
14
|
import * as Clickhouse from "@clickhouse/client";
|
|
5
15
|
import * as NodeStream from "@effect/platform-node/NodeStream";
|
|
6
16
|
import * as Config from "effect/Config";
|
|
17
|
+
import * as Context from "effect/Context";
|
|
7
18
|
import * as Duration from "effect/Duration";
|
|
8
19
|
import * as Effect from "effect/Effect";
|
|
9
20
|
import * as Fiber from "effect/Fiber";
|
|
10
21
|
import { dual } from "effect/Function";
|
|
11
22
|
import * as Layer from "effect/Layer";
|
|
12
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
13
23
|
import * as Stream from "effect/Stream";
|
|
14
24
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
15
25
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
16
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
26
|
+
import { AuthenticationError, AuthorizationError, ConnectionError, SqlError, SqlSyntaxError, StatementTimeoutError, UnknownError } from "effect/unstable/sql/SqlError";
|
|
17
27
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
18
28
|
import * as Crypto from "node:crypto";
|
|
19
29
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
20
30
|
const ATTR_DB_NAMESPACE = "db.namespace";
|
|
31
|
+
const clickhouseCodeFromCause = cause => {
|
|
32
|
+
if (typeof cause !== "object" || cause === null || !("code" in cause)) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
const code = cause.code;
|
|
36
|
+
if (typeof code === "number") {
|
|
37
|
+
return code;
|
|
38
|
+
}
|
|
39
|
+
if (typeof code === "string") {
|
|
40
|
+
const parsed = Number(code);
|
|
41
|
+
return Number.isNaN(parsed) ? undefined : parsed;
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
};
|
|
45
|
+
const clickhouseSyntaxErrorCodes = /*#__PURE__*/new Set([36, 60, 62, 242]);
|
|
46
|
+
const classifyError = (cause, message, operation, fallback = "unknown") => {
|
|
47
|
+
const props = {
|
|
48
|
+
cause,
|
|
49
|
+
message,
|
|
50
|
+
operation
|
|
51
|
+
};
|
|
52
|
+
const code = clickhouseCodeFromCause(cause);
|
|
53
|
+
if (code !== undefined) {
|
|
54
|
+
if (code === 516) {
|
|
55
|
+
return new AuthenticationError(props);
|
|
56
|
+
}
|
|
57
|
+
if (code === 497) {
|
|
58
|
+
return new AuthorizationError(props);
|
|
59
|
+
}
|
|
60
|
+
if (clickhouseSyntaxErrorCodes.has(code)) {
|
|
61
|
+
return new SqlSyntaxError(props);
|
|
62
|
+
}
|
|
63
|
+
if (code === 159 || code === 469) {
|
|
64
|
+
return new StatementTimeoutError(props);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return fallback === "connection" ? new ConnectionError(props) : new UnknownError(props);
|
|
68
|
+
};
|
|
21
69
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
70
|
+
* Unique runtime identifier used to tag `ClickhouseClient` values.
|
|
71
|
+
*
|
|
72
|
+
* @category type IDs
|
|
73
|
+
* @since 4.0.0
|
|
24
74
|
*/
|
|
25
75
|
export const TypeId = "~@effect/sql-clickhouse/ClickhouseClient";
|
|
26
76
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
77
|
+
* Service tag for the active ClickHouse SQL client.
|
|
78
|
+
*
|
|
79
|
+
* **When to use**
|
|
80
|
+
*
|
|
81
|
+
* Use to access or provide a ClickHouse SQL client through the Effect context.
|
|
82
|
+
*
|
|
83
|
+
* @category services
|
|
84
|
+
* @since 4.0.0
|
|
29
85
|
*/
|
|
30
|
-
export const ClickhouseClient = /*#__PURE__*/
|
|
86
|
+
export const ClickhouseClient = /*#__PURE__*/Context.Service("@effect/sql-clickhouse/ClickhouseClient");
|
|
31
87
|
/**
|
|
88
|
+
* Creates a scoped `ClickhouseClient`, verifies connectivity with `SELECT 1`,
|
|
89
|
+
* closes the underlying client when the scope ends, maps ClickHouse failures
|
|
90
|
+
* to `SqlError`, and aborts plus kills in-flight queries when interrupted.
|
|
91
|
+
*
|
|
32
92
|
* @category constructors
|
|
33
|
-
* @since
|
|
93
|
+
* @since 4.0.0
|
|
34
94
|
*/
|
|
35
95
|
export const make = options => Effect.gen(function* () {
|
|
36
96
|
const compiler = makeCompiler(options.transformQueryNames);
|
|
@@ -41,14 +101,16 @@ export const make = options => Effect.gen(function* () {
|
|
|
41
101
|
query: "SELECT 1"
|
|
42
102
|
}),
|
|
43
103
|
catch: cause => new SqlError({
|
|
44
|
-
cause,
|
|
45
|
-
message: "ClickhouseClient: Failed to connect"
|
|
104
|
+
reason: classifyError(cause, "ClickhouseClient: Failed to connect", "connect", "connection")
|
|
46
105
|
})
|
|
47
106
|
}), () => Effect.promise(() => client.close())).pipe(Effect.timeoutOrElse({
|
|
48
107
|
duration: Duration.seconds(5),
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
108
|
+
orElse: () => Effect.fail(new SqlError({
|
|
109
|
+
reason: new ConnectionError({
|
|
110
|
+
message: "ClickhouseClient: Connection timeout",
|
|
111
|
+
cause: new Error("connection timeout"),
|
|
112
|
+
operation: "connect"
|
|
113
|
+
})
|
|
52
114
|
}))
|
|
53
115
|
}));
|
|
54
116
|
class ConnectionImpl {
|
|
@@ -75,8 +137,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
75
137
|
query_id: queryId,
|
|
76
138
|
clickhouse_settings: settings
|
|
77
139
|
}).then(result => resume(Effect.succeed(result)), cause => resume(Effect.fail(new SqlError({
|
|
78
|
-
cause,
|
|
79
|
-
message: "Failed to execute statement"
|
|
140
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
80
141
|
}))));
|
|
81
142
|
} else {
|
|
82
143
|
this.conn.query({
|
|
@@ -87,8 +148,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
87
148
|
clickhouse_settings: settings,
|
|
88
149
|
format
|
|
89
150
|
}).then(result => resume(Effect.succeed(result)), cause => resume(Effect.fail(new SqlError({
|
|
90
|
-
cause,
|
|
91
|
-
message: "Failed to execute statement"
|
|
151
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
92
152
|
}))));
|
|
93
153
|
}
|
|
94
154
|
return Effect.suspend(() => {
|
|
@@ -117,6 +177,9 @@ export const make = options => Effect.gen(function* () {
|
|
|
117
177
|
executeValues(sql, params) {
|
|
118
178
|
return this.run(sql, params, "JSONCompact");
|
|
119
179
|
}
|
|
180
|
+
executeValuesUnprepared(sql, params) {
|
|
181
|
+
return this.executeValues(sql, params);
|
|
182
|
+
}
|
|
120
183
|
executeUnprepared(sql, params, transformRows) {
|
|
121
184
|
return this.execute(sql, params, transformRows);
|
|
122
185
|
}
|
|
@@ -128,8 +191,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
128
191
|
return NodeStream.fromReadable({
|
|
129
192
|
evaluate: () => result.stream(),
|
|
130
193
|
onError: cause => new SqlError({
|
|
131
|
-
cause,
|
|
132
|
-
message: "Failed to execute stream"
|
|
194
|
+
reason: classifyError(cause, "Failed to execute stream", "stream")
|
|
133
195
|
})
|
|
134
196
|
});
|
|
135
197
|
}), Stream.unwrap, Stream.chunks, Stream.mapEffect(chunk => {
|
|
@@ -142,8 +204,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
142
204
|
return Effect.tryPromise({
|
|
143
205
|
try: () => Promise.all(promises).then(rows => transformRows ? transformRows(rows) : rows),
|
|
144
206
|
catch: cause => new SqlError({
|
|
145
|
-
cause,
|
|
146
|
-
message: "Failed to parse row"
|
|
207
|
+
reason: classifyError(cause, "Failed to parse row", "parseRow")
|
|
147
208
|
})
|
|
148
209
|
});
|
|
149
210
|
}), Stream.flattenIterable);
|
|
@@ -178,8 +239,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
178
239
|
query_id: queryId,
|
|
179
240
|
clickhouse_settings: settings
|
|
180
241
|
}).then(result => resume(Effect.succeed(result)), cause => resume(Effect.fail(new SqlError({
|
|
181
|
-
cause,
|
|
182
|
-
message: "Failed to insert data"
|
|
242
|
+
reason: classifyError(cause, "Failed to insert data", "insert")
|
|
183
243
|
}))));
|
|
184
244
|
return Effect.suspend(() => {
|
|
185
245
|
controller.abort();
|
|
@@ -194,36 +254,51 @@ export const make = options => Effect.gen(function* () {
|
|
|
194
254
|
});
|
|
195
255
|
});
|
|
196
256
|
/**
|
|
197
|
-
*
|
|
198
|
-
*
|
|
257
|
+
* Fiber reference read by the low-level ClickHouse connection to choose query
|
|
258
|
+
* or command execution for statements; defaults to `query`.
|
|
259
|
+
*
|
|
260
|
+
* @category references
|
|
261
|
+
* @since 4.0.0
|
|
199
262
|
*/
|
|
200
|
-
export const ClientMethod = /*#__PURE__*/
|
|
263
|
+
export const ClientMethod = /*#__PURE__*/Context.Reference("@effect/sql-clickhouse/ClickhouseClient/ClientMethod", {
|
|
201
264
|
defaultValue: () => "query"
|
|
202
265
|
});
|
|
203
266
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
267
|
+
* Fiber reference for the ClickHouse `query_id` applied to queries and
|
|
268
|
+
* inserts; a random UUID is generated when no query ID is set.
|
|
269
|
+
*
|
|
270
|
+
* @category references
|
|
271
|
+
* @since 4.0.0
|
|
206
272
|
*/
|
|
207
|
-
export const QueryId = /*#__PURE__*/
|
|
273
|
+
export const QueryId = /*#__PURE__*/Context.Reference("@effect/sql-clickhouse/ClickhouseClient/QueryId", {
|
|
208
274
|
defaultValue: () => undefined
|
|
209
275
|
});
|
|
210
276
|
/**
|
|
211
|
-
*
|
|
212
|
-
*
|
|
277
|
+
* Fiber reference containing ClickHouse settings to attach to queries,
|
|
278
|
+
* commands, and inserts.
|
|
279
|
+
*
|
|
280
|
+
* @category references
|
|
281
|
+
* @since 4.0.0
|
|
213
282
|
*/
|
|
214
|
-
export const ClickhouseSettings = /*#__PURE__*/
|
|
283
|
+
export const ClickhouseSettings = /*#__PURE__*/Context.Reference("@effect/sql-clickhouse/ClickhouseClient/ClickhouseSettings", {
|
|
215
284
|
defaultValue: () => ({})
|
|
216
285
|
});
|
|
217
286
|
/**
|
|
287
|
+
* Provides both `ClickhouseClient` and generic `SqlClient` services from a
|
|
288
|
+
* `Config`-backed ClickHouse client configuration.
|
|
289
|
+
*
|
|
218
290
|
* @category layers
|
|
219
|
-
* @since
|
|
291
|
+
* @since 4.0.0
|
|
220
292
|
*/
|
|
221
|
-
export const layerConfig = config => Layer.
|
|
293
|
+
export const layerConfig = config => Layer.effectContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(ClickhouseClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
222
294
|
/**
|
|
295
|
+
* Provides both `ClickhouseClient` and generic `SqlClient` services from a
|
|
296
|
+
* ClickHouse client configuration.
|
|
297
|
+
*
|
|
223
298
|
* @category layers
|
|
224
|
-
* @since
|
|
299
|
+
* @since 4.0.0
|
|
225
300
|
*/
|
|
226
|
-
export const layer = config => Layer.
|
|
301
|
+
export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(ClickhouseClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
227
302
|
const typeFromUnknown = value => {
|
|
228
303
|
if (Statement.isFragment(value)) {
|
|
229
304
|
return typeFromUnknown(value.segments[0]);
|
|
@@ -249,8 +324,12 @@ const typeFromUnknown = value => {
|
|
|
249
324
|
}
|
|
250
325
|
};
|
|
251
326
|
/**
|
|
327
|
+
* Creates the SQL statement compiler for ClickHouse, emitting typed
|
|
328
|
+
* `{pN: Type}` placeholders and escaping identifiers with an optional query
|
|
329
|
+
* name transform.
|
|
330
|
+
*
|
|
252
331
|
* @category compiler
|
|
253
|
-
* @since
|
|
332
|
+
* @since 4.0.0
|
|
254
333
|
*/
|
|
255
334
|
export const makeCompiler = transform => Statement.makeCompiler({
|
|
256
335
|
dialect: "sqlite",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickhouseClient.js","names":["Clickhouse","NodeStream","Config","Duration","Effect","Fiber","dual","Layer","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","Crypto","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","TypeId","ClickhouseClient","Service","make","options","gen","compiler","makeCompiler","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","client","createClient","acquireRelease","tryPromise","try","exec","query","catch","cause","message","promise","close","pipe","timeoutOrElse","duration","seconds","onTimeout","fail","Error","ConnectionImpl","conn","constructor","runRaw","sql","params","format","paramsObj","i","length","withFiber","fiber","method","getRef","ClientMethod","callback","resume","queryId","QueryId","randomUUID","settings","ClickhouseSettings","controller","AbortController","command","query_params","abort_signal","signal","query_id","clickhouse_settings","then","result","succeed","suspend","abort","run","flatMap","json","data","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","empty","fromReadable","evaluate","stream","onError","unwrap","chunks","mapEffect","chunk","promises","rows","row","push","Promise","all","flattenIterable","connection","Object","assign","acquirer","spanAttributes","entries","database","beginTransaction","config","param","dataType","value","fragment","clickhouseParam","asCommand","effect","provideService","insertQuery","getCurrent","insert","withQueryId","withClickhouseSettings","Reference","defaultValue","layerConfig","effectServices","asEffect","add","SqlClient","provide","layer","typeFromUnknown","isFragment","segments","isClickhouseParam","paramA","Array","isArray","Date","transform","dialect","placeholder","u","onIdentifier","withoutTransform","escape","onRecordUpdate","onCustom","type","paramB","defaultEscape","custom","isCustom"],"sources":["../src/ClickhouseClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ClickhouseClient.js","names":["Clickhouse","NodeStream","Config","Context","Duration","Effect","Fiber","dual","Layer","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","SqlError","SqlSyntaxError","StatementTimeoutError","UnknownError","Statement","Crypto","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","clickhouseCodeFromCause","cause","undefined","code","parsed","Number","isNaN","clickhouseSyntaxErrorCodes","Set","classifyError","message","operation","fallback","props","has","TypeId","ClickhouseClient","Service","make","options","gen","compiler","makeCompiler","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","client","createClient","acquireRelease","tryPromise","try","exec","query","catch","reason","promise","close","pipe","timeoutOrElse","duration","seconds","orElse","fail","Error","ConnectionImpl","conn","constructor","runRaw","sql","params","format","paramsObj","i","length","withFiber","fiber","method","getRef","ClientMethod","callback","resume","queryId","QueryId","randomUUID","settings","ClickhouseSettings","controller","AbortController","command","query_params","abort_signal","signal","query_id","clickhouse_settings","then","result","succeed","suspend","abort","run","flatMap","json","data","execute","map","executeRaw","executeValues","executeValuesUnprepared","executeUnprepared","executeStream","empty","fromReadable","evaluate","stream","onError","unwrap","chunks","mapEffect","chunk","promises","rows","row","push","Promise","all","flattenIterable","connection","Object","assign","acquirer","spanAttributes","entries","database","beginTransaction","config","param","dataType","value","fragment","clickhouseParam","asCommand","effect","provideService","insertQuery","getCurrent","insert","withQueryId","withClickhouseSettings","Reference","defaultValue","layerConfig","effectContext","add","SqlClient","provide","layer","typeFromUnknown","isFragment","segments","isClickhouseParam","paramA","Array","isArray","Date","transform","dialect","placeholder","u","onIdentifier","withoutTransform","escape","onRecordUpdate","onCustom","type","paramB","defaultEscape","custom","isCustom"],"sources":["../src/ClickhouseClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ClickHouse adapter for the shared Effect SQL migration runner.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the common `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers that apply ordered migrations through the
|
|
6
|
+
* current ClickHouse `SqlClient`. `run` returns the applied migration IDs and
|
|
7
|
+
* names, while `layer` runs the migrations during layer construction and
|
|
8
|
+
* provides no services.
|
|
9
|
+
*
|
|
10
|
+
* @since 4.0.0
|
|
3
11
|
*/
|
|
4
12
|
import type * as Effect from "effect/Effect";
|
|
5
13
|
import * as Layer from "effect/Layer";
|
|
@@ -7,17 +15,23 @@ import * as Migrator from "effect/unstable/sql/Migrator";
|
|
|
7
15
|
import type * as Client from "effect/unstable/sql/SqlClient";
|
|
8
16
|
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
9
17
|
/**
|
|
10
|
-
* @since
|
|
18
|
+
* @since 4.0.0
|
|
11
19
|
*/
|
|
12
20
|
export * from "effect/unstable/sql/Migrator";
|
|
13
21
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
22
|
+
* Runs SQL migrations for ClickHouse using the supplied migrator options and
|
|
23
|
+
* returns the applied migration IDs and names.
|
|
24
|
+
*
|
|
25
|
+
* @category constructors
|
|
26
|
+
* @since 4.0.0
|
|
16
27
|
*/
|
|
17
28
|
export declare const run: <R2 = never>({ loader, schemaDirectory, table }: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, Client.SqlClient | R2>;
|
|
18
29
|
/**
|
|
30
|
+
* Creates a layer that runs the configured ClickHouse migrations during layer
|
|
31
|
+
* construction and provides no services.
|
|
32
|
+
*
|
|
19
33
|
* @category layers
|
|
20
|
-
* @since
|
|
34
|
+
* @since 4.0.0
|
|
21
35
|
*/
|
|
22
36
|
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, Client.SqlClient | R>;
|
|
23
37
|
//# sourceMappingURL=ClickhouseMigrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickhouseMigrator.d.ts","sourceRoot":"","sources":["../src/ClickhouseMigrator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ClickhouseMigrator.d.ts","sourceRoot":"","sources":["../src/ClickhouseMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAC7D,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,EAAE,CACF,CAAA;AAErB;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACgB,CAAA"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import * as Layer from "effect/Layer";
|
|
2
2
|
import * as Migrator from "effect/unstable/sql/Migrator";
|
|
3
3
|
/**
|
|
4
|
-
* @since
|
|
4
|
+
* @since 4.0.0
|
|
5
5
|
*/
|
|
6
6
|
export * from "effect/unstable/sql/Migrator";
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Runs SQL migrations for ClickHouse using the supplied migrator options and
|
|
9
|
+
* returns the applied migration IDs and names.
|
|
10
|
+
*
|
|
11
|
+
* @category constructors
|
|
12
|
+
* @since 4.0.0
|
|
10
13
|
*/
|
|
11
14
|
export const run = /*#__PURE__*/Migrator.make({});
|
|
12
15
|
/**
|
|
16
|
+
* Creates a layer that runs the configured ClickHouse migrations during layer
|
|
17
|
+
* construction and provides no services.
|
|
18
|
+
*
|
|
13
19
|
* @category layers
|
|
14
|
-
* @since
|
|
20
|
+
* @since 4.0.0
|
|
15
21
|
*/
|
|
16
22
|
export const layer = options => Layer.effectDiscard(run(options));
|
|
17
23
|
//# sourceMappingURL=ClickhouseMigrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickhouseMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/ClickhouseMigrator.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClickhouseMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/ClickhouseMigrator.ts"],"sourcesContent":[null],"mappings":"AAYA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;;;;AAOA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC,EAAE,CAAC;AAErB;;;;;;;AAOA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAKjCL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* @since
|
|
5
|
+
* @since 4.0.0
|
|
6
6
|
*/
|
|
7
7
|
export * as ClickhouseClient from "./ClickhouseClient.ts";
|
|
8
8
|
/**
|
|
9
|
-
* @since
|
|
9
|
+
* @since 4.0.0
|
|
10
10
|
*/
|
|
11
11
|
export * as ClickhouseMigrator from "./ClickhouseMigrator.ts";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
5
5
|
/**
|
|
6
|
-
* @since
|
|
6
|
+
* @since 4.0.0
|
|
7
7
|
*/
|
|
8
8
|
export * as ClickhouseClient from "./ClickhouseClient.js";
|
|
9
9
|
/**
|
|
10
|
-
* @since
|
|
10
|
+
* @since 4.0.0
|
|
11
11
|
*/
|
|
12
12
|
export * as ClickhouseMigrator from "./ClickhouseMigrator.js";
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-clickhouse",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.91",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A Clickhouse toolkit for Effect",
|
|
@@ -43,15 +43,15 @@
|
|
|
43
43
|
"provenance": true
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@effect/platform-node": "^4.0.0-beta.
|
|
47
|
-
"effect": "^4.0.0-beta.
|
|
46
|
+
"@effect/platform-node": "^4.0.0-beta.91",
|
|
47
|
+
"effect": "^4.0.0-beta.91"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@effect/platform-node": "^4.0.0-beta.
|
|
51
|
-
"effect": "^4.0.0-beta.
|
|
50
|
+
"@effect/platform-node": "^4.0.0-beta.91",
|
|
51
|
+
"effect": "^4.0.0-beta.91"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@clickhouse/client": "^1.
|
|
54
|
+
"@clickhouse/client": "^1.18.4"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"codegen": "effect-utils codegen",
|
package/src/ClickhouseClient.ts
CHANGED
|
@@ -1,21 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ClickHouse driver for Effect SQL, backed by `@clickhouse/client`.
|
|
3
|
+
*
|
|
4
|
+
* This module provides both the ClickHouse-specific {@link ClickhouseClient}
|
|
5
|
+
* service and the generic {@link Client.SqlClient} service. `make` creates a
|
|
6
|
+
* scoped client, checks the connection with `SELECT 1`, maps ClickHouse errors
|
|
7
|
+
* to `SqlError`, and aborts in-flight queries when interrupted. The
|
|
8
|
+
* ClickHouse-specific service adds typed parameters, command execution, insert
|
|
9
|
+
* queries, query id and settings helpers, a statement compiler, and direct or
|
|
10
|
+
* config-backed layers.
|
|
11
|
+
*
|
|
12
|
+
* @since 4.0.0
|
|
3
13
|
*/
|
|
4
14
|
import * as Clickhouse from "@clickhouse/client"
|
|
5
15
|
import * as NodeStream from "@effect/platform-node/NodeStream"
|
|
6
16
|
import * as Config from "effect/Config"
|
|
17
|
+
import * as Context from "effect/Context"
|
|
7
18
|
import * as Duration from "effect/Duration"
|
|
8
19
|
import * as Effect from "effect/Effect"
|
|
9
20
|
import * as Fiber from "effect/Fiber"
|
|
10
21
|
import { dual } from "effect/Function"
|
|
11
22
|
import * as Layer from "effect/Layer"
|
|
12
23
|
import type * as Scope from "effect/Scope"
|
|
13
|
-
import * as ServiceMap from "effect/ServiceMap"
|
|
14
24
|
import * as Stream from "effect/Stream"
|
|
15
25
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity"
|
|
16
26
|
import * as Client from "effect/unstable/sql/SqlClient"
|
|
17
27
|
import type { Connection } from "effect/unstable/sql/SqlConnection"
|
|
18
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
AuthenticationError,
|
|
30
|
+
AuthorizationError,
|
|
31
|
+
ConnectionError,
|
|
32
|
+
SqlError,
|
|
33
|
+
SqlSyntaxError,
|
|
34
|
+
StatementTimeoutError,
|
|
35
|
+
UnknownError
|
|
36
|
+
} from "effect/unstable/sql/SqlError"
|
|
19
37
|
import * as Statement from "effect/unstable/sql/Statement"
|
|
20
38
|
import * as Crypto from "node:crypto"
|
|
21
39
|
import type { Readable } from "node:stream"
|
|
@@ -23,21 +41,71 @@ import type { Readable } from "node:stream"
|
|
|
23
41
|
const ATTR_DB_SYSTEM_NAME = "db.system.name"
|
|
24
42
|
const ATTR_DB_NAMESPACE = "db.namespace"
|
|
25
43
|
|
|
44
|
+
const clickhouseCodeFromCause = (cause: unknown): number | undefined => {
|
|
45
|
+
if (typeof cause !== "object" || cause === null || !("code" in cause)) {
|
|
46
|
+
return undefined
|
|
47
|
+
}
|
|
48
|
+
const code = cause.code
|
|
49
|
+
if (typeof code === "number") {
|
|
50
|
+
return code
|
|
51
|
+
}
|
|
52
|
+
if (typeof code === "string") {
|
|
53
|
+
const parsed = Number(code)
|
|
54
|
+
return Number.isNaN(parsed) ? undefined : parsed
|
|
55
|
+
}
|
|
56
|
+
return undefined
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const clickhouseSyntaxErrorCodes = new Set([36, 60, 62, 242])
|
|
60
|
+
|
|
61
|
+
const classifyError = (
|
|
62
|
+
cause: unknown,
|
|
63
|
+
message: string,
|
|
64
|
+
operation: string,
|
|
65
|
+
fallback: "connection" | "unknown" = "unknown"
|
|
66
|
+
) => {
|
|
67
|
+
const props = { cause, message, operation }
|
|
68
|
+
const code = clickhouseCodeFromCause(cause)
|
|
69
|
+
if (code !== undefined) {
|
|
70
|
+
if (code === 516) {
|
|
71
|
+
return new AuthenticationError(props)
|
|
72
|
+
}
|
|
73
|
+
if (code === 497) {
|
|
74
|
+
return new AuthorizationError(props)
|
|
75
|
+
}
|
|
76
|
+
if (clickhouseSyntaxErrorCodes.has(code)) {
|
|
77
|
+
return new SqlSyntaxError(props)
|
|
78
|
+
}
|
|
79
|
+
if (code === 159 || code === 469) {
|
|
80
|
+
return new StatementTimeoutError(props)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return fallback === "connection" ? new ConnectionError(props) : new UnknownError(props)
|
|
84
|
+
}
|
|
85
|
+
|
|
26
86
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
87
|
+
* Unique runtime identifier used to tag `ClickhouseClient` values.
|
|
88
|
+
*
|
|
89
|
+
* @category type IDs
|
|
90
|
+
* @since 4.0.0
|
|
29
91
|
*/
|
|
30
92
|
export const TypeId: TypeId = "~@effect/sql-clickhouse/ClickhouseClient"
|
|
31
93
|
|
|
32
94
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
95
|
+
* Type-level literal for the `ClickhouseClient` runtime identifier.
|
|
96
|
+
*
|
|
97
|
+
* @category type IDs
|
|
98
|
+
* @since 4.0.0
|
|
35
99
|
*/
|
|
36
100
|
export type TypeId = "~@effect/sql-clickhouse/ClickhouseClient"
|
|
37
101
|
|
|
38
102
|
/**
|
|
103
|
+
* ClickHouse-specific `SqlClient` extension with access to its configuration,
|
|
104
|
+
* typed parameter fragments, command-mode execution, insert queries, and
|
|
105
|
+
* per-effect query ID and ClickHouse settings.
|
|
106
|
+
*
|
|
39
107
|
* @category models
|
|
40
|
-
* @since
|
|
108
|
+
* @since 4.0.0
|
|
41
109
|
*/
|
|
42
110
|
export interface ClickhouseClient extends Client.SqlClient {
|
|
43
111
|
readonly [TypeId]: TypeId
|
|
@@ -65,14 +133,24 @@ export interface ClickhouseClient extends Client.SqlClient {
|
|
|
65
133
|
}
|
|
66
134
|
|
|
67
135
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
136
|
+
* Service tag for the active ClickHouse SQL client.
|
|
137
|
+
*
|
|
138
|
+
* **When to use**
|
|
139
|
+
*
|
|
140
|
+
* Use to access or provide a ClickHouse SQL client through the Effect context.
|
|
141
|
+
*
|
|
142
|
+
* @category services
|
|
143
|
+
* @since 4.0.0
|
|
70
144
|
*/
|
|
71
|
-
export const ClickhouseClient =
|
|
145
|
+
export const ClickhouseClient = Context.Service<ClickhouseClient>("@effect/sql-clickhouse/ClickhouseClient")
|
|
72
146
|
|
|
73
147
|
/**
|
|
148
|
+
* Configuration for creating a ClickHouse client, combining
|
|
149
|
+
* `@clickhouse/client` options with optional span attributes and query/result
|
|
150
|
+
* name transforms.
|
|
151
|
+
*
|
|
74
152
|
* @category constructors
|
|
75
|
-
* @since
|
|
153
|
+
* @since 4.0.0
|
|
76
154
|
*/
|
|
77
155
|
export interface ClickhouseClientConfig extends Clickhouse.ClickHouseClientConfigOptions {
|
|
78
156
|
readonly spanAttributes?: Record<string, unknown> | undefined
|
|
@@ -81,8 +159,12 @@ export interface ClickhouseClientConfig extends Clickhouse.ClickHouseClientConfi
|
|
|
81
159
|
}
|
|
82
160
|
|
|
83
161
|
/**
|
|
162
|
+
* Creates a scoped `ClickhouseClient`, verifies connectivity with `SELECT 1`,
|
|
163
|
+
* closes the underlying client when the scope ends, maps ClickHouse failures
|
|
164
|
+
* to `SqlError`, and aborts plus kills in-flight queries when interrupted.
|
|
165
|
+
*
|
|
84
166
|
* @category constructors
|
|
85
|
-
* @since
|
|
167
|
+
* @since 4.0.0
|
|
86
168
|
*/
|
|
87
169
|
export const make = (
|
|
88
170
|
options: ClickhouseClientConfig
|
|
@@ -98,17 +180,21 @@ export const make = (
|
|
|
98
180
|
yield* Effect.acquireRelease(
|
|
99
181
|
Effect.tryPromise({
|
|
100
182
|
try: () => client.exec({ query: "SELECT 1" }),
|
|
101
|
-
catch: (cause) =>
|
|
183
|
+
catch: (cause) =>
|
|
184
|
+
new SqlError({ reason: classifyError(cause, "ClickhouseClient: Failed to connect", "connect", "connection") })
|
|
102
185
|
}),
|
|
103
186
|
() => Effect.promise(() => client.close())
|
|
104
187
|
).pipe(
|
|
105
188
|
Effect.timeoutOrElse({
|
|
106
189
|
duration: Duration.seconds(5),
|
|
107
|
-
|
|
190
|
+
orElse: () =>
|
|
108
191
|
Effect.fail(
|
|
109
192
|
new SqlError({
|
|
110
|
-
|
|
111
|
-
|
|
193
|
+
reason: new ConnectionError({
|
|
194
|
+
message: "ClickhouseClient: Connection timeout",
|
|
195
|
+
cause: new Error("connection timeout"),
|
|
196
|
+
operation: "connect"
|
|
197
|
+
})
|
|
112
198
|
})
|
|
113
199
|
)
|
|
114
200
|
})
|
|
@@ -140,7 +226,12 @@ export const make = (
|
|
|
140
226
|
clickhouse_settings: settings
|
|
141
227
|
}).then(
|
|
142
228
|
(result) => resume(Effect.succeed(result)),
|
|
143
|
-
(cause) =>
|
|
229
|
+
(cause) =>
|
|
230
|
+
resume(
|
|
231
|
+
Effect.fail(
|
|
232
|
+
new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
233
|
+
)
|
|
234
|
+
)
|
|
144
235
|
)
|
|
145
236
|
} else {
|
|
146
237
|
this.conn.query({
|
|
@@ -152,7 +243,12 @@ export const make = (
|
|
|
152
243
|
format
|
|
153
244
|
}).then(
|
|
154
245
|
(result) => resume(Effect.succeed(result)),
|
|
155
|
-
(cause) =>
|
|
246
|
+
(cause) =>
|
|
247
|
+
resume(
|
|
248
|
+
Effect.fail(
|
|
249
|
+
new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
250
|
+
)
|
|
251
|
+
)
|
|
156
252
|
)
|
|
157
253
|
}
|
|
158
254
|
return Effect.suspend(() => {
|
|
@@ -194,6 +290,9 @@ export const make = (
|
|
|
194
290
|
executeValues(sql: string, params: ReadonlyArray<unknown>) {
|
|
195
291
|
return this.run(sql, params, "JSONCompact")
|
|
196
292
|
}
|
|
293
|
+
executeValuesUnprepared(sql: string, params: ReadonlyArray<unknown>) {
|
|
294
|
+
return this.executeValues(sql, params)
|
|
295
|
+
}
|
|
197
296
|
executeUnprepared(sql: string, params: ReadonlyArray<unknown>, transformRows?: any) {
|
|
198
297
|
return this.execute(sql, params, transformRows)
|
|
199
298
|
}
|
|
@@ -209,7 +308,7 @@ export const make = (
|
|
|
209
308
|
}
|
|
210
309
|
return NodeStream.fromReadable<ReadonlyArray<Clickhouse.Row<any, "JSONEachRow">>, SqlError>({
|
|
211
310
|
evaluate: () => result.stream() as any,
|
|
212
|
-
onError: (cause) => new SqlError({ cause,
|
|
311
|
+
onError: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute stream", "stream") })
|
|
213
312
|
})
|
|
214
313
|
}),
|
|
215
314
|
Stream.unwrap,
|
|
@@ -223,7 +322,7 @@ export const make = (
|
|
|
223
322
|
}
|
|
224
323
|
return Effect.tryPromise({
|
|
225
324
|
try: () => Promise.all(promises).then((rows) => transformRows ? transformRows(rows) : rows),
|
|
226
|
-
catch: (cause) => new SqlError({ cause,
|
|
325
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to parse row", "parseRow") })
|
|
227
326
|
})
|
|
228
327
|
}),
|
|
229
328
|
Stream.flattenIterable
|
|
@@ -272,7 +371,8 @@ export const make = (
|
|
|
272
371
|
clickhouse_settings: settings
|
|
273
372
|
}).then(
|
|
274
373
|
(result) => resume(Effect.succeed(result)),
|
|
275
|
-
(cause) =>
|
|
374
|
+
(cause) =>
|
|
375
|
+
resume(Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to insert data", "insert") })))
|
|
276
376
|
)
|
|
277
377
|
return Effect.suspend(() => {
|
|
278
378
|
controller.abort()
|
|
@@ -280,25 +380,29 @@ export const make = (
|
|
|
280
380
|
})
|
|
281
381
|
})
|
|
282
382
|
},
|
|
283
|
-
withQueryId: dual(
|
|
284
|
-
|
|
383
|
+
withQueryId: dual(
|
|
384
|
+
2,
|
|
385
|
+
<A, E, R>(effect: Effect.Effect<A, E, R>, queryId: string) => Effect.provideService(effect, QueryId, queryId)
|
|
386
|
+
),
|
|
285
387
|
withClickhouseSettings: dual(
|
|
286
388
|
2,
|
|
287
389
|
<A, E, R>(
|
|
288
390
|
effect: Effect.Effect<A, E, R>,
|
|
289
391
|
settings: NonNullable<Clickhouse.BaseQueryParams["clickhouse_settings"]>
|
|
290
|
-
) =>
|
|
291
|
-
Effect.provideService(effect, ClickhouseSettings, settings)
|
|
392
|
+
) => Effect.provideService(effect, ClickhouseSettings, settings)
|
|
292
393
|
)
|
|
293
394
|
}
|
|
294
395
|
)
|
|
295
396
|
})
|
|
296
397
|
|
|
297
398
|
/**
|
|
298
|
-
*
|
|
299
|
-
*
|
|
399
|
+
* Fiber reference read by the low-level ClickHouse connection to choose query
|
|
400
|
+
* or command execution for statements; defaults to `query`.
|
|
401
|
+
*
|
|
402
|
+
* @category references
|
|
403
|
+
* @since 4.0.0
|
|
300
404
|
*/
|
|
301
|
-
export const ClientMethod =
|
|
405
|
+
export const ClientMethod = Context.Reference<"query" | "command" | "insert">(
|
|
302
406
|
"@effect/sql-clickhouse/ClickhouseClient/ClientMethod",
|
|
303
407
|
{
|
|
304
408
|
defaultValue: () => "query"
|
|
@@ -306,55 +410,67 @@ export const ClientMethod = ServiceMap.Reference<"query" | "command" | "insert">
|
|
|
306
410
|
)
|
|
307
411
|
|
|
308
412
|
/**
|
|
309
|
-
*
|
|
310
|
-
*
|
|
413
|
+
* Fiber reference for the ClickHouse `query_id` applied to queries and
|
|
414
|
+
* inserts; a random UUID is generated when no query ID is set.
|
|
415
|
+
*
|
|
416
|
+
* @category references
|
|
417
|
+
* @since 4.0.0
|
|
311
418
|
*/
|
|
312
|
-
export const QueryId =
|
|
419
|
+
export const QueryId = Context.Reference<string | undefined>(
|
|
313
420
|
"@effect/sql-clickhouse/ClickhouseClient/QueryId",
|
|
314
421
|
{ defaultValue: () => undefined }
|
|
315
422
|
)
|
|
316
423
|
|
|
317
424
|
/**
|
|
318
|
-
*
|
|
319
|
-
*
|
|
425
|
+
* Fiber reference containing ClickHouse settings to attach to queries,
|
|
426
|
+
* commands, and inserts.
|
|
427
|
+
*
|
|
428
|
+
* @category references
|
|
429
|
+
* @since 4.0.0
|
|
320
430
|
*/
|
|
321
|
-
export const ClickhouseSettings:
|
|
431
|
+
export const ClickhouseSettings: Context.Reference<
|
|
322
432
|
NonNullable<Clickhouse.BaseQueryParams["clickhouse_settings"]>
|
|
323
|
-
> =
|
|
433
|
+
> = Context.Reference("@effect/sql-clickhouse/ClickhouseClient/ClickhouseSettings", {
|
|
324
434
|
defaultValue: () => ({})
|
|
325
435
|
})
|
|
326
436
|
|
|
327
437
|
/**
|
|
438
|
+
* Provides both `ClickhouseClient` and generic `SqlClient` services from a
|
|
439
|
+
* `Config`-backed ClickHouse client configuration.
|
|
440
|
+
*
|
|
328
441
|
* @category layers
|
|
329
|
-
* @since
|
|
442
|
+
* @since 4.0.0
|
|
330
443
|
*/
|
|
331
444
|
export const layerConfig: (
|
|
332
445
|
config: Config.Wrap<ClickhouseClientConfig>
|
|
333
446
|
) => Layer.Layer<ClickhouseClient | Client.SqlClient, Config.ConfigError | SqlError> = (
|
|
334
447
|
config: Config.Wrap<ClickhouseClientConfig>
|
|
335
448
|
): Layer.Layer<ClickhouseClient | Client.SqlClient, Config.ConfigError | SqlError> =>
|
|
336
|
-
Layer.
|
|
337
|
-
Config.unwrap(config).
|
|
449
|
+
Layer.effectContext(
|
|
450
|
+
Config.unwrap(config).pipe(
|
|
338
451
|
Effect.flatMap(make),
|
|
339
452
|
Effect.map((client) =>
|
|
340
|
-
|
|
341
|
-
|
|
453
|
+
Context.make(ClickhouseClient, client).pipe(
|
|
454
|
+
Context.add(Client.SqlClient, client)
|
|
342
455
|
)
|
|
343
456
|
)
|
|
344
457
|
)
|
|
345
458
|
).pipe(Layer.provide(Reactivity.layer))
|
|
346
459
|
|
|
347
460
|
/**
|
|
461
|
+
* Provides both `ClickhouseClient` and generic `SqlClient` services from a
|
|
462
|
+
* ClickHouse client configuration.
|
|
463
|
+
*
|
|
348
464
|
* @category layers
|
|
349
|
-
* @since
|
|
465
|
+
* @since 4.0.0
|
|
350
466
|
*/
|
|
351
467
|
export const layer = (
|
|
352
468
|
config: ClickhouseClientConfig
|
|
353
469
|
): Layer.Layer<ClickhouseClient | Client.SqlClient, Config.ConfigError | SqlError> =>
|
|
354
|
-
Layer.
|
|
470
|
+
Layer.effectContext(
|
|
355
471
|
Effect.map(make(config), (client) =>
|
|
356
|
-
|
|
357
|
-
|
|
472
|
+
Context.make(ClickhouseClient, client).pipe(
|
|
473
|
+
Context.add(Client.SqlClient, client)
|
|
358
474
|
))
|
|
359
475
|
).pipe(Layer.provide(Reactivity.layer))
|
|
360
476
|
|
|
@@ -384,8 +500,12 @@ const typeFromUnknown = (value: unknown): string => {
|
|
|
384
500
|
}
|
|
385
501
|
|
|
386
502
|
/**
|
|
503
|
+
* Creates the SQL statement compiler for ClickHouse, emitting typed
|
|
504
|
+
* `{pN: Type}` placeholders and escaping identifiers with an optional query
|
|
505
|
+
* name transform.
|
|
506
|
+
*
|
|
387
507
|
* @category compiler
|
|
388
|
-
* @since
|
|
508
|
+
* @since 4.0.0
|
|
389
509
|
*/
|
|
390
510
|
export const makeCompiler = (transform?: (_: string) => string) =>
|
|
391
511
|
Statement.makeCompiler<ClickhouseCustom>({
|
|
@@ -411,14 +531,17 @@ export const makeCompiler = (transform?: (_: string) => string) =>
|
|
|
411
531
|
const escape = Statement.defaultEscape("\"")
|
|
412
532
|
|
|
413
533
|
/**
|
|
534
|
+
* Custom SQL fragment type used for ClickHouse typed parameters created by
|
|
535
|
+
* `ClickhouseClient.param`.
|
|
536
|
+
*
|
|
414
537
|
* @category custom types
|
|
415
|
-
* @since
|
|
538
|
+
* @since 4.0.0
|
|
416
539
|
*/
|
|
417
540
|
export type ClickhouseCustom = ClickhouseParam
|
|
418
541
|
|
|
419
542
|
/**
|
|
420
543
|
* @category custom types
|
|
421
|
-
* @since
|
|
544
|
+
* @since 4.0.0
|
|
422
545
|
*/
|
|
423
546
|
interface ClickhouseParam extends Statement.Custom<"ClickhouseParam", string, unknown> {}
|
|
424
547
|
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ClickHouse adapter for the shared Effect SQL migration runner.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the common `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers that apply ordered migrations through the
|
|
6
|
+
* current ClickHouse `SqlClient`. `run` returns the applied migration IDs and
|
|
7
|
+
* names, while `layer` runs the migrations during layer construction and
|
|
8
|
+
* provides no services.
|
|
9
|
+
*
|
|
10
|
+
* @since 4.0.0
|
|
3
11
|
*/
|
|
4
12
|
import type * as Effect from "effect/Effect"
|
|
5
13
|
import * as Layer from "effect/Layer"
|
|
@@ -8,13 +16,16 @@ import type * as Client from "effect/unstable/sql/SqlClient"
|
|
|
8
16
|
import type { SqlError } from "effect/unstable/sql/SqlError"
|
|
9
17
|
|
|
10
18
|
/**
|
|
11
|
-
* @since
|
|
19
|
+
* @since 4.0.0
|
|
12
20
|
*/
|
|
13
21
|
export * from "effect/unstable/sql/Migrator"
|
|
14
22
|
|
|
15
23
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
24
|
+
* Runs SQL migrations for ClickHouse using the supplied migrator options and
|
|
25
|
+
* returns the applied migration IDs and names.
|
|
26
|
+
*
|
|
27
|
+
* @category constructors
|
|
28
|
+
* @since 4.0.0
|
|
18
29
|
*/
|
|
19
30
|
export const run: <R2 = never>(
|
|
20
31
|
{ loader, schemaDirectory, table }: Migrator.MigratorOptions<R2>
|
|
@@ -25,8 +36,11 @@ export const run: <R2 = never>(
|
|
|
25
36
|
> = Migrator.make({})
|
|
26
37
|
|
|
27
38
|
/**
|
|
39
|
+
* Creates a layer that runs the configured ClickHouse migrations during layer
|
|
40
|
+
* construction and provides no services.
|
|
41
|
+
*
|
|
28
42
|
* @category layers
|
|
29
|
-
* @since
|
|
43
|
+
* @since 4.0.0
|
|
30
44
|
*/
|
|
31
45
|
export const layer = <R>(
|
|
32
46
|
options: Migrator.MigratorOptions<R>
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @since
|
|
8
|
+
* @since 4.0.0
|
|
9
9
|
*/
|
|
10
10
|
export * as ClickhouseClient from "./ClickhouseClient.ts"
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* @since
|
|
13
|
+
* @since 4.0.0
|
|
14
14
|
*/
|
|
15
15
|
export * as ClickhouseMigrator from "./ClickhouseMigrator.ts"
|