@devrev/meerkat-core 0.0.98 → 0.0.100
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-filter-transformer/base-condition-builder/base-condition-builder.js +3 -2
- package/src/cube-filter-transformer/base-condition-builder/base-condition-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/member-formatters/sanitize-value.d.ts +4 -0
- package/src/member-formatters/sanitize-value.js +11 -0
- package/src/member-formatters/sanitize-value.js.map +1 -0
- 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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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.valueBuilder = exports.baseArrayDuckdbCondition = exports.baseDuckdbCondition = void 0;
|
|
4
4
|
const constants_1 = require("../../member-formatters/constants");
|
|
5
|
+
const sanitize_value_1 = require("../../member-formatters/sanitize-value");
|
|
5
6
|
const index_1 = require("../../types/duckdb-serialization-types/index");
|
|
6
7
|
const cube_type_to_duckdb_type_1 = require("../../utils/cube-type-to-duckdb-type");
|
|
7
8
|
const get_type_info_1 = require("../../utils/get-type-info");
|
|
@@ -97,7 +98,7 @@ const valueBuilder = (value, memberInfo) => {
|
|
|
97
98
|
type_info: null,
|
|
98
99
|
},
|
|
99
100
|
is_null: false,
|
|
100
|
-
value: value,
|
|
101
|
+
value: (0, sanitize_value_1.sanitizeStringValue)(value),
|
|
101
102
|
};
|
|
102
103
|
case 'number': {
|
|
103
104
|
const parsedValue = parseFloat(value);
|
|
@@ -137,7 +138,7 @@ const valueBuilder = (value, memberInfo) => {
|
|
|
137
138
|
type_info: null,
|
|
138
139
|
},
|
|
139
140
|
is_null: false,
|
|
140
|
-
value: value,
|
|
141
|
+
value: (0, sanitize_value_1.sanitizeStringValue)(value),
|
|
141
142
|
};
|
|
142
143
|
}
|
|
143
144
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-condition-builder.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/base-condition-builder/base-condition-builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base-condition-builder.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/base-condition-builder/base-condition-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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitizeStringValue = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Sanitizes a string value for use in a SQL query
|
|
6
|
+
*/
|
|
7
|
+
const sanitizeStringValue = (value) => {
|
|
8
|
+
return value.replace(/'/g, "''");
|
|
9
|
+
};
|
|
10
|
+
exports.sanitizeStringValue = sanitizeStringValue;
|
|
11
|
+
//# sourceMappingURL=sanitize-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize-value.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/sanitize-value.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B"}
|
|
@@ -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"}
|