@devrev/meerkat-core 0.0.98 → 0.0.99
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/package.json +1 -1
- package/src/ast-builder/ast-builder.js +10 -4
- package/src/ast-builder/ast-builder.js.map +1 -1
- package/src/cube-group-by-transformer/cube-group-by-transformer.d.ts +2 -1
- package/src/cube-group-by-transformer/cube-group-by-transformer.js +9 -3
- package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -1
- package/src/cube-measure-transformer/cube-measure-transformer.js +23 -5
- package/src/cube-measure-transformer/cube-measure-transformer.js.map +1 -1
- package/src/cube-order-by-transformer/cube-order-by-transformer.d.ts +2 -1
- package/src/cube-order-by-transformer/cube-order-by-transformer.js +9 -3
- package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -1
- package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js +16 -4
- package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -1
- package/src/get-wrapped-base-query-with-projections/get-projection-clause.js +11 -3
- package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -1
- package/src/member-formatters/get-alias.d.ts +15 -0
- package/src/member-formatters/get-alias.js +42 -0
- package/src/member-formatters/get-alias.js.map +1 -0
- package/src/member-formatters/get-namespaced-key.d.ts +1 -0
- package/src/member-formatters/get-namespaced-key.js +6 -0
- package/src/member-formatters/get-namespaced-key.js.map +1 -0
- package/src/member-formatters/index.d.ts +2 -0
- package/src/member-formatters/index.js +6 -1
- package/src/member-formatters/index.js.map +1 -1
- package/src/resolution/resolution.d.ts +4 -3
- package/src/resolution/resolution.js +87 -58
- package/src/resolution/resolution.js.map +1 -1
- package/src/types/cube-types/table.d.ts +2 -0
- package/src/utils/find-in-table-schema.d.ts +3 -1
- package/src/utils/find-in-table-schema.js +31 -4
- package/src/utils/find-in-table-schema.js.map +1 -1
- package/src/utils/modify-meerkat-filter.d.ts +2 -3
- package/src/utils/modify-meerkat-filter.js +4 -4
- package/src/utils/modify-meerkat-filter.js.map +1 -1
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@ const cube_group_by_transformer_1 = require("../cube-group-by-transformer/cube-g
|
|
|
6
6
|
const cube_limit_offset_transformer_1 = require("../cube-limit-offset-transformer/cube-limit-offset-transformer");
|
|
7
7
|
const cube_order_by_transformer_1 = require("../cube-order-by-transformer/cube-order-by-transformer");
|
|
8
8
|
const filter_params_ast_1 = require("../filter-params/filter-params-ast");
|
|
9
|
-
const
|
|
9
|
+
const get_alias_1 = require("../member-formatters/get-alias");
|
|
10
10
|
const base_ast_1 = require("../utils/base-ast");
|
|
11
11
|
const cube_filter_enrichment_1 = require("../utils/cube-filter-enrichment");
|
|
12
12
|
const modify_meerkat_filter_1 = require("../utils/modify-meerkat-filter");
|
|
@@ -17,7 +17,13 @@ const formatFilters = (queryFiltersWithInfo, filterType) => {
|
|
|
17
17
|
return filterType === 'BASE_FILTER'
|
|
18
18
|
? queryFiltersWithInfo
|
|
19
19
|
: (0, modify_meerkat_filter_1.modifyLeafMeerkatFilter)(queryFiltersWithInfo, (item) => {
|
|
20
|
-
return Object.assign(Object.assign({}, item), { member: (0,
|
|
20
|
+
return Object.assign(Object.assign({}, item), { member: (0, get_alias_1.constructAlias)({
|
|
21
|
+
name: item.member,
|
|
22
|
+
alias: item.memberInfo.alias,
|
|
23
|
+
aliasContext: {
|
|
24
|
+
isAstIdentifier: true,
|
|
25
|
+
},
|
|
26
|
+
}) });
|
|
21
27
|
});
|
|
22
28
|
};
|
|
23
29
|
const getFormattedFilters = ({ queryFiltersWithInfo, filterType, mapperFn, baseAST, }) => {
|
|
@@ -65,7 +71,7 @@ const cubeToDuckdbAST = (query, tableSchema, options) => {
|
|
|
65
71
|
if (query.measures.length &&
|
|
66
72
|
query.dimensions &&
|
|
67
73
|
((_a = query.dimensions) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
68
|
-
node.group_expressions = (0, cube_group_by_transformer_1.cubeDimensionToGroupByAST)(query.dimensions);
|
|
74
|
+
node.group_expressions = (0, cube_group_by_transformer_1.cubeDimensionToGroupByAST)(query.dimensions, tableSchema);
|
|
69
75
|
const groupSets = [];
|
|
70
76
|
/**
|
|
71
77
|
* We only support one group set for now.
|
|
@@ -77,7 +83,7 @@ const cubeToDuckdbAST = (query, tableSchema, options) => {
|
|
|
77
83
|
}
|
|
78
84
|
node.modifiers = [];
|
|
79
85
|
if (query.order && Object.keys(query.order).length > 0) {
|
|
80
|
-
node.modifiers.push((0, cube_order_by_transformer_1.cubeOrderByToAST)(query.order));
|
|
86
|
+
node.modifiers.push((0, cube_order_by_transformer_1.cubeOrderByToAST)(query.order, tableSchema));
|
|
81
87
|
}
|
|
82
88
|
if (query.limit || query.offset) {
|
|
83
89
|
// Type assertion is needed here because the AST is not typed correctly.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-builder.js","sourceRoot":"","sources":["../../../../meerkat-core/src/ast-builder/ast-builder.ts"],"names":[],"mappings":";;;AAAA,gEAA2E;AAC3E,sGAAmG;AACnG,kHAAsG;AACtG,sGAA0F;AAK1F,0EAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"ast-builder.js","sourceRoot":"","sources":["../../../../meerkat-core/src/ast-builder/ast-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { TableSchema } from '../types/cube-types';
|
|
1
2
|
import { Member } from '../types/cube-types/query';
|
|
2
3
|
import { ExpressionClass, ExpressionType } from '../types/duckdb-serialization-types/serialization/Expression';
|
|
3
|
-
export declare const cubeDimensionToGroupByAST: (dimensions: Member[]) => {
|
|
4
|
+
export declare const cubeDimensionToGroupByAST: (dimensions: Member[], tableSchema: TableSchema) => {
|
|
4
5
|
class: ExpressionClass;
|
|
5
6
|
type: ExpressionType;
|
|
6
7
|
alias: string;
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cubeDimensionToGroupByAST = void 0;
|
|
4
|
-
const
|
|
4
|
+
const get_alias_1 = require("../member-formatters/get-alias");
|
|
5
5
|
const Expression_1 = require("../types/duckdb-serialization-types/serialization/Expression");
|
|
6
|
-
const cubeDimensionToGroupByAST = (dimensions) => {
|
|
6
|
+
const cubeDimensionToGroupByAST = (dimensions, tableSchema) => {
|
|
7
7
|
const groupByAST = dimensions.map((dimension) => {
|
|
8
8
|
const dimensionAST = {
|
|
9
9
|
class: Expression_1.ExpressionClass.COLUMN_REF,
|
|
10
10
|
type: Expression_1.ExpressionType.COLUMN_REF,
|
|
11
11
|
alias: '',
|
|
12
|
-
column_names: [
|
|
12
|
+
column_names: [
|
|
13
|
+
(0, get_alias_1.getAliasFromSchema)({
|
|
14
|
+
name: dimension,
|
|
15
|
+
tableSchema,
|
|
16
|
+
aliasContext: { isAstIdentifier: true },
|
|
17
|
+
}),
|
|
18
|
+
],
|
|
13
19
|
};
|
|
14
20
|
return dimensionAST;
|
|
15
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cube-group-by-transformer.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-group-by-transformer/cube-group-by-transformer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"cube-group-by-transformer.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-group-by-transformer/cube-group-by-transformer.ts"],"names":[],"mappings":";;;AAAA,8DAAoE;AAGpE,6FAGsE;AAE/D,MAAM,yBAAyB,GAAG,CACvC,UAAoB,EACpB,WAAwB,EACxB,EAAE;IACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC9C,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,4BAAe,CAAC,UAAU;YACjC,IAAI,EAAE,2BAAc,CAAC,UAAU;YAC/B,KAAK,EAAE,EAAE;YACT,YAAY,EAAE;gBACZ,IAAA,8BAAkB,EAAC;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW;oBACX,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBACxC,CAAC;aACH;SACF,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAtBW,QAAA,yBAAyB,6BAsBpC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.applyProjectionToSQLQuery = exports.getAllColumnUsedInMeasures = exports.getSelectReplacedSql = exports.cubeMeasureToSQLSelectString = void 0;
|
|
4
|
-
const
|
|
4
|
+
const member_formatters_1 = require("../member-formatters");
|
|
5
5
|
const split_into_data_source_and_fields_1 = require("../member-formatters/split-into-data-source-and-fields");
|
|
6
6
|
const meerkat_placeholder_replacer_1 = require("../utils/meerkat-placeholder-replacer");
|
|
7
7
|
const cubeMeasureToSQLSelectString = (measures, tableSchema) => {
|
|
@@ -13,7 +13,13 @@ const cubeMeasureToSQLSelectString = (measures, tableSchema) => {
|
|
|
13
13
|
continue;
|
|
14
14
|
}
|
|
15
15
|
const [tableSchemaName, measureKeyWithoutTable] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(measure);
|
|
16
|
-
const aliasKey = (0,
|
|
16
|
+
const aliasKey = (0, member_formatters_1.getAliasFromSchema)({
|
|
17
|
+
name: measure,
|
|
18
|
+
tableSchema,
|
|
19
|
+
aliasContext: {
|
|
20
|
+
isAstIdentifier: false,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
17
23
|
const measureSchema = tableSchema.measures.find((m) => m.name === measureKeyWithoutTable);
|
|
18
24
|
if (!measureSchema) {
|
|
19
25
|
continue;
|
|
@@ -31,8 +37,14 @@ const cubeMeasureToSQLSelectString = (measures, tableSchema) => {
|
|
|
31
37
|
//Replace all the columnsUsedInMeasure with safeKey
|
|
32
38
|
columnsUsedInMeasure === null || columnsUsedInMeasure === void 0 ? void 0 : columnsUsedInMeasure.forEach((measureKey) => {
|
|
33
39
|
const [_, column] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(measureKey);
|
|
34
|
-
const memberKey =
|
|
35
|
-
const columnKey = (0,
|
|
40
|
+
const memberKey = (0, member_formatters_1.getNamespacedKey)(tableSchemaName, column);
|
|
41
|
+
const columnKey = (0, member_formatters_1.getAliasFromSchema)({
|
|
42
|
+
name: memberKey,
|
|
43
|
+
tableSchema,
|
|
44
|
+
aliasContext: {
|
|
45
|
+
isAstIdentifier: false,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
36
48
|
meerkatReplacedSqlString = meerkatReplacedSqlString.replace(memberKey, columnKey);
|
|
37
49
|
});
|
|
38
50
|
base += ` ${meerkatReplacedSqlString} AS ${aliasKey} `;
|
|
@@ -49,7 +61,13 @@ const addDimensionToSQLProjection = (dimensions, selectString, tableSchema) => {
|
|
|
49
61
|
const dimension = dimensions[i];
|
|
50
62
|
const [_, dimensionKeyWithoutTable] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(dimension);
|
|
51
63
|
const dimensionSchema = tableSchema.dimensions.find((m) => m.name === dimensionKeyWithoutTable);
|
|
52
|
-
const aliasKey = (0,
|
|
64
|
+
const aliasKey = (0, member_formatters_1.getAliasFromSchema)({
|
|
65
|
+
name: dimension,
|
|
66
|
+
tableSchema,
|
|
67
|
+
aliasContext: {
|
|
68
|
+
isAstIdentifier: false,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
53
71
|
if (!dimensionSchema) {
|
|
54
72
|
continue;
|
|
55
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cube-measure-transformer.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-measure-transformer/cube-measure-transformer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"cube-measure-transformer.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-measure-transformer/cube-measure-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { TableSchema } from '../types/cube-types';
|
|
1
2
|
import { ExpressionClass, ExpressionType } from '../types/duckdb-serialization-types/serialization/Expression';
|
|
2
3
|
import { OrderType } from '../types/duckdb-serialization-types/serialization/Nodes';
|
|
3
4
|
import { ResultModifierType } from '../types/duckdb-serialization-types/serialization/ResultModifier';
|
|
4
5
|
export declare const cubeOrderByToAST: (order: {
|
|
5
6
|
[key: string]: "asc" | "desc";
|
|
6
|
-
}) => {
|
|
7
|
+
}, tableSchema: TableSchema) => {
|
|
7
8
|
type: ResultModifierType;
|
|
8
9
|
orders: {
|
|
9
10
|
type: OrderType;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cubeOrderByToAST = void 0;
|
|
4
|
-
const
|
|
4
|
+
const get_alias_1 = require("../member-formatters/get-alias");
|
|
5
5
|
const Expression_1 = require("../types/duckdb-serialization-types/serialization/Expression");
|
|
6
6
|
const Nodes_1 = require("../types/duckdb-serialization-types/serialization/Nodes");
|
|
7
7
|
const ResultModifier_1 = require("../types/duckdb-serialization-types/serialization/ResultModifier");
|
|
8
|
-
const cubeOrderByToAST = (order) => {
|
|
8
|
+
const cubeOrderByToAST = (order, tableSchema) => {
|
|
9
9
|
const orderArr = [];
|
|
10
10
|
for (const key in order) {
|
|
11
11
|
const value = order[key];
|
|
@@ -20,7 +20,13 @@ const cubeOrderByToAST = (order) => {
|
|
|
20
20
|
/**
|
|
21
21
|
* We need to convert the key in the __ format as they are being projected in this format
|
|
22
22
|
*/
|
|
23
|
-
column_names: [
|
|
23
|
+
column_names: [
|
|
24
|
+
(0, get_alias_1.getAliasFromSchema)({
|
|
25
|
+
name: key,
|
|
26
|
+
tableSchema,
|
|
27
|
+
aliasContext: { isAstIdentifier: true },
|
|
28
|
+
}),
|
|
29
|
+
],
|
|
24
30
|
},
|
|
25
31
|
};
|
|
26
32
|
orderArr.push(orderByAST);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cube-order-by-transformer.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-order-by-transformer/cube-order-by-transformer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"cube-order-by-transformer.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-order-by-transformer/cube-order-by-transformer.ts"],"names":[],"mappings":";;;AAAA,8DAAoE;AAEpE,6FAGsE;AACtE,mFAAoF;AACpF,qGAAsG;AAE/F,MAAM,gBAAgB,GAAG,CAC9B,KAAwC,EACxC,WAAwB,EACxB,EAAE;IACF,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,UAAU,GACd,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAS,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAS,CAAC,UAAU,CAAC;QAC/D,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,iBAAS,CAAC,aAAa;YACnC,UAAU,EAAE;gBACV,KAAK,EAAE,4BAAe,CAAC,UAAU;gBACjC,IAAI,EAAE,2BAAc,CAAC,UAAU;gBAC/B,KAAK,EAAE,EAAE;gBACT;;mBAEG;gBACH,YAAY,EAAE;oBACZ,IAAA,8BAAkB,EAAC;wBACjB,IAAI,EAAE,GAAG;wBACT,WAAW;wBACX,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;qBACxC,CAAC;iBACH;aACF;SACF,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC3B;IACD,OAAO;QACL,IAAI,EAAE,mCAAkB,CAAC,cAAc;QACvC,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC,CAAC;AAlCW,QAAA,gBAAgB,oBAkC3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAliasedColumnsFromFilters = exports.getFilterMeasureProjection = exports.getDimensionProjection = void 0;
|
|
4
|
-
const
|
|
4
|
+
const get_alias_1 = require("../member-formatters/get-alias");
|
|
5
5
|
const split_into_data_source_and_fields_1 = require("../member-formatters/split-into-data-source-and-fields");
|
|
6
6
|
const find_in_table_schema_1 = require("../utils/find-in-table-schema");
|
|
7
7
|
const sql_expression_modifiers_1 = require("./sql-expression-modifiers");
|
|
@@ -25,7 +25,11 @@ const getDimensionProjection = ({ key, tableSchema, modifiers, query, }) => {
|
|
|
25
25
|
sqlExpression: foundMember.sql,
|
|
26
26
|
query,
|
|
27
27
|
});
|
|
28
|
-
const aliasKey = (0,
|
|
28
|
+
const aliasKey = (0, get_alias_1.getAliasFromSchema)({
|
|
29
|
+
name: key,
|
|
30
|
+
tableSchema,
|
|
31
|
+
aliasContext: { isAstIdentifier: false },
|
|
32
|
+
});
|
|
29
33
|
// Add the alias key to the set. So we have a reference to all the previously selected members.
|
|
30
34
|
return { sql: `${modifiedSql} AS ${aliasKey}`, foundMember, aliasKey };
|
|
31
35
|
};
|
|
@@ -44,7 +48,11 @@ const getFilterMeasureProjection = ({ key, tableSchema, measures, }) => {
|
|
|
44
48
|
aliasKey: undefined,
|
|
45
49
|
};
|
|
46
50
|
}
|
|
47
|
-
const aliasKey = (0,
|
|
51
|
+
const aliasKey = (0, get_alias_1.getAliasFromSchema)({
|
|
52
|
+
name: key,
|
|
53
|
+
tableSchema,
|
|
54
|
+
aliasContext: { isAstIdentifier: false },
|
|
55
|
+
});
|
|
48
56
|
return { sql: `${key} AS ${aliasKey}`, foundMember, aliasKey };
|
|
49
57
|
};
|
|
50
58
|
exports.getFilterMeasureProjection = getFilterMeasureProjection;
|
|
@@ -61,7 +69,11 @@ const getFilterProjections = ({ member, tableSchema, measures, query, }) => {
|
|
|
61
69
|
}
|
|
62
70
|
const isMeasure = (0, find_in_table_schema_1.findInMeasureSchema)(memberWithoutTable, tableSchema);
|
|
63
71
|
if (isMeasure) {
|
|
64
|
-
return (0, exports.getFilterMeasureProjection)({
|
|
72
|
+
return (0, exports.getFilterMeasureProjection)({
|
|
73
|
+
key: member,
|
|
74
|
+
tableSchema,
|
|
75
|
+
measures,
|
|
76
|
+
});
|
|
65
77
|
}
|
|
66
78
|
return {
|
|
67
79
|
sql: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-aliased-columns-from-filters.js","sourceRoot":"","sources":["../../../../meerkat-core/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"get-aliased-columns-from-filters.js","sourceRoot":"","sources":["../../../../meerkat-core/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getProjectionClause = void 0;
|
|
4
4
|
const cube_measure_transformer_1 = require("../cube-measure-transformer/cube-measure-transformer");
|
|
5
|
-
const
|
|
5
|
+
const get_alias_1 = require("../member-formatters/get-alias");
|
|
6
6
|
const split_into_data_source_and_fields_1 = require("../member-formatters/split-into-data-source-and-fields");
|
|
7
7
|
const get_aliased_columns_from_filters_1 = require("./get-aliased-columns-from-filters");
|
|
8
8
|
const sql_expression_modifiers_1 = require("./sql-expression-modifiers");
|
|
@@ -32,7 +32,11 @@ const getProjectionClause = (query, tableSchema, aliasedColumnSet) => {
|
|
|
32
32
|
query,
|
|
33
33
|
});
|
|
34
34
|
return memberClauseAggregator({
|
|
35
|
-
member: (0,
|
|
35
|
+
member: (0, get_alias_1.getAliasFromSchema)({
|
|
36
|
+
name: member,
|
|
37
|
+
tableSchema,
|
|
38
|
+
aliasContext: { isAstIdentifier: false },
|
|
39
|
+
}),
|
|
36
40
|
aliasedColumnSet,
|
|
37
41
|
acc,
|
|
38
42
|
currentIndex,
|
|
@@ -66,7 +70,11 @@ const getProjectionClause = (query, tableSchema, aliasedColumnSet) => {
|
|
|
66
70
|
const columnsUsedInMeasures = (0, cube_measure_transformer_1.getAllColumnUsedInMeasures)(usedMeasureObjects, tableSchema);
|
|
67
71
|
let columnsUsedInMeasuresInProjection = '';
|
|
68
72
|
columnsUsedInMeasures.forEach((column, index) => {
|
|
69
|
-
const safeKey = (0,
|
|
73
|
+
const safeKey = (0, get_alias_1.getAliasFromSchema)({
|
|
74
|
+
name: column,
|
|
75
|
+
tableSchema,
|
|
76
|
+
aliasContext: { isAstIdentifier: false },
|
|
77
|
+
});
|
|
70
78
|
columnsUsedInMeasuresInProjection += `${column} AS ${safeKey}`;
|
|
71
79
|
if (index !== columnsUsedInMeasures.length - 1) {
|
|
72
80
|
columnsUsedInMeasuresInProjection += ', ';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-projection-clause.js","sourceRoot":"","sources":["../../../../meerkat-core/src/get-wrapped-base-query-with-projections/get-projection-clause.ts"],"names":[],"mappings":";;;AAAA,mGAAkG;AAClG,
|
|
1
|
+
{"version":3,"file":"get-projection-clause.js","sourceRoot":"","sources":["../../../../meerkat-core/src/get-wrapped-base-query-with-projections/get-projection-clause.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TableSchema } from '../types/cube-types';
|
|
2
|
+
export interface AliasContext {
|
|
3
|
+
isAstIdentifier?: boolean;
|
|
4
|
+
isTableSchemaAlias?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const getAliasFromSchema: ({ name, tableSchema, aliasContext, }: {
|
|
7
|
+
name: string;
|
|
8
|
+
tableSchema: TableSchema;
|
|
9
|
+
aliasContext: AliasContext;
|
|
10
|
+
}) => string;
|
|
11
|
+
export declare const constructAlias: ({ name, alias, aliasContext, }: {
|
|
12
|
+
name: string;
|
|
13
|
+
alias?: string | undefined;
|
|
14
|
+
aliasContext: AliasContext;
|
|
15
|
+
}) => string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.constructAlias = exports.getAliasFromSchema = void 0;
|
|
4
|
+
const find_in_table_schema_1 = require("../utils/find-in-table-schema");
|
|
5
|
+
const member_key_to_safe_key_1 = require("./member-key-to-safe-key");
|
|
6
|
+
const split_into_data_source_and_fields_1 = require("./split-into-data-source-and-fields");
|
|
7
|
+
const shouldUseSafeAlias = ({ isAstIdentifier, isTableSchemaAlias, }) => {
|
|
8
|
+
if (isAstIdentifier) {
|
|
9
|
+
// Duckdb will automatically quote identifiers that contain special characters or spaces.
|
|
10
|
+
// when converting the AST to SQL.
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (isTableSchemaAlias) {
|
|
14
|
+
// No need to wrap alias in quotes as part of table schema
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
// For other cases such as directly using the alias in SQL queries,
|
|
18
|
+
// we should make the alias safe to avoid issues with special characters or spaces.
|
|
19
|
+
return true;
|
|
20
|
+
};
|
|
21
|
+
const getAliasFromSchema = ({ name, tableSchema, aliasContext, }) => {
|
|
22
|
+
var _a;
|
|
23
|
+
const [, field] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(name);
|
|
24
|
+
return (0, exports.constructAlias)({
|
|
25
|
+
name,
|
|
26
|
+
alias: (_a = (0, find_in_table_schema_1.findInSchema)(field, tableSchema)) === null || _a === void 0 ? void 0 : _a.alias,
|
|
27
|
+
aliasContext,
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
exports.getAliasFromSchema = getAliasFromSchema;
|
|
31
|
+
const constructAlias = ({ name, alias, aliasContext, }) => {
|
|
32
|
+
if (alias) {
|
|
33
|
+
if (shouldUseSafeAlias(aliasContext)) {
|
|
34
|
+
// Alias may contain special characters or spaces, so we need to wrap in quotes.
|
|
35
|
+
return `"${alias}"`;
|
|
36
|
+
}
|
|
37
|
+
return alias;
|
|
38
|
+
}
|
|
39
|
+
return (0, member_key_to_safe_key_1.memberKeyToSafeKey)(name);
|
|
40
|
+
};
|
|
41
|
+
exports.constructAlias = constructAlias;
|
|
42
|
+
//# sourceMappingURL=get-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-alias.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/get-alias.ts"],"names":[],"mappings":";;;AACA,wEAA6D;AAC7D,qEAA8D;AAC9D,2FAAmF;AAOnF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,eAAe,EACf,kBAAkB,GACL,EAAW,EAAE;IAC1B,IAAI,eAAe,EAAE;QACnB,yFAAyF;QACzF,kCAAkC;QAClC,OAAO,KAAK,CAAC;KACd;IACD,IAAI,kBAAkB,EAAE;QACtB,0DAA0D;QAC1D,OAAO,KAAK,CAAC;KACd;IACD,mEAAmE;IACnE,mFAAmF;IACnF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,WAAW,EACX,YAAY,GAKb,EAAU,EAAE;;IACX,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAA,gEAA4B,EAAC,IAAI,CAAC,CAAC;IACrD,OAAO,IAAA,sBAAc,EAAC;QACpB,IAAI;QACJ,KAAK,EAAE,MAAA,IAAA,mCAAY,EAAC,KAAK,EAAE,WAAW,CAAC,0CAAE,KAAK;QAC9C,YAAY;KACb,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,kBAAkB,sBAe7B;AAEK,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,EACJ,KAAK,EACL,YAAY,GAKb,EAAU,EAAE;IACX,IAAI,KAAK,EAAE;QACT,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE;YACpC,gFAAgF;YAChF,OAAO,IAAI,KAAK,GAAG,CAAC;SACrB;QACD,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAA,2CAAkB,EAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getNamespacedKey: (namespace: string, name: string) => string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNamespacedKey = void 0;
|
|
4
|
+
const getNamespacedKey = (namespace, name) => `${namespace}.${name}`;
|
|
5
|
+
exports.getNamespacedKey = getNamespacedKey;
|
|
6
|
+
//# sourceMappingURL=get-namespaced-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-namespaced-key.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/get-namespaced-key.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CAC1E,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;AADZ,QAAA,gBAAgB,oBACJ"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { COLUMN_NAME_DELIMITER } from './constants';
|
|
2
|
+
export { constructAlias, getAliasFromSchema } from './get-alias';
|
|
3
|
+
export { getNamespacedKey } from './get-namespaced-key';
|
|
2
4
|
export { memberKeyToSafeKey } from './member-key-to-safe-key';
|
|
3
5
|
export { splitIntoDataSourceAndFields } from './split-into-data-source-and-fields';
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.splitIntoDataSourceAndFields = exports.memberKeyToSafeKey = exports.COLUMN_NAME_DELIMITER = void 0;
|
|
3
|
+
exports.splitIntoDataSourceAndFields = exports.memberKeyToSafeKey = exports.getNamespacedKey = exports.getAliasFromSchema = exports.constructAlias = exports.COLUMN_NAME_DELIMITER = void 0;
|
|
4
4
|
var constants_1 = require("./constants");
|
|
5
5
|
Object.defineProperty(exports, "COLUMN_NAME_DELIMITER", { enumerable: true, get: function () { return constants_1.COLUMN_NAME_DELIMITER; } });
|
|
6
|
+
var get_alias_1 = require("./get-alias");
|
|
7
|
+
Object.defineProperty(exports, "constructAlias", { enumerable: true, get: function () { return get_alias_1.constructAlias; } });
|
|
8
|
+
Object.defineProperty(exports, "getAliasFromSchema", { enumerable: true, get: function () { return get_alias_1.getAliasFromSchema; } });
|
|
9
|
+
var get_namespaced_key_1 = require("./get-namespaced-key");
|
|
10
|
+
Object.defineProperty(exports, "getNamespacedKey", { enumerable: true, get: function () { return get_namespaced_key_1.getNamespacedKey; } });
|
|
6
11
|
var member_key_to_safe_key_1 = require("./member-key-to-safe-key");
|
|
7
12
|
Object.defineProperty(exports, "memberKeyToSafeKey", { enumerable: true, get: function () { return member_key_to_safe_key_1.memberKeyToSafeKey; } });
|
|
8
13
|
var split_into_data_source_and_fields_1 = require("./split-into-data-source-and-fields");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/index.ts"],"names":[],"mappings":";;;AAAA,yCAAoD;AAA3C,kHAAA,qBAAqB,OAAA;AAC9B,mEAA8D;AAArD,4HAAA,kBAAkB,OAAA;AAC3B,yFAAmF;AAA1E,iJAAA,4BAA4B,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/index.ts"],"names":[],"mappings":";;;AAAA,yCAAoD;AAA3C,kHAAA,qBAAqB,OAAA;AAC9B,yCAAiE;AAAxD,2GAAA,cAAc,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAC3C,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,mEAA8D;AAArD,4HAAA,kBAAkB,OAAA;AAC3B,yFAAmF;AAA1E,iJAAA,4BAA4B,OAAA"}
|
|
@@ -8,12 +8,13 @@ export declare const createBaseTableSchema: (baseSql: string, tableSchemas: Tabl
|
|
|
8
8
|
dimensions: {
|
|
9
9
|
name: string;
|
|
10
10
|
sql: string;
|
|
11
|
-
type:
|
|
11
|
+
type: "string" | "number" | "boolean" | "string_array" | "time" | "number_array";
|
|
12
|
+
alias: string;
|
|
12
13
|
}[];
|
|
13
14
|
joins: {
|
|
14
15
|
sql: string;
|
|
15
16
|
}[];
|
|
16
17
|
};
|
|
17
|
-
export declare const generateResolutionSchemas: (config: ResolutionConfig) => TableSchema[];
|
|
18
|
+
export declare const generateResolutionSchemas: (config: ResolutionConfig, baseTableSchemas: TableSchema[]) => TableSchema[];
|
|
18
19
|
export declare const generateResolvedDimensions: (query: Query, config: ResolutionConfig) => Member[];
|
|
19
|
-
export declare const generateResolutionJoinPaths: (resolutionConfig: ResolutionConfig) => JoinPath[];
|
|
20
|
+
export declare const generateResolutionJoinPaths: (resolutionConfig: ResolutionConfig, baseTableSchemas: TableSchema[]) => JoinPath[];
|
|
@@ -1,61 +1,77 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateResolutionJoinPaths = exports.generateResolvedDimensions = exports.generateResolutionSchemas = exports.createBaseTableSchema = void 0;
|
|
4
|
-
const
|
|
4
|
+
const member_formatters_1 = require("../member-formatters");
|
|
5
|
+
const find_in_table_schema_1 = require("../utils/find-in-table-schema");
|
|
5
6
|
const types_1 = require("./types");
|
|
6
|
-
const
|
|
7
|
-
const [tableName, columnName] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(dim);
|
|
8
|
-
const tableSchema = tableSchemas.find((ts) => ts.name === tableName);
|
|
9
|
-
if (!tableSchema) {
|
|
10
|
-
throw new Error(`Table schema not found for ${tableName}`);
|
|
11
|
-
}
|
|
12
|
-
const dimension = tableSchema.dimensions.find((d) => d.name === columnName);
|
|
13
|
-
if (!dimension) {
|
|
14
|
-
throw new Error(`Dimension not found: ${dim}`);
|
|
15
|
-
}
|
|
7
|
+
const constructBaseDimension = (name, schema) => {
|
|
16
8
|
return {
|
|
17
|
-
name:
|
|
18
|
-
sql: `${types_1.BASE_DATA_SOURCE_NAME}.${
|
|
19
|
-
|
|
9
|
+
name: (0, member_formatters_1.memberKeyToSafeKey)(name),
|
|
10
|
+
sql: `${types_1.BASE_DATA_SOURCE_NAME}.${(0, member_formatters_1.constructAlias)({
|
|
11
|
+
name,
|
|
12
|
+
alias: schema.alias,
|
|
13
|
+
aliasContext: { isAstIdentifier: false },
|
|
14
|
+
})}`,
|
|
15
|
+
type: schema.type,
|
|
16
|
+
// Constructs alias to match the name in the base query.
|
|
17
|
+
alias: (0, member_formatters_1.constructAlias)({
|
|
18
|
+
name,
|
|
19
|
+
alias: schema.alias,
|
|
20
|
+
aliasContext: { isTableSchemaAlias: true },
|
|
21
|
+
}),
|
|
20
22
|
};
|
|
21
23
|
};
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
const createBaseTableSchema = (baseSql, tableSchemas, resolutionConfig, measures, dimensions) => {
|
|
25
|
+
const schemaByName = {};
|
|
26
|
+
tableSchemas.forEach((tableSchema) => {
|
|
27
|
+
tableSchema.dimensions.forEach((dimension) => {
|
|
28
|
+
schemaByName[(0, member_formatters_1.getNamespacedKey)(tableSchema.name, dimension.name)] =
|
|
29
|
+
dimension;
|
|
30
|
+
});
|
|
31
|
+
tableSchema.measures.forEach((measure) => {
|
|
32
|
+
schemaByName[(0, member_formatters_1.getNamespacedKey)(tableSchema.name, measure.name)] = measure;
|
|
33
|
+
});
|
|
34
|
+
});
|
|
32
35
|
return {
|
|
33
|
-
name:
|
|
34
|
-
sql:
|
|
35
|
-
|
|
36
|
+
name: types_1.BASE_DATA_SOURCE_NAME,
|
|
37
|
+
sql: baseSql,
|
|
38
|
+
measures: [],
|
|
39
|
+
dimensions: [...measures, ...(dimensions || [])].map((member) => {
|
|
40
|
+
const schema = schemaByName[member];
|
|
41
|
+
if (schema) {
|
|
42
|
+
return constructBaseDimension(member, schema);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error(`Not found: ${member}`);
|
|
46
|
+
}
|
|
47
|
+
}),
|
|
48
|
+
joins: resolutionConfig.columnConfigs.map((config) => {
|
|
49
|
+
var _a;
|
|
50
|
+
return ({
|
|
51
|
+
sql: `${types_1.BASE_DATA_SOURCE_NAME}.${(0, member_formatters_1.constructAlias)({
|
|
52
|
+
name: config.name,
|
|
53
|
+
alias: (_a = schemaByName[config.name]) === null || _a === void 0 ? void 0 : _a.alias,
|
|
54
|
+
aliasContext: { isAstIdentifier: false },
|
|
55
|
+
})} = ${(0, member_formatters_1.memberKeyToSafeKey)(config.name)}.${config.joinColumn}`,
|
|
56
|
+
});
|
|
57
|
+
}),
|
|
36
58
|
};
|
|
37
59
|
};
|
|
38
|
-
const createBaseTableSchema = (baseSql, tableSchemas, resolutionConfig, measures, dimensions) => ({
|
|
39
|
-
name: types_1.BASE_DATA_SOURCE_NAME,
|
|
40
|
-
sql: baseSql,
|
|
41
|
-
measures: [],
|
|
42
|
-
dimensions: [
|
|
43
|
-
...(dimensions || []).map((dim) => resolveDimension(dim, tableSchemas)),
|
|
44
|
-
...(measures || []).map((meas) => resolveMeasure(meas, tableSchemas)),
|
|
45
|
-
],
|
|
46
|
-
joins: resolutionConfig.columnConfigs.map((config) => ({
|
|
47
|
-
sql: `${types_1.BASE_DATA_SOURCE_NAME}.${generateName(config.name)} = ${generateName(config.name)}.${config.joinColumn}`,
|
|
48
|
-
})),
|
|
49
|
-
});
|
|
50
60
|
exports.createBaseTableSchema = createBaseTableSchema;
|
|
51
|
-
const generateResolutionSchemas = (config) => {
|
|
61
|
+
const generateResolutionSchemas = (config, baseTableSchemas) => {
|
|
52
62
|
const resolutionSchemas = [];
|
|
53
63
|
config.columnConfigs.forEach((colConfig) => {
|
|
64
|
+
var _a;
|
|
54
65
|
const tableSchema = config.tableSchemas.find((ts) => ts.name === colConfig.source);
|
|
55
66
|
if (!tableSchema) {
|
|
56
67
|
throw new Error(`Table schema not found for ${colConfig.source}`);
|
|
57
68
|
}
|
|
58
|
-
const baseName =
|
|
69
|
+
const baseName = (0, member_formatters_1.memberKeyToSafeKey)(colConfig.name);
|
|
70
|
+
const baseAlias = (0, member_formatters_1.constructAlias)({
|
|
71
|
+
name: colConfig.name,
|
|
72
|
+
alias: (_a = (0, find_in_table_schema_1.findInSchemas)(colConfig.name, baseTableSchemas)) === null || _a === void 0 ? void 0 : _a.alias,
|
|
73
|
+
aliasContext: { isTableSchemaAlias: true },
|
|
74
|
+
});
|
|
59
75
|
// For each column that needs to be resolved, create a copy of the relevant table schema.
|
|
60
76
|
// We use the name of the column in the base query as the table schema name
|
|
61
77
|
// to avoid conflicts.
|
|
@@ -64,14 +80,21 @@ const generateResolutionSchemas = (config) => {
|
|
|
64
80
|
sql: tableSchema.sql,
|
|
65
81
|
measures: [],
|
|
66
82
|
dimensions: colConfig.resolutionColumns.map((col) => {
|
|
67
|
-
const dimension =
|
|
83
|
+
const dimension = (0, find_in_table_schema_1.findInDimensionSchemas)((0, member_formatters_1.getNamespacedKey)(colConfig.source, col), config.tableSchemas);
|
|
68
84
|
if (!dimension) {
|
|
69
85
|
throw new Error(`Dimension not found: ${col}`);
|
|
70
86
|
}
|
|
71
87
|
return {
|
|
72
|
-
name
|
|
88
|
+
// Need to create a new name due to limitations with how
|
|
89
|
+
// CubeToSql handles duplicate dimension names between different sources.
|
|
90
|
+
name: (0, member_formatters_1.memberKeyToSafeKey)((0, member_formatters_1.getNamespacedKey)(colConfig.name, col)),
|
|
73
91
|
sql: `${baseName}.${col}`,
|
|
74
92
|
type: dimension.type,
|
|
93
|
+
alias: `${baseAlias} - ${(0, member_formatters_1.constructAlias)({
|
|
94
|
+
name: col,
|
|
95
|
+
alias: dimension.alias,
|
|
96
|
+
aliasContext: { isTableSchemaAlias: true },
|
|
97
|
+
})}`,
|
|
75
98
|
};
|
|
76
99
|
}),
|
|
77
100
|
};
|
|
@@ -85,28 +108,34 @@ const generateResolvedDimensions = (query, config) => {
|
|
|
85
108
|
...query.measures,
|
|
86
109
|
...(query.dimensions || []),
|
|
87
110
|
].flatMap((dimension) => {
|
|
88
|
-
const
|
|
89
|
-
if (!
|
|
90
|
-
return [
|
|
111
|
+
const columnConfig = config.columnConfigs.find((c) => c.name === dimension);
|
|
112
|
+
if (!columnConfig) {
|
|
113
|
+
return [
|
|
114
|
+
(0, member_formatters_1.getNamespacedKey)(types_1.BASE_DATA_SOURCE_NAME, (0, member_formatters_1.memberKeyToSafeKey)(dimension)),
|
|
115
|
+
];
|
|
91
116
|
}
|
|
92
117
|
else {
|
|
93
|
-
return
|
|
118
|
+
return columnConfig.resolutionColumns.map((col) => (0, member_formatters_1.getNamespacedKey)((0, member_formatters_1.memberKeyToSafeKey)(dimension), (0, member_formatters_1.memberKeyToSafeKey)((0, member_formatters_1.getNamespacedKey)(columnConfig.name, col))));
|
|
94
119
|
}
|
|
95
120
|
});
|
|
96
121
|
return resolvedDimensions;
|
|
97
122
|
};
|
|
98
123
|
exports.generateResolvedDimensions = generateResolvedDimensions;
|
|
99
|
-
const generateResolutionJoinPaths = (resolutionConfig) => {
|
|
100
|
-
return resolutionConfig.columnConfigs.map((config) =>
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
124
|
+
const generateResolutionJoinPaths = (resolutionConfig, baseTableSchemas) => {
|
|
125
|
+
return resolutionConfig.columnConfigs.map((config) => {
|
|
126
|
+
var _a;
|
|
127
|
+
return [
|
|
128
|
+
{
|
|
129
|
+
left: types_1.BASE_DATA_SOURCE_NAME,
|
|
130
|
+
right: (0, member_formatters_1.memberKeyToSafeKey)(config.name),
|
|
131
|
+
on: (0, member_formatters_1.constructAlias)({
|
|
132
|
+
name: config.name,
|
|
133
|
+
alias: (_a = (0, find_in_table_schema_1.findInSchemas)(config.name, baseTableSchemas)) === null || _a === void 0 ? void 0 : _a.alias,
|
|
134
|
+
aliasContext: { isAstIdentifier: false },
|
|
135
|
+
}),
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
});
|
|
107
139
|
};
|
|
108
140
|
exports.generateResolutionJoinPaths = generateResolutionJoinPaths;
|
|
109
|
-
// Generates a valid column name from a generic reference
|
|
110
|
-
// by replacing '.' with '__'.
|
|
111
|
-
const generateName = (columnName) => columnName.replace('.', '__');
|
|
112
141
|
//# sourceMappingURL=resolution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../../../meerkat-core/src/resolution/resolution.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../../../meerkat-core/src/resolution/resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export type Measure = {
|
|
|
4
4
|
name: string;
|
|
5
5
|
sql: string;
|
|
6
6
|
type: MeasureType;
|
|
7
|
+
alias?: string;
|
|
7
8
|
};
|
|
8
9
|
export type Dimension = {
|
|
9
10
|
name: string;
|
|
@@ -12,6 +13,7 @@ export type Dimension = {
|
|
|
12
13
|
modifier?: {
|
|
13
14
|
shouldUnnestGroupBy?: boolean;
|
|
14
15
|
};
|
|
16
|
+
alias?: string;
|
|
15
17
|
};
|
|
16
18
|
export type Join = {
|
|
17
19
|
sql: string;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { TableSchema } from
|
|
1
|
+
import { TableSchema } from '../types/cube-types';
|
|
2
2
|
export declare const findInDimensionSchema: (measure: string, tableSchema: TableSchema) => import("../types/cube-types").Dimension | undefined;
|
|
3
3
|
export declare const findInMeasureSchema: (measure: string, tableSchema: TableSchema) => import("../types/cube-types").Measure | undefined;
|
|
4
4
|
export declare const findInSchema: (measure: string, tableSchema: TableSchema) => import("../types/cube-types").Measure | undefined;
|
|
5
|
+
export declare const findInDimensionSchemas: (name: string, tableSchemas: TableSchema[]) => import("../types/cube-types").Dimension | undefined;
|
|
6
|
+
export declare const findInSchemas: (name: string, tableSchemas: TableSchema[]) => import("../types/cube-types").Measure | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findInSchema = exports.findInMeasureSchema = exports.findInDimensionSchema = void 0;
|
|
3
|
+
exports.findInSchemas = exports.findInDimensionSchemas = exports.findInSchema = exports.findInMeasureSchema = exports.findInDimensionSchema = void 0;
|
|
4
|
+
const member_formatters_1 = require("../member-formatters");
|
|
4
5
|
const findInDimensionSchema = (measure, tableSchema) => {
|
|
5
6
|
return tableSchema.dimensions.find((m) => m.name === measure);
|
|
6
7
|
};
|
|
@@ -11,9 +12,9 @@ const findInMeasureSchema = (measure, tableSchema) => {
|
|
|
11
12
|
exports.findInMeasureSchema = findInMeasureSchema;
|
|
12
13
|
const findInSchema = (measure, tableSchema) => {
|
|
13
14
|
/*
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
** Using the key passed as measureWithoutTable this function searches the table schema.
|
|
16
|
+
** It returns either the first dimension or measure found.
|
|
17
|
+
*/
|
|
17
18
|
const foundDimension = (0, exports.findInDimensionSchema)(measure, tableSchema);
|
|
18
19
|
if (foundDimension) {
|
|
19
20
|
return foundDimension;
|
|
@@ -25,4 +26,30 @@ const findInSchema = (measure, tableSchema) => {
|
|
|
25
26
|
return undefined;
|
|
26
27
|
};
|
|
27
28
|
exports.findInSchema = findInSchema;
|
|
29
|
+
const findInDimensionSchemas = (name, tableSchemas) => {
|
|
30
|
+
/*
|
|
31
|
+
** Finds the dimension in the provided table schemas.
|
|
32
|
+
** Assumes the provided name is namespaced as `tableName.columnName`.
|
|
33
|
+
*/
|
|
34
|
+
const [tableName, columnName] = (0, member_formatters_1.splitIntoDataSourceAndFields)(name);
|
|
35
|
+
const tableSchema = tableSchemas.find((table) => table.name === tableName);
|
|
36
|
+
if (!tableSchema) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
return (0, exports.findInDimensionSchema)(columnName, tableSchema);
|
|
40
|
+
};
|
|
41
|
+
exports.findInDimensionSchemas = findInDimensionSchemas;
|
|
42
|
+
const findInSchemas = (name, tableSchemas) => {
|
|
43
|
+
/*
|
|
44
|
+
** Finds the dimension or measure in the provided table schemas.
|
|
45
|
+
** Assumes the provided name is namespaced as `tableName.columnName`.
|
|
46
|
+
*/
|
|
47
|
+
const [tableName, columnName] = (0, member_formatters_1.splitIntoDataSourceAndFields)(name);
|
|
48
|
+
const tableSchema = tableSchemas.find((table) => table.name === tableName);
|
|
49
|
+
if (!tableSchema) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return (0, exports.findInSchema)(columnName, tableSchema);
|
|
53
|
+
};
|
|
54
|
+
exports.findInSchemas = findInSchemas;
|
|
28
55
|
//# sourceMappingURL=find-in-table-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-in-table-schema.js","sourceRoot":"","sources":["../../../../meerkat-core/src/utils/find-in-table-schema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"find-in-table-schema.js","sourceRoot":"","sources":["../../../../meerkat-core/src/utils/find-in-table-schema.ts"],"names":[],"mappings":";;;AAAA,4DAAoE;AAG7D,MAAM,qBAAqB,GAAG,CACnC,OAAe,EACf,WAAwB,EACxB,EAAE;IACF,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC;AAEK,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACf,WAAwB,EACxB,EAAE;IACF,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B;AAEK,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,WAAwB,EAAE,EAAE;IACxE;;;OAGG;IACH,MAAM,cAAc,GAAG,IAAA,6BAAqB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnE,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC;KACvB;IACD,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC;KACrB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAdW,QAAA,YAAY,gBAcvB;AAEK,MAAM,sBAAsB,GAAG,CACpC,IAAY,EACZ,YAA2B,EAC3B,EAAE;IACF;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gDAA4B,EAAC,IAAI,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC3E,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAA,6BAAqB,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC,CAAC;AAdW,QAAA,sBAAsB,0BAcjC;AAEK,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,YAA2B,EAAE,EAAE;IACzE;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gDAA4B,EAAC,IAAI,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC3E,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAA,oBAAY,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC/C,CAAC,CAAC;AAXW,QAAA,aAAa,iBAWxB"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { QueryFiltersWithInfo } from
|
|
2
|
-
|
|
3
|
-
export declare const modifyLeafMeerkatFilter: <T>(filters: QueryFiltersWithInfo, callback: (arg: QueryFilter) => T) => T[] | undefined;
|
|
1
|
+
import { QueryFiltersWithInfo, QueryOperatorsWithInfo } from '../cube-to-duckdb/cube-filter-to-duckdb';
|
|
2
|
+
export declare const modifyLeafMeerkatFilter: <T>(filters: QueryFiltersWithInfo, callback: (arg: QueryOperatorsWithInfo) => T) => T[] | undefined;
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.modifyLeafMeerkatFilter = void 0;
|
|
4
4
|
const modifyLeafMeerkatFilter = (filters, callback) => {
|
|
5
5
|
/*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
** This function traverse the QueryFiltersWithInfo JSON, and calls the callback for each leaf type.
|
|
7
|
+
** This way we need no rewrite the traversal logic again and again.
|
|
8
|
+
** The return value of the callback will show up the same path in the resulting object as in the original object
|
|
9
|
+
*/
|
|
10
10
|
if (!filters)
|
|
11
11
|
return undefined;
|
|
12
12
|
return filters.map((item) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modify-meerkat-filter.js","sourceRoot":"","sources":["../../../../meerkat-core/src/utils/modify-meerkat-filter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"modify-meerkat-filter.js","sourceRoot":"","sources":["../../../../meerkat-core/src/utils/modify-meerkat-filter.ts"],"names":[],"mappings":";;;AAKO,MAAM,uBAAuB,GAAG,CACrC,OAA6B,EAC7B,QAA4C,EAC3B,EAAE;IACnB;;;;OAIG;IACH,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;aAAM;YACL,MAAM,UAAU,GACd,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAA,+BAAuB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM,SAAS,GACb,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAA,+BAAuB,EAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAExE,OAAO,gCACF,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACvC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnC,CAAC;SACR;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzBW,QAAA,uBAAuB,2BAyBlC"}
|