clickhouse-ts
Advanced tools
Comparing version 1.4.0 to 1.4.1
@@ -7,2 +7,3 @@ import { ClickhouseNamespace } from './interface'; | ||
private getCacheManager; | ||
private formatInsertRows; | ||
/** | ||
@@ -9,0 +10,0 @@ * |
@@ -33,2 +33,7 @@ "use strict"; | ||
_Clickhouse_isFirstInsert.set(this, void 0); | ||
this.formatInsertRows = (rows) => { | ||
const keysArr = Object.keys(rows[0]); | ||
const valuesArr = rows.map(row => keysArr.map(key => row[key])); | ||
return { keysArr, valuesArr }; | ||
}; | ||
__classPrivateFieldSet(this, _Clickhouse_isFirstInsert, true, "f"); | ||
@@ -89,5 +94,9 @@ __classPrivateFieldSet(this, _Clickhouse_onChunkCb, [], "f"); | ||
async insert(table, rows, options = {}) { | ||
const keys = Object.keys(rows[0]).join(','); | ||
const values = rows.map(row => `(${Object.values(row).map(v => sqlstring_1.default.escape(v)).join(',')})`).join(','); | ||
const request = `INSERT INTO ${table} (${keys}) VALUES ${values} ${options.responseFormat ? 'FORMAT ' + options.responseFormat : ''}`; | ||
if (!rows.length) { | ||
return { inserted: rows.length, data: rows }; | ||
} | ||
const { keysArr, valuesArr } = this.formatInsertRows(rows); | ||
const keys = `(${keysArr.join(',')})`; | ||
const values = valuesArr.map(values => `(${values.map(value => sqlstring_1.default.escape(value)).join(',')})`).join(','); | ||
const request = `INSERT INTO ${table} ${keys} VALUES ${values} ${options.responseFormat ? 'FORMAT ' + options.responseFormat : ''}`; | ||
Debug_1.debug.log('Clickhouse.insert', { request }); | ||
@@ -94,0 +103,0 @@ await __classPrivateFieldGet(this, _Clickhouse_httpClient, "f").request({ data: request }); |
@@ -6,1 +6,2 @@ "use strict"; | ||
Object.defineProperty(exports, "Clickhouse", { enumerable: true, get: function () { return Clickhouse_1.Clickhouse; } }); | ||
// some |
{ | ||
"name": "clickhouse-ts", | ||
"author": { | ||
"email": "danielbyta.worl@gmail.com", | ||
"email": "danielbyta.work@gmail.com", | ||
"name": "Daniel Byta" | ||
@@ -12,3 +12,3 @@ }, | ||
], | ||
"version": "1.4.0", | ||
"version": "1.4.1", | ||
"license": "ISC", | ||
@@ -15,0 +15,0 @@ "description": "Clickhouse client on TypeScript using redis caching queries", |
@@ -79,2 +79,8 @@ import { ClickhouseHttpClient } from '../httpClient/ClickhouseHttpClient' | ||
private formatInsertRows = (rows: ClickhouseNamespace.InsertRows) => { | ||
const keysArr = Object.keys(rows[0]) | ||
const valuesArr = rows.map(row => keysArr.map(key => row[key])) | ||
return { keysArr, valuesArr } | ||
} | ||
/** | ||
@@ -90,8 +96,13 @@ * | ||
options: ClickhouseNamespace.InsertOptions = {} | ||
) { | ||
const keys = Object.keys(rows[0]).join(',') | ||
const values = rows.map(row => `(${Object.values(row).map(v => sqlstring.escape(v)).join(',')})`).join(',') | ||
) { | ||
if (!rows.length) { | ||
return { inserted: rows.length, data: rows } | ||
} | ||
const request = `INSERT INTO ${table} (${keys}) VALUES ${values} ${options.responseFormat ? 'FORMAT ' + options.responseFormat : ''}` | ||
const { keysArr, valuesArr } = this.formatInsertRows(rows) | ||
const keys = `(${keysArr.join(',')})` | ||
const values = valuesArr.map(values => `(${values.map(value => sqlstring.escape(value)).join(',')})`).join(',') | ||
const request = `INSERT INTO ${table} ${keys} VALUES ${values} ${options.responseFormat ? 'FORMAT ' + options.responseFormat : ''}` | ||
debug.log('Clickhouse.insert', { request }) | ||
@@ -98,0 +109,0 @@ |
import { Clickhouse } from "./clickhouse/Clickhouse"; | ||
export { Clickhouse } | ||
export { Clickhouse } | ||
// some |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
89757
1709