@hypequery/clickhouse 1.2.8 → 1.2.9
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.
|
@@ -35,6 +35,40 @@ const clickhouseToTsType = (type) => {
|
|
|
35
35
|
return `${clickhouseToTsType(innerType)} | null`;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
// Handle Map types
|
|
39
|
+
if (type.startsWith('Map(')) {
|
|
40
|
+
// Extract key and value types from Map(KeyType, ValueType)
|
|
41
|
+
const mapContent = type.slice(4, -1); // Remove 'Map(' and ')'
|
|
42
|
+
const commaIndex = mapContent.lastIndexOf(',');
|
|
43
|
+
if (commaIndex !== -1) {
|
|
44
|
+
const keyType = mapContent.substring(0, commaIndex).trim();
|
|
45
|
+
const valueType = mapContent.substring(commaIndex + 1).trim();
|
|
46
|
+
|
|
47
|
+
// Handle different key types
|
|
48
|
+
let keyTsType = 'string';
|
|
49
|
+
if (keyType === 'LowCardinality(String)') {
|
|
50
|
+
keyTsType = 'string';
|
|
51
|
+
} else if (keyType.includes('Int') || keyType.includes('UInt')) {
|
|
52
|
+
keyTsType = 'number';
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Handle different value types
|
|
56
|
+
let valueTsType = 'unknown';
|
|
57
|
+
if (valueType.startsWith('Array(')) {
|
|
58
|
+
const innerType = valueType.slice(6, -1);
|
|
59
|
+
valueTsType = `Array<${clickhouseToTsType(innerType)}>`;
|
|
60
|
+
} else if (valueType.startsWith('Nullable(')) {
|
|
61
|
+
const innerType = valueType.slice(9, -1);
|
|
62
|
+
valueTsType = `${clickhouseToTsType(innerType)} | null`;
|
|
63
|
+
} else {
|
|
64
|
+
valueTsType = clickhouseToTsType(valueType);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return `Record<${keyTsType}, ${valueTsType}>`;
|
|
68
|
+
}
|
|
69
|
+
return 'Record<string, unknown>';
|
|
70
|
+
}
|
|
71
|
+
|
|
38
72
|
switch (type.toLowerCase()) {
|
|
39
73
|
case 'string':
|
|
40
74
|
case 'fixedstring':
|
|
@@ -43,12 +77,16 @@ const clickhouseToTsType = (type) => {
|
|
|
43
77
|
case 'int16':
|
|
44
78
|
case 'int32':
|
|
45
79
|
case 'uint8':
|
|
80
|
+
case 'int64':
|
|
46
81
|
case 'uint16':
|
|
47
82
|
case 'uint32':
|
|
48
|
-
return 'number';
|
|
49
|
-
case 'int64':
|
|
50
83
|
case 'uint64':
|
|
51
|
-
return '
|
|
84
|
+
return 'number';
|
|
85
|
+
case 'uint128':
|
|
86
|
+
case 'uint256':
|
|
87
|
+
case 'int128':
|
|
88
|
+
case 'int256':
|
|
89
|
+
return 'string';
|
|
52
90
|
case 'float32':
|
|
53
91
|
case 'float64':
|
|
54
92
|
case 'decimal':
|
|
@@ -81,16 +81,17 @@ export declare class QueryBuilder<Schema extends {
|
|
|
81
81
|
/**
|
|
82
82
|
* Selects specific columns from the table.
|
|
83
83
|
* @template K - The keys/columns to select
|
|
84
|
-
* @param {K[]}
|
|
84
|
+
* @param {K[] | '*'} columnsOrAsterisk - Array of column names to select or '*' for all columns
|
|
85
85
|
* @returns {QueryBuilder} A new QueryBuilder instance with updated types
|
|
86
86
|
* @example
|
|
87
87
|
* ```ts
|
|
88
88
|
* builder.select(['id', 'name'])
|
|
89
|
+
* builder.select('*')
|
|
89
90
|
* ```
|
|
90
91
|
*/
|
|
91
|
-
select<K extends keyof T | TableColumn<Schema> | SqlExpression>(
|
|
92
|
+
select<K extends keyof T | TableColumn<Schema> | SqlExpression = keyof T | TableColumn<Schema> | SqlExpression>(columnsOrAsterisk: K[] | '*'): K[] extends typeof columnsOrAsterisk ? QueryBuilder<Schema, {
|
|
92
93
|
[P in Extract<K, keyof T | TableColumn<Schema>> as P extends `${string}.${infer C}` ? C : P]: P extends keyof T ? T[P] extends ColumnType ? InferClickHouseType<T[P]> : unknown : string;
|
|
93
|
-
}, true, Aggregations, OriginalT>;
|
|
94
|
+
}, true, Aggregations, OriginalT> : QueryBuilder<Schema, T, true, Aggregations, OriginalT>;
|
|
94
95
|
sum<Column extends keyof OriginalT, Alias extends string = `${Column & string}_sum`>(column: Column, alias?: Alias): QueryBuilder<Schema, AggregationType<T, Aggregations, Column, Alias, 'sum', HasSelect>, true, {}, OriginalT>;
|
|
95
96
|
count<Column extends keyof OriginalT, Alias extends string = `${Column & string}_count`>(column: Column, alias?: Alias): QueryBuilder<Schema, AggregationType<T, Aggregations, Column, Alias, 'count', HasSelect>, true, {}, OriginalT>;
|
|
96
97
|
avg<Column extends keyof OriginalT, Alias extends string = `${Column & string}_avg`>(column: Column, alias?: Alias): QueryBuilder<Schema, AggregationType<T, Aggregations, Column, Alias, 'avg', HasSelect>, true, {}, OriginalT>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/core/query-builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/core/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,14 +119,30 @@ export class QueryBuilder {
|
|
|
119
119
|
/**
|
|
120
120
|
* Selects specific columns from the table.
|
|
121
121
|
* @template K - The keys/columns to select
|
|
122
|
-
* @param {K[]}
|
|
122
|
+
* @param {K[] | '*'} columnsOrAsterisk - Array of column names to select or '*' for all columns
|
|
123
123
|
* @returns {QueryBuilder} A new QueryBuilder instance with updated types
|
|
124
124
|
* @example
|
|
125
125
|
* ```ts
|
|
126
126
|
* builder.select(['id', 'name'])
|
|
127
|
+
* builder.select('*')
|
|
127
128
|
* ```
|
|
128
129
|
*/
|
|
129
|
-
select(
|
|
130
|
+
select(columnsOrAsterisk) {
|
|
131
|
+
// Handle '*' case - return all columns with original type
|
|
132
|
+
if (columnsOrAsterisk === '*') {
|
|
133
|
+
const newBuilder = new QueryBuilder(this.tableName, this.schema, this.originalSchema);
|
|
134
|
+
newBuilder.config = {
|
|
135
|
+
...this.config,
|
|
136
|
+
select: ['*'],
|
|
137
|
+
orderBy: this.config.orderBy?.map(({ column, direction }) => ({
|
|
138
|
+
column: String(column),
|
|
139
|
+
direction
|
|
140
|
+
}))
|
|
141
|
+
};
|
|
142
|
+
return newBuilder;
|
|
143
|
+
}
|
|
144
|
+
// Handle array case - select specific columns
|
|
145
|
+
const columns = columnsOrAsterisk;
|
|
130
146
|
// Create a new builder with the appropriate type parameters
|
|
131
147
|
const newBuilder = new QueryBuilder(this.tableName, {
|
|
132
148
|
name: this.schema.name,
|