@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.
@@ -1,30 +1,48 @@
1
1
  /**
2
- * @since 1.0.0
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
- * @category type ids
17
- * @since 1.0.0
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
- * @category type ids
22
- * @since 1.0.0
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 1.0.0
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
- * @category tags
50
- * @since 1.0.0
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: ServiceMap.Service<ClickhouseClient, 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 1.0.0
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 1.0.0
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
- * @category References
69
- * @since 1.0.0
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: ServiceMap.Reference<"query" | "command" | "insert">;
106
+ export declare const ClientMethod: Context.Reference<"query" | "command" | "insert">;
72
107
  /**
73
- * @category References
74
- * @since 1.0.0
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: ServiceMap.Reference<string | undefined>;
114
+ export declare const QueryId: Context.Reference<string | undefined>;
77
115
  /**
78
- * @category References
79
- * @since 1.0.0
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: ServiceMap.Reference<NonNullable<Clickhouse.BaseQueryParams["clickhouse_settings"]>>;
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 1.0.0
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 1.0.0
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 1.0.0
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 1.0.0
153
+ * @since 4.0.0
100
154
  */
101
155
  export type ClickhouseCustom = ClickhouseParam;
102
156
  /**
103
157
  * @category custom types
104
- * @since 1.0.0
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":"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"}
1
+ {"version":3,"file":"ClickhouseClient.d.ts","sourceRoot":"","sources":["../src/ClickhouseClient.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,96 @@
1
1
  /**
2
- * @since 1.0.0
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
- * @category type ids
23
- * @since 1.0.0
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
- * @category tags
28
- * @since 1.0.0
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__*/ServiceMap.Service("@effect/sql-clickhouse/ClickhouseClient");
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 1.0.0
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
- onTimeout: () => Effect.fail(new SqlError({
50
- message: "ClickhouseClient: Connection timeout",
51
- cause: new Error("connection timeout")
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
- * @category References
198
- * @since 1.0.0
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__*/ServiceMap.Reference("@effect/sql-clickhouse/ClickhouseClient/ClientMethod", {
263
+ export const ClientMethod = /*#__PURE__*/Context.Reference("@effect/sql-clickhouse/ClickhouseClient/ClientMethod", {
201
264
  defaultValue: () => "query"
202
265
  });
203
266
  /**
204
- * @category References
205
- * @since 1.0.0
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__*/ServiceMap.Reference("@effect/sql-clickhouse/ClickhouseClient/QueryId", {
273
+ export const QueryId = /*#__PURE__*/Context.Reference("@effect/sql-clickhouse/ClickhouseClient/QueryId", {
208
274
  defaultValue: () => undefined
209
275
  });
210
276
  /**
211
- * @category References
212
- * @since 1.0.0
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__*/ServiceMap.Reference("@effect/sql-clickhouse/ClickhouseClient/ClickhouseSettings", {
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 1.0.0
291
+ * @since 4.0.0
220
292
  */
221
- export const layerConfig = config => Layer.effectServices(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => ServiceMap.make(ClickhouseClient, client).pipe(ServiceMap.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.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 1.0.0
299
+ * @since 4.0.0
225
300
  */
226
- export const layer = config => Layer.effectServices(Effect.map(make(config), client => ServiceMap.make(ClickhouseClient, client).pipe(ServiceMap.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.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 1.0.0
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
- * @since 1.0.0
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 1.0.0
18
+ * @since 4.0.0
11
19
  */
12
20
  export * from "effect/unstable/sql/Migrator";
13
21
  /**
14
- * @category constructor
15
- * @since 1.0.0
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 1.0.0
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;;GAEG;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;;;GAGG;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;;;GAGG;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
+ {"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 1.0.0
4
+ * @since 4.0.0
5
5
  */
6
6
  export * from "effect/unstable/sql/Migrator";
7
7
  /**
8
- * @category constructor
9
- * @since 1.0.0
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 1.0.0
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":"AAIA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;AAIA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC,EAAE,CAAC;AAErB;;;;AAIA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAKjCL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
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 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  /**
5
- * @since 1.0.0
5
+ * @since 4.0.0
6
6
  */
7
7
  export * as ClickhouseClient from "./ClickhouseClient.ts";
8
8
  /**
9
- * @since 1.0.0
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 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  // @barrel: Auto-generated exports. Do not edit manually.
5
5
  /**
6
- * @since 1.0.0
6
+ * @since 4.0.0
7
7
  */
8
8
  export * as ClickhouseClient from "./ClickhouseClient.js";
9
9
  /**
10
- * @since 1.0.0
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.9",
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.9",
47
- "effect": "^4.0.0-beta.9"
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.9",
51
- "effect": "^4.0.0-beta.9"
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.16.0"
54
+ "@clickhouse/client": "^1.18.4"
55
55
  },
56
56
  "scripts": {
57
57
  "codegen": "effect-utils codegen",
@@ -1,21 +1,39 @@
1
1
  /**
2
- * @since 1.0.0
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 { SqlError } from "effect/unstable/sql/SqlError"
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
- * @category type ids
28
- * @since 1.0.0
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
- * @category type ids
34
- * @since 1.0.0
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 1.0.0
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
- * @category tags
69
- * @since 1.0.0
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 = ServiceMap.Service<ClickhouseClient>("@effect/sql-clickhouse/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 1.0.0
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 1.0.0
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) => new SqlError({ cause, message: "ClickhouseClient: Failed to connect" })
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
- onTimeout: () =>
190
+ orElse: () =>
108
191
  Effect.fail(
109
192
  new SqlError({
110
- message: "ClickhouseClient: Connection timeout",
111
- cause: new Error("connection timeout")
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) => resume(Effect.fail(new SqlError({ cause, message: "Failed to execute statement" })))
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) => resume(Effect.fail(new SqlError({ cause, message: "Failed to execute statement" })))
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, message: "Failed to execute stream" })
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, message: "Failed to parse row" })
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) => resume(Effect.fail(new SqlError({ cause, message: "Failed to insert data" })))
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(2, <A, E, R>(effect: Effect.Effect<A, E, R>, queryId: string) =>
284
- Effect.provideService(effect, QueryId, queryId)),
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
- * @category References
299
- * @since 1.0.0
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 = ServiceMap.Reference<"query" | "command" | "insert">(
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
- * @category References
310
- * @since 1.0.0
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 = ServiceMap.Reference<string | undefined>(
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
- * @category References
319
- * @since 1.0.0
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: ServiceMap.Reference<
431
+ export const ClickhouseSettings: Context.Reference<
322
432
  NonNullable<Clickhouse.BaseQueryParams["clickhouse_settings"]>
323
- > = ServiceMap.Reference("@effect/sql-clickhouse/ClickhouseClient/ClickhouseSettings", {
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 1.0.0
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.effectServices(
337
- Config.unwrap(config).asEffect().pipe(
449
+ Layer.effectContext(
450
+ Config.unwrap(config).pipe(
338
451
  Effect.flatMap(make),
339
452
  Effect.map((client) =>
340
- ServiceMap.make(ClickhouseClient, client).pipe(
341
- ServiceMap.add(Client.SqlClient, client)
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 1.0.0
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.effectServices(
470
+ Layer.effectContext(
355
471
  Effect.map(make(config), (client) =>
356
- ServiceMap.make(ClickhouseClient, client).pipe(
357
- ServiceMap.add(Client.SqlClient, client)
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 1.0.0
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 1.0.0
538
+ * @since 4.0.0
416
539
  */
417
540
  export type ClickhouseCustom = ClickhouseParam
418
541
 
419
542
  /**
420
543
  * @category custom types
421
- * @since 1.0.0
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
- * @since 1.0.0
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 1.0.0
19
+ * @since 4.0.0
12
20
  */
13
21
  export * from "effect/unstable/sql/Migrator"
14
22
 
15
23
  /**
16
- * @category constructor
17
- * @since 1.0.0
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 1.0.0
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 1.0.0
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 1.0.0
8
+ * @since 4.0.0
9
9
  */
10
10
  export * as ClickhouseClient from "./ClickhouseClient.ts"
11
11
 
12
12
  /**
13
- * @since 1.0.0
13
+ * @since 4.0.0
14
14
  */
15
15
  export * as ClickhouseMigrator from "./ClickhouseMigrator.ts"