@cubejs-backend/prestodb-driver 0.31.11 → 0.31.12

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.31.12](https://github.com/cube-js/cube.js/compare/v0.31.11...v0.31.12) (2022-11-05)
7
+
8
+
9
+ ### Features
10
+
11
+ * Trino driver ([e58c392](https://github.com/cube-js/cube.js/commit/e58c3924781b65f5631ee241b39a0bee1366273d))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [0.31.11](https://github.com/cube-js/cube.js/compare/v0.31.10...v0.31.11) (2022-11-02)
7
18
 
8
19
 
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @copyright Cube Dev, Inc.
3
+ * @license Apache-2.0
4
+ * @fileoverview The `PrestoDriver` and related types declaration.
5
+ */
6
+ import { DownloadQueryResultsOptions, DownloadQueryResultsResult, DriverCapabilities, DriverInterface, StreamOptions, StreamTableData, TableStructure, BaseDriver } from '@cubejs-backend/base-driver';
7
+ export declare type PrestoDriverConfiguration = {
8
+ host?: string;
9
+ port?: string;
10
+ catalog?: string;
11
+ schema?: string;
12
+ user?: string;
13
+ basic_auth?: {
14
+ user: string;
15
+ password: string;
16
+ };
17
+ ssl?: string;
18
+ dataSource?: string;
19
+ };
20
+ /**
21
+ * Presto driver class.
22
+ */
23
+ export declare class PrestoDriver extends BaseDriver implements DriverInterface {
24
+ /**
25
+ * Returns default concurrency value.
26
+ */
27
+ static getDefaultConcurrency(): number;
28
+ private config;
29
+ private catalog;
30
+ private client;
31
+ /**
32
+ * Class constructor.
33
+ */
34
+ constructor(config?: PrestoDriverConfiguration);
35
+ testConnection(): Promise<void>;
36
+ query(query: string, values: unknown[]): Promise<any[]>;
37
+ prepareQueryWithParams(query: string, values: unknown[]): string;
38
+ queryPromised(query: string, streaming: boolean): Promise<any[] | StreamTableData>;
39
+ downloadQueryResults(query: string, values: unknown[], options: DownloadQueryResultsOptions): Promise<DownloadQueryResultsResult>;
40
+ normalizeResultOverColumns(data: any[], columns: TableStructure): {
41
+ [x: string]: unknown;
42
+ }[];
43
+ stream(query: string, values: unknown[], _options: StreamOptions): Promise<StreamTableData>;
44
+ capabilities(): DriverCapabilities;
45
+ }
46
+ //# sourceMappingURL=PrestoDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrestoDriver.d.ts","sourceRoot":"","sources":["../../src/PrestoDriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,2BAA2B,EAAE,0BAA0B,EACvD,kBAAkB,EAAE,eAAe,EACnC,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,6BAA6B,CAAC;AAarC,oBAAY,yBAAyB,GAAG;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAW,YAAW,eAAe;IACrE;;OAEG;WACW,qBAAqB;IAInC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,MAAM,CAAM;IAEpB;;OAEG;gBACgB,MAAM,GAAE,yBAA8B;IA8BlD,cAAc;IAWd,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIvD,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAMvD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IA0DlF,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAOjI,0BAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,cAAc;;;IAM/D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAM3F,YAAY,IAAI,kBAAkB;CAK1C"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ /**
3
+ * @copyright Cube Dev, Inc.
4
+ * @license Apache-2.0
5
+ * @fileoverview The `PrestoDriver` and related types declaration.
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.PrestoDriver = void 0;
12
+ const base_driver_1 = require("@cubejs-backend/base-driver");
13
+ const shared_1 = require("@cubejs-backend/shared");
14
+ const stream_1 = require("stream");
15
+ const ramda_1 = require("ramda");
16
+ const sqlstring_1 = __importDefault(require("sqlstring"));
17
+ const presto = require('presto-client');
18
+ /**
19
+ * Presto driver class.
20
+ */
21
+ class PrestoDriver extends base_driver_1.BaseDriver {
22
+ /**
23
+ * Class constructor.
24
+ */
25
+ constructor(config = {}) {
26
+ super();
27
+ const dataSource = config.dataSource ||
28
+ shared_1.assertDataSource('default');
29
+ this.config = {
30
+ host: shared_1.getEnv('dbHost', { dataSource }),
31
+ port: shared_1.getEnv('dbPort', { dataSource }),
32
+ catalog: shared_1.getEnv('prestoCatalog', { dataSource }) ||
33
+ shared_1.getEnv('dbCatalog', { dataSource }),
34
+ schema: shared_1.getEnv('dbName', { dataSource }) ||
35
+ shared_1.getEnv('dbSchema', { dataSource }),
36
+ user: shared_1.getEnv('dbUser', { dataSource }),
37
+ basic_auth: shared_1.getEnv('dbPass', { dataSource })
38
+ ? {
39
+ user: shared_1.getEnv('dbUser', { dataSource }),
40
+ password: shared_1.getEnv('dbPass', { dataSource }),
41
+ }
42
+ : undefined,
43
+ ssl: this.getSslOptions(dataSource),
44
+ ...config
45
+ };
46
+ this.catalog = this.config.catalog;
47
+ this.client = new presto.Client(this.config);
48
+ }
49
+ /**
50
+ * Returns default concurrency value.
51
+ */
52
+ static getDefaultConcurrency() {
53
+ return 2;
54
+ }
55
+ testConnection() {
56
+ const query = sqlstring_1.default.format('show catalogs like ?', [`%${this.catalog}%`]);
57
+ return this.queryPromised(query, false)
58
+ .then(catalogs => {
59
+ if (catalogs.length === 0) {
60
+ throw new Error(`Catalog not found '${this.catalog}'`);
61
+ }
62
+ });
63
+ }
64
+ query(query, values) {
65
+ return this.queryPromised(this.prepareQueryWithParams(query, values), false);
66
+ }
67
+ prepareQueryWithParams(query, values) {
68
+ return sqlstring_1.default.format(query, (values || []).map(value => (typeof value === 'string' ? {
69
+ toSqlString: () => sqlstring_1.default.escape(value).replace(/\\\\([_%])/g, '\\$1'),
70
+ } : value)));
71
+ }
72
+ queryPromised(query, streaming) {
73
+ const toError = (error) => new Error(error.error ? `${error.message}\n${error.error}` : error.message);
74
+ if (streaming) {
75
+ const rowStream = new stream_1.Transform({
76
+ writableObjectMode: true,
77
+ readableObjectMode: true,
78
+ transform(obj, encoding, callback) {
79
+ callback(null, obj);
80
+ }
81
+ });
82
+ return new Promise((resolve, reject) => {
83
+ this.client.execute({
84
+ query,
85
+ schema: this.config.schema || 'default',
86
+ columns: (error, columns) => {
87
+ resolve({
88
+ rowStream,
89
+ types: columns
90
+ });
91
+ },
92
+ data: (error, data, columns) => {
93
+ const normalData = this.normalizeResultOverColumns(data, columns);
94
+ for (const obj of normalData) {
95
+ rowStream.write(obj);
96
+ }
97
+ },
98
+ success: () => {
99
+ rowStream.end();
100
+ },
101
+ error: (error) => {
102
+ reject(toError(error));
103
+ }
104
+ });
105
+ });
106
+ }
107
+ else {
108
+ return new Promise((resolve, reject) => {
109
+ let fullData = [];
110
+ this.client.execute({
111
+ query,
112
+ schema: this.config.schema || 'default',
113
+ data: (error, data, columns) => {
114
+ const normalData = this.normalizeResultOverColumns(data, columns);
115
+ fullData = ramda_1.concat(normalData, fullData);
116
+ },
117
+ success: () => {
118
+ resolve(fullData);
119
+ },
120
+ error: (error) => {
121
+ reject(toError(error));
122
+ }
123
+ });
124
+ });
125
+ }
126
+ }
127
+ downloadQueryResults(query, values, options) {
128
+ if (options.streamImport) {
129
+ return this.stream(query, values, options);
130
+ }
131
+ return super.downloadQueryResults(query, values, options);
132
+ }
133
+ normalizeResultOverColumns(data, columns) {
134
+ const columnNames = ramda_1.map(ramda_1.prop('name'), columns || []);
135
+ const arrayToObject = ramda_1.zipObj(columnNames);
136
+ return ramda_1.map(arrayToObject, data || []);
137
+ }
138
+ stream(query, values, _options) {
139
+ const queryWithParams = this.prepareQueryWithParams(query, values);
140
+ return this.queryPromised(queryWithParams, true);
141
+ }
142
+ capabilities() {
143
+ return {
144
+ unloadWithoutTempTable: true
145
+ };
146
+ }
147
+ }
148
+ exports.PrestoDriver = PrestoDriver;
149
+ //# sourceMappingURL=PrestoDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrestoDriver.js","sourceRoot":"","sources":["../../src/PrestoDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { PrestoDriver } from './PrestoDriver';
2
+ export default PrestoDriver;
3
+ export { PrestoDriver };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrestoDriver = void 0;
4
+ const PrestoDriver_1 = require("./PrestoDriver");
5
+ Object.defineProperty(exports, "PrestoDriver", { enumerable: true, get: function () { return PrestoDriver_1.PrestoDriver; } });
6
+ exports.default = PrestoDriver_1.PrestoDriver;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAGrC,6FAHA,2BAAY,OAGA;AADrB,kBAAe,2BAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=presto-driver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presto-driver.test.d.ts","sourceRoot":"","sources":["../../test/presto-driver.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const PrestoDriver_1 = require("../src/PrestoDriver");
4
+ const path = require('path');
5
+ const { DockerComposeEnvironment, Wait } = require('testcontainers');
6
+ describe('PrestoHouseDriver', () => {
7
+ jest.setTimeout(6 * 60 * 1000);
8
+ let env;
9
+ let config;
10
+ const doWithDriver = async (callback) => {
11
+ const driver = new PrestoDriver_1.PrestoDriver(config);
12
+ await callback(driver);
13
+ };
14
+ // eslint-disable-next-line consistent-return,func-names
15
+ beforeAll(async () => {
16
+ const authOpts = {
17
+ basic_auth: {
18
+ user: 'presto',
19
+ password: ''
20
+ }
21
+ };
22
+ if (process.env.TEST_PRESTO_HOST) {
23
+ config = {
24
+ host: process.env.TEST_PRESTO_HOST || 'localhost',
25
+ port: process.env.TEST_PRESTO_PORT || '8080',
26
+ catalog: process.env.TEST_PRESTO_CATALOG || 'tpch',
27
+ schema: 'sf1',
28
+ ...authOpts
29
+ };
30
+ return;
31
+ }
32
+ const dc = new DockerComposeEnvironment(path.resolve(path.dirname(__filename), '../../'), 'docker-compose.yml');
33
+ env = await dc
34
+ .withStartupTimeout(240 * 1000)
35
+ .withWaitStrategy('coordinator', Wait.forHealthCheck())
36
+ .up();
37
+ config = {
38
+ host: env.getContainer('coordinator').getHost(),
39
+ port: env.getContainer('coordinator').getMappedPort(8080),
40
+ catalog: 'tpch',
41
+ schema: 'sf1',
42
+ ...authOpts
43
+ };
44
+ });
45
+ // eslint-disable-next-line consistent-return,func-names
46
+ afterAll(async () => {
47
+ if (env) {
48
+ await env.down();
49
+ }
50
+ });
51
+ it('should construct', async () => {
52
+ await doWithDriver(() => {
53
+ //
54
+ });
55
+ });
56
+ // eslint-disable-next-line func-names
57
+ it('should test connection', async () => {
58
+ await doWithDriver(async (driver) => {
59
+ await driver.testConnection();
60
+ });
61
+ });
62
+ });
63
+ //# sourceMappingURL=presto-driver.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presto-driver.test.js","sourceRoot":"","sources":["../../test/presto-driver.test.ts"],"names":[],"mappings":";;AAAA,sDAAmD;AAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAErE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAE/B,IAAI,GAAQ,CAAC;IACb,IAAI,MAAW,CAAC;IAEhB,MAAM,YAAY,GAAG,KAAK,EAAE,QAAa,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,wDAAwD;IACxD,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,QAAQ,GAAG;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;QAEF,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAChC,MAAM,GAAG;gBACP,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW;gBACjD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM;gBAC5C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM;gBAClD,MAAM,EAAE,KAAK;gBACb,GAAG,QAAQ;aACZ,CAAC;YAEF,OAAO;SACR;QAED,MAAM,EAAE,GAAG,IAAI,wBAAwB,CACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,EAChD,oBAAoB,CACrB,CAAC;QAEF,GAAG,GAAG,MAAM,EAAE;aACX,kBAAkB,CAAC,GAAG,GAAG,IAAI,CAAC;aAC9B,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;aACtD,EAAE,EAAE,CAAC;QAER,MAAM,GAAG;YACP,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;YAC/C,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;YACzD,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,KAAK;YACb,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,EAAE;YACP,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;SAClB;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,YAAY,CAAC,GAAG,EAAE;YACtB,EAAE;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,YAAY,CAAC,KAAK,EAAE,MAAW,EAAE,EAAE;YACvC,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}