@clickhouse/client 1.22.0 → 1.23.0-head.c8dc8d8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/client.d.ts +2 -2
- package/dist/client.js +3 -3
- package/dist/client.js.map +1 -1
- package/dist/common/clickhouse_types.d.ts +98 -0
- package/dist/common/clickhouse_types.js +30 -0
- package/dist/common/clickhouse_types.js.map +1 -0
- package/dist/common/client.d.ts +233 -0
- package/dist/common/client.js +414 -0
- package/dist/common/client.js.map +1 -0
- package/dist/common/config.d.ts +234 -0
- package/dist/common/config.js +364 -0
- package/dist/common/config.js.map +1 -0
- package/dist/common/connection.d.ts +124 -0
- package/dist/common/connection.js +3 -0
- package/dist/common/connection.js.map +1 -0
- package/dist/common/data_formatter/format_query_params.d.ts +11 -0
- package/dist/common/data_formatter/format_query_params.js +128 -0
- package/dist/common/data_formatter/format_query_params.js.map +1 -0
- package/dist/common/data_formatter/format_query_settings.d.ts +2 -0
- package/dist/common/data_formatter/format_query_settings.js +20 -0
- package/dist/common/data_formatter/format_query_settings.js.map +1 -0
- package/dist/common/data_formatter/formatter.d.ts +41 -0
- package/dist/common/data_formatter/formatter.js +78 -0
- package/dist/common/data_formatter/formatter.js.map +1 -0
- package/dist/common/data_formatter/index.d.ts +3 -0
- package/dist/common/data_formatter/index.js +24 -0
- package/dist/common/data_formatter/index.js.map +1 -0
- package/dist/common/error/error.d.ts +20 -0
- package/dist/common/error/error.js +73 -0
- package/dist/common/error/error.js.map +1 -0
- package/dist/common/error/index.d.ts +1 -0
- package/dist/common/error/index.js +18 -0
- package/dist/common/error/index.js.map +1 -0
- package/dist/common/index.d.ts +67 -0
- package/dist/common/index.js +97 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/logger.d.ts +80 -0
- package/dist/common/logger.js +154 -0
- package/dist/common/logger.js.map +1 -0
- package/dist/common/parse/column_types.d.ts +127 -0
- package/dist/common/parse/column_types.js +586 -0
- package/dist/common/parse/column_types.js.map +1 -0
- package/dist/common/parse/index.d.ts +2 -0
- package/dist/common/parse/index.js +19 -0
- package/dist/common/parse/index.js.map +1 -0
- package/dist/common/parse/json_handling.d.ts +19 -0
- package/dist/common/parse/json_handling.js +8 -0
- package/dist/common/parse/json_handling.js.map +1 -0
- package/dist/common/result.d.ts +90 -0
- package/dist/common/result.js +3 -0
- package/dist/common/result.js.map +1 -0
- package/dist/common/settings.d.ts +1990 -0
- package/dist/common/settings.js +19 -0
- package/dist/common/settings.js.map +1 -0
- package/dist/common/tracing.d.ts +146 -0
- package/dist/common/tracing.js +76 -0
- package/dist/common/tracing.js.map +1 -0
- package/dist/common/ts_utils.d.ts +4 -0
- package/dist/common/ts_utils.js +3 -0
- package/dist/common/ts_utils.js.map +1 -0
- package/dist/common/utils/connection.d.ts +21 -0
- package/dist/common/utils/connection.js +43 -0
- package/dist/common/utils/connection.js.map +1 -0
- package/dist/common/utils/index.d.ts +5 -0
- package/dist/common/utils/index.js +22 -0
- package/dist/common/utils/index.js.map +1 -0
- package/dist/common/utils/multipart.d.ts +34 -0
- package/dist/common/utils/multipart.js +81 -0
- package/dist/common/utils/multipart.js.map +1 -0
- package/dist/common/utils/sleep.d.ts +4 -0
- package/dist/common/utils/sleep.js +12 -0
- package/dist/common/utils/sleep.js.map +1 -0
- package/dist/common/utils/stream.d.ts +15 -0
- package/dist/common/utils/stream.js +50 -0
- package/dist/common/utils/stream.js.map +1 -0
- package/dist/common/utils/url.d.ts +20 -0
- package/dist/common/utils/url.js +67 -0
- package/dist/common/utils/url.js.map +1 -0
- package/dist/common/version.d.ts +2 -0
- package/dist/common/version.js +4 -0
- package/dist/common/version.js.map +1 -0
- package/dist/config.d.ts +2 -2
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/connection/compression.d.ts +2 -2
- package/dist/connection/compression.js +4 -4
- package/dist/connection/compression.js.map +1 -1
- package/dist/connection/create_connection.d.ts +1 -1
- package/dist/connection/node_base_connection.d.ts +3 -3
- package/dist/connection/node_base_connection.js +22 -22
- package/dist/connection/node_base_connection.js.map +1 -1
- package/dist/connection/node_custom_agent_connection.js +2 -2
- package/dist/connection/node_custom_agent_connection.js.map +1 -1
- package/dist/connection/node_http_connection.js +2 -2
- package/dist/connection/node_http_connection.js.map +1 -1
- package/dist/connection/node_https_connection.d.ts +1 -1
- package/dist/connection/node_https_connection.js +3 -3
- package/dist/connection/node_https_connection.js.map +1 -1
- package/dist/connection/socket_pool.d.ts +1 -1
- package/dist/connection/socket_pool.js +30 -30
- package/dist/connection/socket_pool.js.map +1 -1
- package/dist/connection/stream.d.ts +1 -1
- package/dist/connection/stream.js +9 -9
- package/dist/connection/stream.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +24 -24
- package/dist/index.js.map +1 -1
- package/dist/result_set.d.ts +1 -1
- package/dist/result_set.js +10 -10
- package/dist/result_set.js.map +1 -1
- package/dist/utils/encoder.d.ts +1 -1
- package/dist/utils/encoder.js +5 -5
- package/dist/utils/encoder.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +7 -5
- package/skills/clickhouse-js-node-rowbinary-parser/EXAMPLES.md +48 -0
- package/skills/clickhouse-js-node-rowbinary-parser/README.md +248 -0
- package/skills/clickhouse-js-node-rowbinary-parser/SKILL.md +190 -0
- package/skills/clickhouse-js-node-rowbinary-parser/case-studies/iot-rowbinary-vs-json.md +83 -0
- package/skills/clickhouse-js-node-rowbinary-parser/case-studies/ledger-rowbinary-vs-json.md +103 -0
- package/skills/clickhouse-js-node-rowbinary-parser/case-studies/logs-json-wins.md +86 -0
- package/skills/clickhouse-js-node-rowbinary-parser/case-studies/wasm-vs-js.md +172 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/aggregateFunction.ts +34 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/bool.ts +10 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/columnar.ts +125 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/composite.ts +181 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/core.ts +77 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/datetime.ts +113 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/decimals.ts +57 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/dynamic.ts +328 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/enums.ts +28 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/carts.ts +71 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/events.ts +51 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/iot.ts +158 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/ledger.ts +98 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/logs.ts +73 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/observability.ts +142 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/orders.ts +65 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/profiles.ts +60 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/examples/telemetry.ts +102 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/floats.ts +32 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/geo.ts +109 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/integers.ts +95 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/interval.ts +54 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/ip.ts +93 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/json.ts +33 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/lowCardinality.ts +18 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/nested.ts +23 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/nothing.ts +29 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/reader.ts +51 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/rows.ts +58 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/simpleAggregateFunction.ts +20 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/stream.ts +276 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/strings.ts +55 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/time.ts +61 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/uuid.ts +153 -0
- package/skills/clickhouse-js-node-rowbinary-parser/src/varint.ts +70 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClickHouseLogLevel = exports.LogWriter = exports.DefaultLogger = void 0;
|
|
4
|
+
class DefaultLogger {
|
|
5
|
+
trace({ module, message, args }) {
|
|
6
|
+
const params = [
|
|
7
|
+
formatMessage({ module, message, level: "TRACE" }),
|
|
8
|
+
];
|
|
9
|
+
if (args) {
|
|
10
|
+
params.push("\nArguments:", args);
|
|
11
|
+
}
|
|
12
|
+
console.debug(...params);
|
|
13
|
+
}
|
|
14
|
+
debug({ module, message, args }) {
|
|
15
|
+
const params = [
|
|
16
|
+
formatMessage({ module, message, level: "DEBUG" }),
|
|
17
|
+
];
|
|
18
|
+
if (args) {
|
|
19
|
+
params.push("\nArguments:", args);
|
|
20
|
+
}
|
|
21
|
+
console.debug(...params);
|
|
22
|
+
}
|
|
23
|
+
info({ module, message, args }) {
|
|
24
|
+
const params = [
|
|
25
|
+
formatMessage({ module, message, level: "INFO" }),
|
|
26
|
+
];
|
|
27
|
+
if (args) {
|
|
28
|
+
params.push("\nArguments:", args);
|
|
29
|
+
}
|
|
30
|
+
console.info(...params);
|
|
31
|
+
}
|
|
32
|
+
warn({ module, message, args, err }) {
|
|
33
|
+
const params = [
|
|
34
|
+
formatMessage({ module, message, level: "WARN" }),
|
|
35
|
+
];
|
|
36
|
+
if (args) {
|
|
37
|
+
params.push("\nArguments:", args);
|
|
38
|
+
}
|
|
39
|
+
if (err) {
|
|
40
|
+
params.push("\nCaused by:", err);
|
|
41
|
+
}
|
|
42
|
+
console.warn(...params);
|
|
43
|
+
}
|
|
44
|
+
error({ module, message, args, err }) {
|
|
45
|
+
const params = [
|
|
46
|
+
formatMessage({ module, message, level: "ERROR" }),
|
|
47
|
+
];
|
|
48
|
+
if (args) {
|
|
49
|
+
params.push("\nArguments:", args);
|
|
50
|
+
}
|
|
51
|
+
params.push("\nCaused by:", err);
|
|
52
|
+
console.error(...params);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.DefaultLogger = DefaultLogger;
|
|
56
|
+
class LogWriter {
|
|
57
|
+
logger;
|
|
58
|
+
module;
|
|
59
|
+
logLevel;
|
|
60
|
+
constructor(logger, module, logLevel) {
|
|
61
|
+
this.logger = logger;
|
|
62
|
+
this.module = module;
|
|
63
|
+
this.logLevel = logLevel;
|
|
64
|
+
this.info({
|
|
65
|
+
message: `Log level is set to ${exports.ClickHouseLogLevel[this.logLevel]}`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
trace(params) {
|
|
69
|
+
if (this.logLevel <= exports.ClickHouseLogLevel.TRACE) {
|
|
70
|
+
this.logger.trace({
|
|
71
|
+
...params,
|
|
72
|
+
module: params.module ?? this.module,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
debug(params) {
|
|
77
|
+
if (this.logLevel <= exports.ClickHouseLogLevel.DEBUG) {
|
|
78
|
+
this.logger.debug({
|
|
79
|
+
...params,
|
|
80
|
+
module: params.module ?? this.module,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
info(params) {
|
|
85
|
+
if (this.logLevel <= exports.ClickHouseLogLevel.INFO) {
|
|
86
|
+
this.logger.info({
|
|
87
|
+
...params,
|
|
88
|
+
module: params.module ?? this.module,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
warn(params) {
|
|
93
|
+
if (this.logLevel <= exports.ClickHouseLogLevel.WARN) {
|
|
94
|
+
this.logger.warn({
|
|
95
|
+
...params,
|
|
96
|
+
module: params.module ?? this.module,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
error(params) {
|
|
101
|
+
if (this.logLevel <= exports.ClickHouseLogLevel.ERROR) {
|
|
102
|
+
this.logger.error({
|
|
103
|
+
...params,
|
|
104
|
+
module: params.module ?? this.module,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.LogWriter = LogWriter;
|
|
110
|
+
/**
|
|
111
|
+
* Mimics the runtime shape of a numeric TypeScript `enum`: an object with both
|
|
112
|
+
* forward (`Name -> number`) and reverse (`number -> Name`) mappings. This
|
|
113
|
+
* preserves backwards compatibility with the previous `enum ClickHouseLogLevel`
|
|
114
|
+
* — both `ClickHouseLogLevel.TRACE` (returns `0`) and `ClickHouseLogLevel[0]`
|
|
115
|
+
* (returns `'TRACE'`) continue to work — while staying compatible with the
|
|
116
|
+
* `--erasableSyntaxOnly` TypeScript option (no TS `enum` declaration).
|
|
117
|
+
*/
|
|
118
|
+
exports.ClickHouseLogLevel = {
|
|
119
|
+
/**
|
|
120
|
+
* A fine-grained debugging event. Might produce a lot of logs, so use with caution.
|
|
121
|
+
*/
|
|
122
|
+
TRACE: 0,
|
|
123
|
+
/**
|
|
124
|
+
* A debugging event. Useful for debugging, but generally not needed in production. Includes technical values that might require redacting.
|
|
125
|
+
*/
|
|
126
|
+
DEBUG: 1,
|
|
127
|
+
/**
|
|
128
|
+
* An informational event. Indicates that an event happened.
|
|
129
|
+
*/
|
|
130
|
+
INFO: 2,
|
|
131
|
+
/**
|
|
132
|
+
* A warning event. Not an error, but is likely more important than an informational event. Addressing should help prevent potential issues.
|
|
133
|
+
*/
|
|
134
|
+
WARN: 3,
|
|
135
|
+
/**
|
|
136
|
+
* An error event. Something went wrong.
|
|
137
|
+
*/
|
|
138
|
+
ERROR: 4,
|
|
139
|
+
/**
|
|
140
|
+
* Logging is turned off.
|
|
141
|
+
*/
|
|
142
|
+
OFF: 127,
|
|
143
|
+
0: "TRACE",
|
|
144
|
+
1: "DEBUG",
|
|
145
|
+
2: "INFO",
|
|
146
|
+
3: "WARN",
|
|
147
|
+
4: "ERROR",
|
|
148
|
+
127: "OFF",
|
|
149
|
+
};
|
|
150
|
+
function formatMessage({ level, module, message, }) {
|
|
151
|
+
const ts = new Date().toISOString();
|
|
152
|
+
return `[${ts}][${level}][@clickhouse/client][${module}] ${message}`;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export declare class ColumnTypeParseError extends Error {
|
|
2
|
+
readonly args: Record<string, unknown>;
|
|
3
|
+
constructor(message: string, args?: Record<string, unknown>);
|
|
4
|
+
}
|
|
5
|
+
export declare const SimpleColumnTypes: readonly ["Bool", "UInt8", "Int8", "UInt16", "Int16", "UInt32", "Int32", "UInt64", "Int64", "UInt128", "Int128", "UInt256", "Int256", "Float32", "Float64", "String", "UUID", "Date", "Date32", "IPv4", "IPv6"];
|
|
6
|
+
export type SimpleColumnType = (typeof SimpleColumnTypes)[number];
|
|
7
|
+
export interface ParsedColumnSimple {
|
|
8
|
+
type: "Simple";
|
|
9
|
+
/** Without LowCardinality and Nullable. For example:
|
|
10
|
+
* * UInt8 -> UInt8
|
|
11
|
+
* * LowCardinality(Nullable(String)) -> String */
|
|
12
|
+
columnType: SimpleColumnType;
|
|
13
|
+
/** The original type before parsing. */
|
|
14
|
+
sourceType: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ParsedColumnFixedString {
|
|
17
|
+
type: "FixedString";
|
|
18
|
+
sizeBytes: number;
|
|
19
|
+
sourceType: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ParsedColumnDateTime {
|
|
22
|
+
type: "DateTime";
|
|
23
|
+
timezone: string | null;
|
|
24
|
+
sourceType: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ParsedColumnDateTime64 {
|
|
27
|
+
type: "DateTime64";
|
|
28
|
+
timezone: string | null;
|
|
29
|
+
/** Valid range: [0 : 9] */
|
|
30
|
+
precision: number;
|
|
31
|
+
sourceType: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ParsedColumnEnum {
|
|
34
|
+
type: "Enum";
|
|
35
|
+
/** Index to name */
|
|
36
|
+
values: Record<number, string>;
|
|
37
|
+
/** UInt8 or UInt16 */
|
|
38
|
+
intSize: 8 | 16;
|
|
39
|
+
sourceType: string;
|
|
40
|
+
}
|
|
41
|
+
/** Int size for Decimal depends on the Precision
|
|
42
|
+
* * 32 bits for precision < 10
|
|
43
|
+
* * 64 bits for precision < 19
|
|
44
|
+
* * 128 bits for precision < 39
|
|
45
|
+
* * 256 bits for precision >= 39
|
|
46
|
+
*/
|
|
47
|
+
export interface DecimalParams {
|
|
48
|
+
precision: number;
|
|
49
|
+
scale: number;
|
|
50
|
+
intSize: 32 | 64 | 128 | 256;
|
|
51
|
+
}
|
|
52
|
+
export interface ParsedColumnDecimal {
|
|
53
|
+
type: "Decimal";
|
|
54
|
+
params: DecimalParams;
|
|
55
|
+
sourceType: string;
|
|
56
|
+
}
|
|
57
|
+
/** Tuple, Array or Map itself cannot be Nullable */
|
|
58
|
+
export interface ParsedColumnNullable {
|
|
59
|
+
type: "Nullable";
|
|
60
|
+
value: ParsedColumnSimple | ParsedColumnEnum | ParsedColumnDecimal | ParsedColumnFixedString | ParsedColumnDateTime | ParsedColumnDateTime64;
|
|
61
|
+
sourceType: string;
|
|
62
|
+
}
|
|
63
|
+
/** Array cannot be Nullable or LowCardinality, but its value type can be.
|
|
64
|
+
* Arrays can be multidimensional, e.g. Array(Array(Array(T))).
|
|
65
|
+
* Arrays are allowed to have a Map as the value type.
|
|
66
|
+
*/
|
|
67
|
+
export interface ParsedColumnArray {
|
|
68
|
+
type: "Array";
|
|
69
|
+
value: ParsedColumnNullable | ParsedColumnSimple | ParsedColumnFixedString | ParsedColumnDecimal | ParsedColumnEnum | ParsedColumnMap | ParsedColumnDateTime | ParsedColumnDateTime64 | ParsedColumnTuple;
|
|
70
|
+
/** Array(T) = 1 dimension, Array(Array(T)) = 2, etc. */
|
|
71
|
+
dimensions: number;
|
|
72
|
+
sourceType: string;
|
|
73
|
+
}
|
|
74
|
+
/** @see https://clickhouse.com/docs/en/sql-reference/data-types/map */
|
|
75
|
+
export interface ParsedColumnMap {
|
|
76
|
+
type: "Map";
|
|
77
|
+
/** Possible key types:
|
|
78
|
+
* - String, Integer, UUID, Date, Date32, etc ({@link ParsedColumnSimple})
|
|
79
|
+
* - FixedString
|
|
80
|
+
* - DateTime
|
|
81
|
+
* - Enum
|
|
82
|
+
*/
|
|
83
|
+
key: ParsedColumnSimple | ParsedColumnFixedString | ParsedColumnEnum | ParsedColumnDateTime;
|
|
84
|
+
/** Value types are arbitrary, including Map, Array, and Tuple. */
|
|
85
|
+
value: ParsedColumnType;
|
|
86
|
+
sourceType: string;
|
|
87
|
+
}
|
|
88
|
+
export interface ParsedColumnTuple {
|
|
89
|
+
type: "Tuple";
|
|
90
|
+
/** Element types are arbitrary, including Map, Array, and Tuple. */
|
|
91
|
+
elements: ParsedColumnType[];
|
|
92
|
+
sourceType: string;
|
|
93
|
+
}
|
|
94
|
+
export type ParsedColumnType = ParsedColumnSimple | ParsedColumnEnum | ParsedColumnFixedString | ParsedColumnNullable | ParsedColumnDecimal | ParsedColumnDateTime | ParsedColumnDateTime64 | ParsedColumnArray | ParsedColumnTuple | ParsedColumnMap;
|
|
95
|
+
/**
|
|
96
|
+
* @experimental - incomplete, unstable API;
|
|
97
|
+
* originally intended to be used for RowBinary/Native header parsing internally.
|
|
98
|
+
* Currently unsupported source types:
|
|
99
|
+
* * Geo
|
|
100
|
+
* * (Simple)AggregateFunction
|
|
101
|
+
* * Nested
|
|
102
|
+
* * Old/new JSON
|
|
103
|
+
* * Dynamic
|
|
104
|
+
* * Variant
|
|
105
|
+
*/
|
|
106
|
+
export declare function parseColumnType(sourceType: string): ParsedColumnType;
|
|
107
|
+
export declare function parseDecimalType({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnDecimal;
|
|
108
|
+
export declare function parseEnumType({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnEnum;
|
|
109
|
+
export declare function parseMapType({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnMap;
|
|
110
|
+
export declare function parseTupleType({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnTuple;
|
|
111
|
+
export declare function parseArrayType({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnArray;
|
|
112
|
+
export declare function parseDateTimeType({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnDateTime;
|
|
113
|
+
export declare function parseDateTime64Type({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnDateTime64;
|
|
114
|
+
export declare function parseFixedStringType({ columnType, sourceType, }: ParseColumnTypeParams): ParsedColumnFixedString;
|
|
115
|
+
export declare function asNullableType(value: ParsedColumnType, sourceType: string): ParsedColumnNullable;
|
|
116
|
+
/** Used for Map key/value types and Tuple elements.
|
|
117
|
+
* * `String, UInt8` results in [`String`, `UInt8`].
|
|
118
|
+
* * `String, UInt8, Array(String)` results in [`String`, `UInt8`, `Array(String)`].
|
|
119
|
+
* * Throws if parsed values are below the required minimum. */
|
|
120
|
+
export declare function getElementsTypes({ columnType, sourceType }: ParseColumnTypeParams, minElements: number): string[];
|
|
121
|
+
interface ParseColumnTypeParams {
|
|
122
|
+
/** A particular type to parse, such as DateTime. */
|
|
123
|
+
columnType: string;
|
|
124
|
+
/** Full type definition, such as Map(String, DateTime). */
|
|
125
|
+
sourceType: string;
|
|
126
|
+
}
|
|
127
|
+
export {};
|