@cubejs-backend/materialize-driver 0.31.1 → 0.31.2
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,14 @@
|
|
|
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.2](https://github.com/cube-js/cube.js/compare/v0.31.1...v0.31.2) (2022-10-08)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @cubejs-backend/materialize-driver
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [0.31.1](https://github.com/cube-js/cube.js/compare/v0.31.0...v0.31.1) (2022-10-04)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @cubejs-backend/materialize-driver
|
|
@@ -9,6 +9,15 @@ export declare type ReadableStreamTableDataWithTypes = StreamTableDataWithTypes
|
|
|
9
9
|
*/
|
|
10
10
|
rowStream: Readable;
|
|
11
11
|
};
|
|
12
|
+
export declare type SchemaResponse = {
|
|
13
|
+
[schema: string]: {
|
|
14
|
+
[schemaObject: string]: {
|
|
15
|
+
name: string;
|
|
16
|
+
type: string;
|
|
17
|
+
attributes: any[];
|
|
18
|
+
}[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
12
21
|
/**
|
|
13
22
|
* Materialize driver class.
|
|
14
23
|
*/
|
|
@@ -37,7 +46,13 @@ export declare class MaterializeDriver extends PostgresDriver {
|
|
|
37
46
|
* Returns materialized sources, materialized views, and tables
|
|
38
47
|
* @returns {string} schemaQuery
|
|
39
48
|
*/
|
|
40
|
-
|
|
49
|
+
informationSchemaQueryWithFilter(version: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Materialize instance version
|
|
52
|
+
* @returns {Promise<string>} version
|
|
53
|
+
*/
|
|
54
|
+
getMaterializeVersion(): Promise<string>;
|
|
55
|
+
tablesSchema(): Promise<SchemaResponse>;
|
|
41
56
|
protected asyncFetcher<R extends unknown>(conn: PoolClient, cursorId: string): AsyncGenerator<R>;
|
|
42
57
|
private releaseStream;
|
|
43
58
|
stream(query: string, values: unknown[], { highWaterMark }: StreamOptions): Promise<ReadableStreamTableDataWithTypes>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterializeDriver.d.ts","sourceRoot":"","sources":["../../src/MaterializeDriver.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAc,uBAAuB,EAAE,UAAU,EAAE,aAAa,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACvJ,OAAO,EAAE,UAAU,EAAe,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MaterializeDriver.d.ts","sourceRoot":"","sources":["../../src/MaterializeDriver.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAc,uBAAuB,EAAE,UAAU,EAAE,aAAa,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACvJ,OAAO,EAAE,UAAU,EAAe,MAAM,IAAI,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,oBAAY,gCAAgC,GAAG,wBAAwB,GAAG;IACxE;;OAEG;IACH,SAAS,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,CAAC,YAAY,EAAE,MAAM,GAAG;YACtB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,GAAG,EAAE,CAAC;SACrB,EAAE,CAAC;KACH,CAAA;CACF,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD;;OAEG;WACW,qBAAqB,IAAI,MAAM;IAI7C;;OAEG;gBAED,OAAO,GAAE,2BAA2B,GAAG;QACrC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB;cAKQ,iBAAiB,CAC/B,IAAI,EAAE,UAAU;cAMF,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrD;;;OAGG;IACU,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU/D,sBAAsB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,uBAAuB,EAClC,UAAU,EAAE,UAAU;IAKxB;;;;OAIG;IACI,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA8BhE;;;OAGG;IACU,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOxC,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;cAOnC,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC;YAuBzF,aAAa;IAQd,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EACjB,EAAE,aAAa,EAAE,EAAE,aAAa,GAC/B,OAAO,CAAC,gCAAgC,CAAC;CA0B7C"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.MaterializeDriver = void 0;
|
|
4
7
|
const postgres_driver_1 = require("@cubejs-backend/postgres-driver");
|
|
5
8
|
const base_driver_1 = require("@cubejs-backend/base-driver");
|
|
9
|
+
const ramda_1 = require("ramda");
|
|
6
10
|
const stream_1 = require("stream");
|
|
11
|
+
const semver_1 = __importDefault(require("semver"));
|
|
7
12
|
/**
|
|
8
13
|
* Materialize driver class.
|
|
9
14
|
*/
|
|
@@ -34,7 +39,7 @@ class MaterializeDriver extends postgres_driver_1.PostgresDriver {
|
|
|
34
39
|
async createSchemaIfNotExists(schemaName) {
|
|
35
40
|
const schemas = await this.query(`SHOW SCHEMAS WHERE name = '${schemaName}'`, []);
|
|
36
41
|
if (schemas.length === 0) {
|
|
37
|
-
this.query(`CREATE SCHEMA IF NOT EXISTS ${schemaName}`, []);
|
|
42
|
+
await this.query(`CREATE SCHEMA IF NOT EXISTS ${schemaName}`, []);
|
|
38
43
|
}
|
|
39
44
|
return [];
|
|
40
45
|
}
|
|
@@ -46,8 +51,9 @@ class MaterializeDriver extends postgres_driver_1.PostgresDriver {
|
|
|
46
51
|
* Returns materialized sources, materialized views, and tables
|
|
47
52
|
* @returns {string} schemaQuery
|
|
48
53
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
informationSchemaQueryWithFilter(version) {
|
|
55
|
+
console.log(version);
|
|
56
|
+
const materializationFilter = semver_1.default.lt(version, 'v0.27.0-alpha') ? `
|
|
51
57
|
table_name IN (
|
|
52
58
|
SELECT name
|
|
53
59
|
FROM mz_catalog.mz_sources
|
|
@@ -59,9 +65,34 @@ class MaterializeDriver extends postgres_driver_1.PostgresDriver {
|
|
|
59
65
|
UNION
|
|
60
66
|
SELECT t.name
|
|
61
67
|
FROM mz_catalog.mz_tables t
|
|
62
|
-
)
|
|
68
|
+
)` : `
|
|
69
|
+
table_name IN (
|
|
70
|
+
SELECT name
|
|
71
|
+
FROM mz_catalog.mz_sources
|
|
72
|
+
UNION
|
|
73
|
+
SELECT name
|
|
74
|
+
FROM mz_catalog.mz_tables t
|
|
75
|
+
UNION
|
|
76
|
+
SELECT name
|
|
77
|
+
FROM mz_catalog.mz_materialized_views t
|
|
78
|
+
)
|
|
79
|
+
`;
|
|
63
80
|
return `${super.informationSchemaQuery()} AND ${materializationFilter}`;
|
|
64
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Materialize instance version
|
|
84
|
+
* @returns {Promise<string>} version
|
|
85
|
+
*/
|
|
86
|
+
async getMaterializeVersion() {
|
|
87
|
+
const [{ version }] = await this.query('SELECT mz_version() as version;', []);
|
|
88
|
+
// Materialzie returns the version as follows: 'v0.24.3-alpha.5 (65778f520)'
|
|
89
|
+
return version.split(' ')[0];
|
|
90
|
+
}
|
|
91
|
+
async tablesSchema() {
|
|
92
|
+
const version = await this.getMaterializeVersion();
|
|
93
|
+
const query = this.informationSchemaQueryWithFilter(version);
|
|
94
|
+
return this.query(query, []).then(data => ramda_1.reduce(this.informationColumnsSchemaReducer, {}, data));
|
|
95
|
+
}
|
|
65
96
|
async *asyncFetcher(conn, cursorId) {
|
|
66
97
|
const timeout = `${this.config.executionTimeout ? (this.config.executionTimeout) * 1000 : 600000} milliseconds`;
|
|
67
98
|
const queryParams = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterializeDriver.js","sourceRoot":"","sources":["../../src/MaterializeDriver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaterializeDriver.js","sourceRoot":"","sources":["../../src/MaterializeDriver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@cubejs-backend/materialize-driver",
|
|
3
3
|
"description": "Cube.js Materialize database driver",
|
|
4
4
|
"author": "Cube Dev, Inc.",
|
|
5
|
-
"version": "0.31.
|
|
5
|
+
"version": "0.31.2",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/cube-js/cube.js.git",
|
|
@@ -27,16 +27,18 @@
|
|
|
27
27
|
"lint:fix": "eslint --fix src/* --ext .ts"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@cubejs-backend/base-driver": "^0.31.
|
|
31
|
-
"@cubejs-backend/postgres-driver": "^0.31.
|
|
30
|
+
"@cubejs-backend/base-driver": "^0.31.2",
|
|
31
|
+
"@cubejs-backend/postgres-driver": "^0.31.2",
|
|
32
32
|
"@cubejs-backend/shared": "^0.31.0",
|
|
33
33
|
"@types/pg": "^8.6.0",
|
|
34
|
-
"pg": "^8.6.0"
|
|
34
|
+
"pg": "^8.6.0",
|
|
35
|
+
"ramda": "0.27.2",
|
|
36
|
+
"semver": "7.3.7"
|
|
35
37
|
},
|
|
36
38
|
"license": "Apache-2.0",
|
|
37
39
|
"devDependencies": {
|
|
38
40
|
"@cubejs-backend/linter": "^0.31.0",
|
|
39
|
-
"@cubejs-backend/testing": "^0.31.
|
|
41
|
+
"@cubejs-backend/testing": "^0.31.2",
|
|
40
42
|
"typescript": "~4.1.5"
|
|
41
43
|
},
|
|
42
44
|
"publishConfig": {
|
|
@@ -45,5 +47,5 @@
|
|
|
45
47
|
"eslintConfig": {
|
|
46
48
|
"extends": "../cubejs-linter"
|
|
47
49
|
},
|
|
48
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "bba50dae04127f8fa90de13a872c86041a333984"
|
|
49
51
|
}
|