@devrev/meerkat-node 0.0.105 → 0.0.107
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.
|
@@ -13,26 +13,57 @@ const cubeQueryToSQLWithResolution = async ({ query, tableSchemas, resolutionCon
|
|
|
13
13
|
tableSchemas,
|
|
14
14
|
contextParams
|
|
15
15
|
});
|
|
16
|
-
if
|
|
17
|
-
|
|
16
|
+
// Check if resolution should be skipped
|
|
17
|
+
if ((0, _meerkatcore.shouldSkipResolution)(resolutionConfig, query, columnProjections)) {
|
|
18
18
|
return baseSql;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
if (!columnProjections) {
|
|
21
|
+
columnProjections = [
|
|
22
|
+
...query.dimensions || [],
|
|
23
|
+
...query.measures
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
// This is to ensure that, only the column projection columns
|
|
27
|
+
// are being resolved and other definitions are ignored.
|
|
28
|
+
resolutionConfig.columnConfigs = resolutionConfig.columnConfigs.filter((config)=>{
|
|
29
|
+
return columnProjections == null ? void 0 : columnProjections.includes(config.name);
|
|
30
|
+
});
|
|
31
|
+
const baseSchema = (0, _meerkatcore.createBaseTableSchema)(baseSql, tableSchemas, resolutionConfig, [], columnProjections);
|
|
32
|
+
const rowIdDimension = {
|
|
33
|
+
name: _meerkatcore.ROW_ID_DIMENSION_NAME,
|
|
34
|
+
sql: (0, _meerkatcore.generateRowNumberSql)(query, baseSchema.dimensions, _meerkatcore.BASE_DATA_SOURCE_NAME),
|
|
35
|
+
type: 'number',
|
|
36
|
+
alias: _meerkatcore.ROW_ID_DIMENSION_NAME
|
|
33
37
|
};
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
baseSchema.dimensions.push(rowIdDimension);
|
|
39
|
+
columnProjections.push(_meerkatcore.ROW_ID_DIMENSION_NAME);
|
|
40
|
+
// Doing this because we need to use the original name of the column in the base table schema.
|
|
41
|
+
resolutionConfig.columnConfigs.forEach((config)=>{
|
|
42
|
+
config.name = (0, _meerkatcore.memberKeyToSafeKey)(config.name);
|
|
43
|
+
});
|
|
44
|
+
// Generate SQL with row_id and unnested arrays
|
|
45
|
+
const unnestTableSchema = await (0, _meerkatcore.getUnnestTableSchema)({
|
|
46
|
+
baseTableSchema: baseSchema,
|
|
47
|
+
resolutionConfig,
|
|
48
|
+
contextParams,
|
|
49
|
+
cubeQueryToSQL: async (params)=>(0, _cubetosql.cubeQueryToSQL)(params)
|
|
50
|
+
});
|
|
51
|
+
// Apply resolution (join with lookup tables)
|
|
52
|
+
const resolvedTableSchema = await (0, _meerkatcore.getResolvedTableSchema)({
|
|
53
|
+
baseTableSchema: unnestTableSchema,
|
|
54
|
+
resolutionConfig,
|
|
55
|
+
contextParams,
|
|
56
|
+
columnProjections,
|
|
57
|
+
cubeQueryToSQL: async (params)=>(0, _cubetosql.cubeQueryToSQL)(params)
|
|
58
|
+
});
|
|
59
|
+
// Re-aggregate to reverse the unnest
|
|
60
|
+
const aggregatedSql = await (0, _meerkatcore.getAggregatedSql)({
|
|
61
|
+
resolvedTableSchema,
|
|
62
|
+
resolutionConfig,
|
|
63
|
+
contextParams,
|
|
64
|
+
cubeQueryToSQL: async (params)=>(0, _cubetosql.cubeQueryToSQL)(params)
|
|
65
|
+
});
|
|
66
|
+
return aggregatedSql;
|
|
36
67
|
};
|
|
37
68
|
|
|
38
69
|
//# sourceMappingURL=cube-to-sql-with-resolution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-node/src/cube-to-sql-with-resolution/cube-to-sql-with-resolution.ts"],"sourcesContent":["import {\n ContextParams,\n createBaseTableSchema,\n
|
|
1
|
+
{"version":3,"sources":["../../../meerkat-node/src/cube-to-sql-with-resolution/cube-to-sql-with-resolution.ts"],"sourcesContent":["import {\n BASE_DATA_SOURCE_NAME,\n ContextParams,\n getAggregatedSql as coreGetAggregatedSql,\n getResolvedTableSchema as coreGetResolvedTableSchema,\n getUnnestTableSchema as coreGetUnnestTableSchema,\n createBaseTableSchema,\n Dimension,\n generateRowNumberSql,\n memberKeyToSafeKey,\n Query,\n ResolutionConfig,\n ROW_ID_DIMENSION_NAME,\n shouldSkipResolution,\n TableSchema,\n} from '@devrev/meerkat-core';\nimport { cubeQueryToSQL } from '../cube-to-sql/cube-to-sql';\n\nexport interface CubeQueryToSQLWithResolutionParams {\n query: Query;\n tableSchemas: TableSchema[];\n resolutionConfig: ResolutionConfig;\n columnProjections?: string[];\n contextParams?: ContextParams;\n}\n\nexport const cubeQueryToSQLWithResolution = async ({\n query,\n tableSchemas,\n resolutionConfig,\n columnProjections,\n contextParams,\n}: CubeQueryToSQLWithResolutionParams) => {\n const baseSql = await cubeQueryToSQL({\n query,\n tableSchemas,\n contextParams,\n });\n\n // Check if resolution should be skipped\n if (shouldSkipResolution(resolutionConfig, query, columnProjections)) {\n return baseSql;\n }\n\n if (!columnProjections) {\n columnProjections = [...(query.dimensions || []), ...query.measures];\n }\n // This is to ensure that, only the column projection columns\n // are being resolved and other definitions are ignored.\n resolutionConfig.columnConfigs = resolutionConfig.columnConfigs.filter(\n (config) => {\n return columnProjections?.includes(config.name);\n }\n );\n\n const baseSchema: TableSchema = createBaseTableSchema(\n baseSql,\n tableSchemas,\n resolutionConfig,\n [],\n columnProjections\n );\n const rowIdDimension: Dimension = {\n name: ROW_ID_DIMENSION_NAME,\n sql: generateRowNumberSql(\n query,\n baseSchema.dimensions,\n BASE_DATA_SOURCE_NAME\n ),\n type: 'number',\n alias: ROW_ID_DIMENSION_NAME,\n };\n baseSchema.dimensions.push(rowIdDimension);\n columnProjections.push(ROW_ID_DIMENSION_NAME);\n\n // Doing this because we need to use the original name of the column in the base table schema.\n resolutionConfig.columnConfigs.forEach((config) => {\n config.name = memberKeyToSafeKey(config.name);\n });\n\n // Generate SQL with row_id and unnested arrays\n const unnestTableSchema = await coreGetUnnestTableSchema({\n baseTableSchema: baseSchema,\n resolutionConfig,\n contextParams,\n cubeQueryToSQL: async (params) => cubeQueryToSQL(params),\n });\n\n // Apply resolution (join with lookup tables)\n const resolvedTableSchema = await coreGetResolvedTableSchema({\n baseTableSchema: unnestTableSchema,\n resolutionConfig,\n contextParams,\n columnProjections,\n cubeQueryToSQL: async (params) => cubeQueryToSQL(params),\n });\n\n // Re-aggregate to reverse the unnest\n const aggregatedSql = await coreGetAggregatedSql({\n resolvedTableSchema,\n resolutionConfig,\n contextParams,\n cubeQueryToSQL: async (params) => cubeQueryToSQL(params),\n });\n\n return aggregatedSql;\n};\n"],"names":["cubeQueryToSQLWithResolution","query","tableSchemas","resolutionConfig","columnProjections","contextParams","baseSql","cubeQueryToSQL","shouldSkipResolution","dimensions","measures","columnConfigs","filter","config","includes","name","baseSchema","createBaseTableSchema","rowIdDimension","ROW_ID_DIMENSION_NAME","sql","generateRowNumberSql","BASE_DATA_SOURCE_NAME","type","alias","push","forEach","memberKeyToSafeKey","unnestTableSchema","coreGetUnnestTableSchema","baseTableSchema","params","resolvedTableSchema","coreGetResolvedTableSchema","aggregatedSql","coreGetAggregatedSql"],"mappings":";+BA0BaA;;;eAAAA;;;6BAXN;2BACwB;AAUxB,MAAMA,+BAA+B,OAAO,EACjDC,KAAK,EACLC,YAAY,EACZC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,EACsB;IACnC,MAAMC,UAAU,MAAMC,IAAAA,yBAAc,EAAC;QACnCN;QACAC;QACAG;IACF;IAEA,wCAAwC;IACxC,IAAIG,IAAAA,iCAAoB,EAACL,kBAAkBF,OAAOG,oBAAoB;QACpE,OAAOE;IACT;IAEA,IAAI,CAACF,mBAAmB;QACtBA,oBAAoB;eAAKH,MAAMQ,UAAU,IAAI,EAAE;eAAMR,MAAMS,QAAQ;SAAC;IACtE;IACA,6DAA6D;IAC7D,wDAAwD;IACxDP,iBAAiBQ,aAAa,GAAGR,iBAAiBQ,aAAa,CAACC,MAAM,CACpE,CAACC;QACC,OAAOT,qCAAAA,kBAAmBU,QAAQ,CAACD,OAAOE,IAAI;IAChD;IAGF,MAAMC,aAA0BC,IAAAA,kCAAqB,EACnDX,SACAJ,cACAC,kBACA,EAAE,EACFC;IAEF,MAAMc,iBAA4B;QAChCH,MAAMI,kCAAqB;QAC3BC,KAAKC,IAAAA,iCAAoB,EACvBpB,OACAe,WAAWP,UAAU,EACrBa,kCAAqB;QAEvBC,MAAM;QACNC,OAAOL,kCAAqB;IAC9B;IACAH,WAAWP,UAAU,CAACgB,IAAI,CAACP;IAC3Bd,kBAAkBqB,IAAI,CAACN,kCAAqB;IAE5C,8FAA8F;IAC9FhB,iBAAiBQ,aAAa,CAACe,OAAO,CAAC,CAACb;QACtCA,OAAOE,IAAI,GAAGY,IAAAA,+BAAkB,EAACd,OAAOE,IAAI;IAC9C;IAEA,+CAA+C;IAC/C,MAAMa,oBAAoB,MAAMC,IAAAA,iCAAwB,EAAC;QACvDC,iBAAiBd;QACjBb;QACAE;QACAE,gBAAgB,OAAOwB,SAAWxB,IAAAA,yBAAc,EAACwB;IACnD;IAEA,8CAA8C;IAC9C,MAAMC,sBAAsB,MAAMC,IAAAA,mCAA0B,EAAC;QAC3DH,iBAAiBF;QACjBzB;QACAE;QACAD;QACAG,gBAAgB,OAAOwB,SAAWxB,IAAAA,yBAAc,EAACwB;IACnD;IAEA,qCAAqC;IACrC,MAAMG,gBAAgB,MAAMC,IAAAA,6BAAoB,EAAC;QAC/CH;QACA7B;QACAE;QACAE,gBAAgB,OAAOwB,SAAWxB,IAAAA,yBAAc,EAACwB;IACnD;IAEA,OAAOG;AACT"}
|