@devrev/meerkat-core 0.0.112 → 0.0.116

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.
Files changed (108) hide show
  1. package/package.json +1 -1
  2. package/src/ast-builder/ast-builder.d.ts +3 -1
  3. package/src/ast-builder/ast-builder.js +18 -15
  4. package/src/ast-builder/ast-builder.js.map +1 -1
  5. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.d.ts +37 -15
  6. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js +48 -15
  7. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -1
  8. package/src/cube-filter-transformer/contains/contains.d.ts +3 -9
  9. package/src/cube-filter-transformer/contains/contains.js +8 -12
  10. package/src/cube-filter-transformer/contains/contains.js.map +1 -1
  11. package/src/cube-filter-transformer/equals/equals-array.js +7 -11
  12. package/src/cube-filter-transformer/equals/equals-array.js.map +1 -1
  13. package/src/cube-filter-transformer/equals/equals.js +5 -5
  14. package/src/cube-filter-transformer/equals/equals.js.map +1 -1
  15. package/src/cube-filter-transformer/factory.d.ts +3 -2
  16. package/src/cube-filter-transformer/factory.js +23 -23
  17. package/src/cube-filter-transformer/factory.js.map +1 -1
  18. package/src/cube-filter-transformer/gt/gt.js +4 -4
  19. package/src/cube-filter-transformer/gt/gt.js.map +1 -1
  20. package/src/cube-filter-transformer/gte/gte.js +4 -4
  21. package/src/cube-filter-transformer/gte/gte.js.map +1 -1
  22. package/src/cube-filter-transformer/in/in.js +7 -11
  23. package/src/cube-filter-transformer/in/in.js.map +1 -1
  24. package/src/cube-filter-transformer/in-date-range/in-date-range.js +4 -4
  25. package/src/cube-filter-transformer/in-date-range/in-date-range.js.map +1 -1
  26. package/src/cube-filter-transformer/lt/lt.js +4 -4
  27. package/src/cube-filter-transformer/lt/lt.js.map +1 -1
  28. package/src/cube-filter-transformer/lte/lte.js +4 -4
  29. package/src/cube-filter-transformer/lte/lte.js.map +1 -1
  30. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js +3 -3
  31. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +1 -1
  32. package/src/cube-filter-transformer/not-contains/not-contains.d.ts +3 -9
  33. package/src/cube-filter-transformer/not-contains/not-contains.js +8 -12
  34. package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -1
  35. package/src/cube-filter-transformer/not-equals/not-equals-array.js +2 -2
  36. package/src/cube-filter-transformer/not-equals/not-equals-array.js.map +1 -1
  37. package/src/cube-filter-transformer/not-equals/not-equals.js +5 -5
  38. package/src/cube-filter-transformer/not-equals/not-equals.js.map +1 -1
  39. package/src/cube-filter-transformer/not-in/not-in.js +32 -11
  40. package/src/cube-filter-transformer/not-in/not-in.js.map +1 -1
  41. package/src/cube-filter-transformer/not-set/not-set.js +5 -8
  42. package/src/cube-filter-transformer/not-set/not-set.js.map +1 -1
  43. package/src/cube-filter-transformer/set/set.js +5 -8
  44. package/src/cube-filter-transformer/set/set.js.map +1 -1
  45. package/src/cube-filter-transformer/sql-expression/sql-expression-parser.d.ts +2 -1
  46. package/src/cube-filter-transformer/sql-expression/sql-expression-parser.js +10 -18
  47. package/src/cube-filter-transformer/sql-expression/sql-expression-parser.js.map +1 -1
  48. package/src/cube-group-by-transformer/cube-group-by-transformer.d.ts +2 -1
  49. package/src/cube-group-by-transformer/cube-group-by-transformer.js +2 -8
  50. package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -1
  51. package/src/cube-measure-transformer/cube-measure-transformer.d.ts +4 -2
  52. package/src/cube-measure-transformer/cube-measure-transformer.js +16 -30
  53. package/src/cube-measure-transformer/cube-measure-transformer.js.map +1 -1
  54. package/src/cube-order-by-transformer/cube-order-by-transformer.d.ts +3 -2
  55. package/src/cube-order-by-transformer/cube-order-by-transformer.js +3 -9
  56. package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -1
  57. package/src/filter-params/filter-params-ast.d.ts +2 -1
  58. package/src/filter-params/filter-params-ast.js +2 -1
  59. package/src/filter-params/filter-params-ast.js.map +1 -1
  60. package/src/get-filter-params-sql/get-filter-params-sql.d.ts +5 -3
  61. package/src/get-filter-params-sql/get-filter-params-sql.js +2 -2
  62. package/src/get-filter-params-sql/get-filter-params-sql.js.map +1 -1
  63. package/src/get-final-base-sql/get-final-base-sql.d.ts +3 -1
  64. package/src/get-final-base-sql/get-final-base-sql.js +3 -1
  65. package/src/get-final-base-sql/get-final-base-sql.js.map +1 -1
  66. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.d.ts +7 -3
  67. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js +11 -14
  68. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -1
  69. package/src/get-wrapped-base-query-with-projections/get-projection-clause.d.ts +2 -1
  70. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js +5 -11
  71. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -1
  72. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.d.ts +3 -1
  73. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +3 -2
  74. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -1
  75. package/src/joins/joins.d.ts +22 -0
  76. package/src/joins/joins.js +60 -8
  77. package/src/joins/joins.js.map +1 -1
  78. package/src/member-formatters/get-alias.d.ts +97 -7
  79. package/src/member-formatters/get-alias.js +131 -17
  80. package/src/member-formatters/get-alias.js.map +1 -1
  81. package/src/member-formatters/index.d.ts +2 -2
  82. package/src/member-formatters/index.js +5 -1
  83. package/src/member-formatters/index.js.map +1 -1
  84. package/src/member-formatters/member-key-to-safe-key.d.ts +17 -1
  85. package/src/member-formatters/member-key-to-safe-key.js +15 -1
  86. package/src/member-formatters/member-key-to-safe-key.js.map +1 -1
  87. package/src/resolution/generators/generate-resolution-join-paths.js +7 -7
  88. package/src/resolution/generators/generate-resolution-join-paths.js.map +1 -1
  89. package/src/resolution/generators/generate-resolution-schemas.d.ts +1 -1
  90. package/src/resolution/generators/generate-resolution-schemas.js +5 -10
  91. package/src/resolution/generators/generate-resolution-schemas.js.map +1 -1
  92. package/src/resolution/generators/generate-resolved-dimensions.js +3 -2
  93. package/src/resolution/generators/generate-resolved-dimensions.js.map +1 -1
  94. package/src/resolution/generators/generate-row-number-sql.js +2 -1
  95. package/src/resolution/generators/generate-row-number-sql.js.map +1 -1
  96. package/src/resolution/resolution.d.ts +1 -1
  97. package/src/resolution/resolution.js +20 -21
  98. package/src/resolution/resolution.js.map +1 -1
  99. package/src/resolution/steps/apply-aliases-step.js +9 -5
  100. package/src/resolution/steps/apply-aliases-step.js.map +1 -1
  101. package/src/resolution/steps/apply-sql-overrides.d.ts +2 -3
  102. package/src/resolution/steps/apply-sql-overrides.js +6 -5
  103. package/src/resolution/steps/apply-sql-overrides.js.map +1 -1
  104. package/src/resolution/steps/resolution-step.js +6 -7
  105. package/src/resolution/steps/resolution-step.js.map +1 -1
  106. package/src/utils/meerkat-placeholder-replacer.d.ts +2 -1
  107. package/src/utils/meerkat-placeholder-replacer.js +4 -9
  108. package/src/utils/meerkat-placeholder-replacer.js.map +1 -1
@@ -1,42 +1,156 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.constructCompoundAlias = exports.constructAlias = exports.getAliasFromSchema = void 0;
3
+ exports.constructCompoundAlias = exports.constructAlias = exports.getAliasFromSchema = exports.constructAliasForAST = exports.constructAliasForSQL = exports.getAliasForAST = exports.getAliasForSQL = void 0;
4
4
  const find_in_table_schema_1 = require("../utils/find-in-table-schema");
5
5
  const member_key_to_safe_key_1 = require("./member-key-to-safe-key");
6
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;
7
+ // ============================================================================
8
+ // NEW FLAG-AWARE API (recommended)
9
+ // ============================================================================
10
+ /**
11
+ * Get alias for SQL string contexts (SELECT projections, etc.).
12
+ * Always returns a properly quoted alias when needed.
13
+ *
14
+ * @param name - The member key (e.g., "orders.total_amount")
15
+ * @param tableSchema - The table schema to look up custom aliases from
16
+ * @param config - Configuration with useDotNotation flag
17
+ * @returns The alias string, quoted when necessary
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // With useDotNotation: false
22
+ * getAliasForSQL("orders.total", schema, { useDotNotation: false }) // "orders__total"
23
+ *
24
+ * // With useDotNotation: true
25
+ * getAliasForSQL("orders.total", schema, { useDotNotation: true }) // "\"orders.total\""
26
+ * ```
27
+ */
28
+ const getAliasForSQL = (name, tableSchema, config) => {
29
+ var _a;
30
+ const [, field] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(name);
31
+ return (0, exports.constructAliasForSQL)(name, (_a = (0, find_in_table_schema_1.findInSchema)(field, tableSchema)) === null || _a === void 0 ? void 0 : _a.alias, config);
32
+ };
33
+ exports.getAliasForSQL = getAliasForSQL;
34
+ /**
35
+ * Get alias for AST contexts (DuckDB AST nodes, column references).
36
+ * Returns unquoted alias - DuckDB handles quoting automatically.
37
+ *
38
+ * @param name - The member key (e.g., "orders.total_amount")
39
+ * @param tableSchema - The table schema to look up custom aliases from
40
+ * @param config - Configuration with useDotNotation flag
41
+ * @returns The alias string, unquoted
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * // With useDotNotation: false
46
+ * getAliasForAST("orders.total", schema, { useDotNotation: false }) // "orders__total"
47
+ *
48
+ * // With useDotNotation: true
49
+ * getAliasForAST("orders.total", schema, { useDotNotation: true }) // "orders.total"
50
+ * ```
51
+ */
52
+ const getAliasForAST = (name, tableSchema, config) => {
53
+ var _a;
54
+ const [, field] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(name);
55
+ return (0, exports.constructAliasForAST)(name, (_a = (0, find_in_table_schema_1.findInSchema)(field, tableSchema)) === null || _a === void 0 ? void 0 : _a.alias, config);
56
+ };
57
+ exports.getAliasForAST = getAliasForAST;
58
+ /**
59
+ * Construct alias for SQL string contexts directly from name and optional custom alias.
60
+ * Always returns a properly quoted alias when needed.
61
+ *
62
+ * @param name - The member key (e.g., "orders.total_amount")
63
+ * @param alias - Optional custom alias override
64
+ * @param config - Configuration with useDotNotation flag
65
+ * @returns The alias string, quoted when necessary
66
+ */
67
+ const constructAliasForSQL = (name, alias, config) => {
68
+ if (alias) {
69
+ // Custom aliases always need quotes in SQL context (may contain spaces/special chars)
70
+ return `"${alias}"`;
12
71
  }
13
- if (isTableSchemaAlias) {
14
- // No need to wrap alias in quotes as part of table schema
15
- return false;
72
+ const safeKey = (0, member_key_to_safe_key_1.memberKeyToSafeKey)(name, {
73
+ useDotNotation: config.useDotNotation,
74
+ });
75
+ if (config.useDotNotation) {
76
+ // With dot notation, we need to quote the safe key since it contains dots
77
+ return `"${safeKey}"`;
16
78
  }
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;
79
+ // Underscore notation doesn't need quotes
80
+ return safeKey;
20
81
  };
21
- const getAliasFromSchema = ({ name, tableSchema, aliasContext, }) => {
82
+ exports.constructAliasForSQL = constructAliasForSQL;
83
+ /**
84
+ * Construct alias for AST contexts directly from name and optional custom alias.
85
+ * Returns unquoted alias - DuckDB handles quoting automatically.
86
+ *
87
+ * @param name - The member key (e.g., "orders.total_amount")
88
+ * @param alias - Optional custom alias override
89
+ * @param config - Configuration with useDotNotation flag
90
+ * @returns The alias string, unquoted
91
+ */
92
+ const constructAliasForAST = (name, alias, config) => {
93
+ if (alias) {
94
+ // Return custom alias without quotes - DuckDB will handle quoting
95
+ return alias;
96
+ }
97
+ // Return safe key without quotes - DuckDB will handle quoting
98
+ return (0, member_key_to_safe_key_1.memberKeyToSafeKey)(name, { useDotNotation: config.useDotNotation });
99
+ };
100
+ exports.constructAliasForAST = constructAliasForAST;
101
+ // ============================================================================
102
+ // LEGACY API (deprecated, kept for backward compatibility)
103
+ // ============================================================================
104
+ /**
105
+ * Get alias for a schema field.
106
+ *
107
+ * @param name - The member key (e.g., "orders.total_amount")
108
+ * @param tableSchema - The table schema to look up custom aliases from
109
+ * @param shouldWrapAliasWithQuotes - When true, wraps alias in quotes for SQL validity.
110
+ * Use `true` for SELECT projections where special characters need quoting.
111
+ * Use `false` for AST nodes (DuckDB auto-quotes) and internal schema references.
112
+ * @param config - Configuration with useDotNotation flag
113
+ *
114
+ * @deprecated Use `getAliasForSQL` or `getAliasForAST` instead for clearer intent.
115
+ */
116
+ const getAliasFromSchema = ({ name, tableSchema, shouldWrapAliasWithQuotes, config, }) => {
22
117
  var _a;
23
118
  const [, field] = (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(name);
24
119
  return (0, exports.constructAlias)({
25
120
  name,
26
121
  alias: (_a = (0, find_in_table_schema_1.findInSchema)(field, tableSchema)) === null || _a === void 0 ? void 0 : _a.alias,
27
- aliasContext,
122
+ shouldWrapAliasWithQuotes,
123
+ config,
28
124
  });
29
125
  };
30
126
  exports.getAliasFromSchema = getAliasFromSchema;
31
- const constructAlias = ({ name, alias, aliasContext, }) => {
127
+ /**
128
+ * Construct alias directly from name and optional custom alias.
129
+ *
130
+ * @param name - The member key (e.g., "orders.total_amount")
131
+ * @param alias - Optional custom alias override
132
+ * @param shouldWrapAliasWithQuotes - When true, wraps alias in quotes for SQL validity.
133
+ * Use `true` for SELECT projections where special characters need quoting.
134
+ * Use `false` for AST nodes (DuckDB auto-quotes) and internal schema references.
135
+ * @param config - Configuration with useDotNotation flag
136
+ *
137
+ * @deprecated Use `constructAliasForSQL` or `constructAliasForAST` instead for clearer intent.
138
+ */
139
+ const constructAlias = ({ name, alias, shouldWrapAliasWithQuotes, config, }) => {
32
140
  if (alias) {
33
- if (shouldUseSafeAlias(aliasContext)) {
141
+ if (shouldWrapAliasWithQuotes) {
34
142
  // Alias may contain special characters or spaces, so we need to wrap in quotes.
35
143
  return `"${alias}"`;
36
144
  }
37
145
  return alias;
38
146
  }
39
- return (0, member_key_to_safe_key_1.memberKeyToSafeKey)(name);
147
+ // Use config to determine notation
148
+ const safeKey = (0, member_key_to_safe_key_1.memberKeyToSafeKey)(name, config);
149
+ if (config.useDotNotation && shouldWrapAliasWithQuotes) {
150
+ // With dot notation and SQL context, wrap in quotes
151
+ return `"${safeKey}"`;
152
+ }
153
+ return safeKey;
40
154
  };
41
155
  exports.constructAlias = constructAlias;
42
156
  /**
@@ -1 +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;AAEF;;;;;;;;;;;;;GAaG;AACI,MAAM,sBAAsB,GAAG,CACpC,SAAiB,EACjB,eAAuB,EACf,EAAE;IACV,OAAO,GAAG,SAAS,MAAM,eAAe,EAAE,CAAC;AAC7C,CAAC,CAAC;AALW,QAAA,sBAAsB,0BAKjC"}
1
+ {"version":3,"file":"get-alias.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/get-alias.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { COLUMN_NAME_DELIMITER, MEERKAT_OUTPUT_DELIMITER } from './constants';
2
- export { constructAlias, constructCompoundAlias, getAliasFromSchema, } from './get-alias';
2
+ export { constructAlias, constructAliasForAST, constructAliasForSQL, constructCompoundAlias, getAliasForAST, getAliasForSQL, getAliasFromSchema, QueryOptions, } from './get-alias';
3
3
  export { getNamespacedKey } from './get-namespaced-key';
4
- export { memberKeyToSafeKey } from './member-key-to-safe-key';
4
+ export { memberKeyToSafeKey, MemberKeyToSafeKeyOptions, } from './member-key-to-safe-key';
5
5
  export { splitIntoDataSourceAndFields } from './split-into-data-source-and-fields';
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.splitIntoDataSourceAndFields = exports.memberKeyToSafeKey = exports.getNamespacedKey = exports.getAliasFromSchema = exports.constructCompoundAlias = exports.constructAlias = exports.MEERKAT_OUTPUT_DELIMITER = exports.COLUMN_NAME_DELIMITER = void 0;
3
+ exports.splitIntoDataSourceAndFields = exports.memberKeyToSafeKey = exports.getNamespacedKey = exports.getAliasFromSchema = exports.getAliasForSQL = exports.getAliasForAST = exports.constructCompoundAlias = exports.constructAliasForSQL = exports.constructAliasForAST = exports.constructAlias = exports.MEERKAT_OUTPUT_DELIMITER = 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
6
  Object.defineProperty(exports, "MEERKAT_OUTPUT_DELIMITER", { enumerable: true, get: function () { return constants_1.MEERKAT_OUTPUT_DELIMITER; } });
7
7
  var get_alias_1 = require("./get-alias");
8
8
  Object.defineProperty(exports, "constructAlias", { enumerable: true, get: function () { return get_alias_1.constructAlias; } });
9
+ Object.defineProperty(exports, "constructAliasForAST", { enumerable: true, get: function () { return get_alias_1.constructAliasForAST; } });
10
+ Object.defineProperty(exports, "constructAliasForSQL", { enumerable: true, get: function () { return get_alias_1.constructAliasForSQL; } });
9
11
  Object.defineProperty(exports, "constructCompoundAlias", { enumerable: true, get: function () { return get_alias_1.constructCompoundAlias; } });
12
+ Object.defineProperty(exports, "getAliasForAST", { enumerable: true, get: function () { return get_alias_1.getAliasForAST; } });
13
+ Object.defineProperty(exports, "getAliasForSQL", { enumerable: true, get: function () { return get_alias_1.getAliasForSQL; } });
10
14
  Object.defineProperty(exports, "getAliasFromSchema", { enumerable: true, get: function () { return get_alias_1.getAliasFromSchema; } });
11
15
  var get_namespaced_key_1 = require("./get-namespaced-key");
12
16
  Object.defineProperty(exports, "getNamespacedKey", { enumerable: true, get: function () { return get_namespaced_key_1.getNamespacedKey; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/index.ts"],"names":[],"mappings":";;;AAAA,yCAA8E;AAArE,kHAAA,qBAAqB,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AACxD,yCAIqB;AAHnB,2GAAA,cAAc,OAAA;AACd,mHAAA,sBAAsB,OAAA;AACtB,+GAAA,kBAAkB,OAAA;AAEpB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,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,yCAA8E;AAArE,kHAAA,qBAAqB,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AACxD,yCASqB;AARnB,2GAAA,cAAc,OAAA;AACd,iHAAA,oBAAoB,OAAA;AACpB,iHAAA,oBAAoB,OAAA;AACpB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,+GAAA,kBAAkB,OAAA;AAGpB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,mEAGkC;AAFhC,4HAAA,kBAAkB,OAAA;AAGpB,yFAAmF;AAA1E,iJAAA,4BAA4B,OAAA"}
@@ -1 +1,17 @@
1
- export declare const memberKeyToSafeKey: (memberKey: string) => string;
1
+ export interface MemberKeyToSafeKeyOptions {
2
+ /**
3
+ * When true, keeps the dot notation (returns memberKey as-is).
4
+ * When false (default), converts dots to underscores for SQL-safe identifiers.
5
+ */
6
+ useDotNotation: boolean;
7
+ }
8
+ /**
9
+ * Converts a member key to a safe key for use in SQL.
10
+ *
11
+ * @param memberKey - The member key (e.g., "orders.customer_id")
12
+ * @param options - Configuration options
13
+ * @returns The safe key:
14
+ * - With useDotNotation=true: "orders.customer_id" (unchanged)
15
+ * - With useDotNotation=false (default): "orders__customer_id"
16
+ */
17
+ export declare const memberKeyToSafeKey: (memberKey: string, options: MemberKeyToSafeKeyOptions) => string;
@@ -2,7 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.memberKeyToSafeKey = void 0;
4
4
  const constants_1 = require("./constants");
5
- const memberKeyToSafeKey = (memberKey) => {
5
+ /**
6
+ * Converts a member key to a safe key for use in SQL.
7
+ *
8
+ * @param memberKey - The member key (e.g., "orders.customer_id")
9
+ * @param options - Configuration options
10
+ * @returns The safe key:
11
+ * - With useDotNotation=true: "orders.customer_id" (unchanged)
12
+ * - With useDotNotation=false (default): "orders__customer_id"
13
+ */
14
+ const memberKeyToSafeKey = (memberKey, options) => {
15
+ if (options.useDotNotation) {
16
+ // Keep dot notation - the caller is responsible for quoting when needed
17
+ return memberKey;
18
+ }
19
+ // Legacy behavior: convert dots to double underscores
6
20
  return memberKey.split(constants_1.COLUMN_NAME_DELIMITER).join(constants_1.MEERKAT_OUTPUT_DELIMITER);
7
21
  };
8
22
  exports.memberKeyToSafeKey = memberKeyToSafeKey;
@@ -1 +1 @@
1
- {"version":3,"file":"member-key-to-safe-key.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/member-key-to-safe-key.ts"],"names":[],"mappings":";;;AAAA,2CAA8E;AAEvE,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE;IACtD,OAAO,SAAS,CAAC,KAAK,CAAC,iCAAqB,CAAC,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAC;AAC/E,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B"}
1
+ {"version":3,"file":"member-key-to-safe-key.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/member-key-to-safe-key.ts"],"names":[],"mappings":";;;AAAA,2CAA8E;AAU9E;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,CAChC,SAAiB,EACjB,OAAkC,EAC1B,EAAE;IACV,IAAI,OAAO,CAAC,cAAc,EAAE;QAC1B,wEAAwE;QACxE,OAAO,SAAS,CAAC;KAClB;IACD,sDAAsD;IACtD,OAAO,SAAS,CAAC,KAAK,CAAC,iCAAqB,CAAC,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAC;AAC/E,CAAC,CAAC;AAVW,QAAA,kBAAkB,sBAU7B"}
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateResolutionJoinPaths = void 0;
4
- const member_formatters_1 = require("../../member-formatters");
4
+ const get_alias_1 = require("../../member-formatters/get-alias");
5
+ const member_key_to_safe_key_1 = require("../../member-formatters/member-key-to-safe-key");
5
6
  const find_in_table_schema_1 = require("../../utils/find-in-table-schema");
6
7
  const generateResolutionJoinPaths = (baseDataSourceName, resolutionConfig, baseTableSchemas) => {
7
- return resolutionConfig.columnConfigs.map((config) => {
8
+ const config = { useDotNotation: false };
9
+ return resolutionConfig.columnConfigs.map((columnConfig) => {
8
10
  var _a;
9
11
  return [
10
12
  {
11
13
  left: baseDataSourceName,
12
- right: (0, member_formatters_1.memberKeyToSafeKey)(config.name),
13
- on: (0, member_formatters_1.constructAlias)({
14
- name: config.name,
15
- alias: (_a = (0, find_in_table_schema_1.findInSchemas)(config.name, baseTableSchemas)) === null || _a === void 0 ? void 0 : _a.alias,
16
- aliasContext: { isTableSchemaAlias: true },
14
+ right: (0, member_key_to_safe_key_1.memberKeyToSafeKey)(columnConfig.name, {
15
+ useDotNotation: config.useDotNotation,
17
16
  }),
17
+ on: (0, get_alias_1.constructAliasForAST)(columnConfig.name, (_a = (0, find_in_table_schema_1.findInSchemas)(columnConfig.name, baseTableSchemas)) === null || _a === void 0 ? void 0 : _a.alias, config),
18
18
  },
19
19
  ];
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generate-resolution-join-paths.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-resolution-join-paths.ts"],"names":[],"mappings":";;;AAAA,+DAA6E;AAG7E,2EAAiE;AAG1D,MAAM,2BAA2B,GAAG,CACzC,kBAA0B,EAC1B,gBAAkC,EAClC,gBAA+B,EACnB,EAAE;IACd,OAAO,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;;QAAC,OAAA;YACpD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,IAAA,sCAAkB,EAAC,MAAM,CAAC,IAAI,CAAC;gBACtC,EAAE,EAAE,IAAA,kCAAc,EAAC;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAA,IAAA,oCAAa,EAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,0CAAE,KAAK;oBAC1D,YAAY,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;iBAC3C,CAAC;aACH;SACF,CAAA;KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,2BAA2B,+BAgBtC"}
1
+ {"version":3,"file":"generate-resolution-join-paths.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-resolution-join-paths.ts"],"names":[],"mappings":";;;AAAA,iEAAyE;AACzE,2FAAoF;AAGpF,2EAAiE;AAG1D,MAAM,2BAA2B,GAAG,CACzC,kBAA0B,EAC1B,gBAAkC,EAClC,gBAA+B,EACnB,EAAE;IACd,MAAM,MAAM,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACzC,OAAO,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;;QAAC,OAAA;YAC1D;gBACE,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,IAAA,2CAAkB,EAAC,YAAY,CAAC,IAAI,EAAE;oBAC3C,cAAc,EAAE,MAAM,CAAC,cAAc;iBACtC,CAAC;gBACF,EAAE,EAAE,IAAA,gCAAoB,EACtB,YAAY,CAAC,IAAI,EACjB,MAAA,IAAA,oCAAa,EAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,0CAAE,KAAK,EACzD,MAAM,CACP;aACF;SACF,CAAA;KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,2BAA2B,+BAmBtC"}
@@ -1,3 +1,3 @@
1
1
  import { TableSchema } from '../../types/cube-types/table';
2
2
  import { ResolutionConfig } from '../types';
3
- export declare const generateResolutionSchemas: (config: ResolutionConfig, baseTableSchemas: TableSchema[]) => TableSchema[];
3
+ export declare const generateResolutionSchemas: (config: ResolutionConfig) => TableSchema[];
@@ -3,20 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateResolutionSchemas = void 0;
4
4
  const member_formatters_1 = require("../../member-formatters");
5
5
  const find_in_table_schema_1 = require("../../utils/find-in-table-schema");
6
- const generateResolutionSchemas = (config, baseTableSchemas) => {
6
+ const generateResolutionSchemas = (config) => {
7
+ const options = { useDotNotation: false };
7
8
  const resolutionSchemas = [];
8
9
  config.columnConfigs.forEach((colConfig) => {
9
- var _a;
10
10
  const tableSchema = config.tableSchemas.find((ts) => ts.name === colConfig.source);
11
11
  if (!tableSchema) {
12
12
  throw new Error(`Table schema not found for ${colConfig.source}`);
13
13
  }
14
- const baseName = (0, member_formatters_1.memberKeyToSafeKey)(colConfig.name);
15
- const baseAlias = (0, member_formatters_1.constructAlias)({
16
- name: colConfig.name,
17
- alias: (_a = (0, find_in_table_schema_1.findInSchemas)(colConfig.name, baseTableSchemas)) === null || _a === void 0 ? void 0 : _a.alias,
18
- aliasContext: { isTableSchemaAlias: true },
19
- });
14
+ const baseName = (0, member_formatters_1.memberKeyToSafeKey)(colConfig.name, options);
20
15
  // For each column that needs to be resolved, create a copy of the relevant table schema.
21
16
  // We use the name of the column in the base query as the table schema name
22
17
  // to avoid conflicts.
@@ -32,10 +27,10 @@ const generateResolutionSchemas = (config, baseTableSchemas) => {
32
27
  return {
33
28
  // Need to create a new name due to limitations with how
34
29
  // CubeToSql handles duplicate dimension names between different sources.
35
- name: (0, member_formatters_1.memberKeyToSafeKey)((0, member_formatters_1.getNamespacedKey)(colConfig.name, col)),
30
+ name: (0, member_formatters_1.memberKeyToSafeKey)((0, member_formatters_1.getNamespacedKey)(colConfig.name, col), options),
36
31
  sql: `${baseName}.${col}`,
37
32
  type: dimension.type,
38
- alias: (0, member_formatters_1.memberKeyToSafeKey)((0, member_formatters_1.getNamespacedKey)(colConfig.name, col)),
33
+ alias: (0, member_formatters_1.memberKeyToSafeKey)((0, member_formatters_1.getNamespacedKey)(colConfig.name, col), options),
39
34
  };
40
35
  }),
41
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generate-resolution-schemas.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-resolution-schemas.ts"],"names":[],"mappings":";;;AAAA,+DAIiC;AAEjC,2EAG0C;AAGnC,MAAM,yBAAyB,GAAG,CACvC,MAAwB,EACxB,gBAA+B,EAC/B,EAAE;IACF,MAAM,iBAAiB,GAAkB,EAAE,CAAC;IAC5C,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAC1C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CACrC,CAAC;QACF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,MAAM,QAAQ,GAAG,IAAA,sCAAkB,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,kCAAc,EAAC;YAC/B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,MAAA,IAAA,oCAAa,EAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,CAAC,0CAAE,KAAK;YAC7D,YAAY,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAC;QAEH,yFAAyF;QACzF,2EAA2E;QAC3E,sBAAsB;QACtB,MAAM,gBAAgB,GAAgB;YACpC,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClD,MAAM,SAAS,GAAG,IAAA,6CAAsB,EACtC,IAAA,oCAAgB,EAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EACvC,MAAM,CAAC,YAAY,CACpB,CAAC;gBACF,IAAI,CAAC,SAAS,EAAE;oBACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;iBAChD;gBACD,OAAO;oBACL,wDAAwD;oBACxD,yEAAyE;oBACzE,IAAI,EAAE,IAAA,sCAAkB,EAAC,IAAA,oCAAgB,EAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC/D,GAAG,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE;oBACzB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,KAAK,EAAE,IAAA,sCAAkB,EAAC,IAAA,oCAAgB,EAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBACjE,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;QAEF,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAlDW,QAAA,yBAAyB,6BAkDpC"}
1
+ {"version":3,"file":"generate-resolution-schemas.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-resolution-schemas.ts"],"names":[],"mappings":";;;AAAA,+DAA+E;AAE/E,2EAA0E;AAGnE,MAAM,yBAAyB,GAAG,CAAC,MAAwB,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC1C,MAAM,iBAAiB,GAAkB,EAAE,CAAC;IAC5C,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAC1C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CACrC,CAAC;QACF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,MAAM,QAAQ,GAAG,IAAA,sCAAkB,EAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7D,yFAAyF;QACzF,2EAA2E;QAC3E,sBAAsB;QACtB,MAAM,gBAAgB,GAAgB;YACpC,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClD,MAAM,SAAS,GAAG,IAAA,6CAAsB,EACtC,IAAA,oCAAgB,EAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EACvC,MAAM,CAAC,YAAY,CACpB,CAAC;gBACF,IAAI,CAAC,SAAS,EAAE;oBACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;iBAChD;gBACD,OAAO;oBACL,wDAAwD;oBACxD,yEAAyE;oBACzE,IAAI,EAAE,IAAA,sCAAkB,EACtB,IAAA,oCAAgB,EAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EACrC,OAAO,CACR;oBACD,GAAG,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE;oBACzB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,KAAK,EAAE,IAAA,sCAAkB,EACvB,IAAA,oCAAgB,EAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EACrC,OAAO,CACR;iBACF,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;QAEF,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAjDW,QAAA,yBAAyB,6BAiDpC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateResolvedDimensions = void 0;
4
4
  const member_formatters_1 = require("../../member-formatters");
5
5
  const generateResolvedDimensions = (baseDataSourceName, query, config, columnProjections) => {
6
+ const options = { useDotNotation: false };
6
7
  // If column projections are provided, use those.
7
8
  // Otherwise, use all measures and dimensions from the original query.
8
9
  const aggregatedDimensions = columnProjections
@@ -12,11 +13,11 @@ const generateResolvedDimensions = (baseDataSourceName, query, config, columnPro
12
13
  const columnConfig = config.columnConfigs.find((c) => c.name === dimension);
13
14
  if (!columnConfig) {
14
15
  return [
15
- (0, member_formatters_1.getNamespacedKey)(baseDataSourceName, (0, member_formatters_1.memberKeyToSafeKey)(dimension)),
16
+ (0, member_formatters_1.getNamespacedKey)(baseDataSourceName, (0, member_formatters_1.memberKeyToSafeKey)(dimension, options)),
16
17
  ];
17
18
  }
18
19
  else {
19
- 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))));
20
+ return columnConfig.resolutionColumns.map((col) => (0, member_formatters_1.getNamespacedKey)((0, member_formatters_1.memberKeyToSafeKey)(dimension, options), (0, member_formatters_1.memberKeyToSafeKey)((0, member_formatters_1.getNamespacedKey)(columnConfig.name, col), options)));
20
21
  }
21
22
  });
22
23
  return resolvedDimensions;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-resolved-dimensions.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-resolved-dimensions.ts"],"names":[],"mappings":";;;AAAA,+DAA+E;AAIxE,MAAM,0BAA0B,GAAG,CACxC,kBAA0B,EAC1B,KAAY,EACZ,MAAwB,EACxB,iBAA4B,EAClB,EAAE;IACZ,iDAAiD;IACjD,sEAAsE;IACtE,MAAM,oBAAoB,GAAG,iBAAiB;QAC5C,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IAErD,MAAM,kBAAkB,GAAa,oBAAoB,CAAC,OAAO,CAC/D,CAAC,SAAS,EAAE,EAAE;QACZ,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAC5B,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;gBACL,IAAA,oCAAgB,EAAC,kBAAkB,EAAE,IAAA,sCAAkB,EAAC,SAAS,CAAC,CAAC;aACpE,CAAC;SACH;aAAM;YACL,OAAO,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD,IAAA,oCAAgB,EACd,IAAA,sCAAkB,EAAC,SAAS,CAAC,EAC7B,IAAA,sCAAkB,EAAC,IAAA,oCAAgB,EAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAC7D,CACF,CAAC;SACH;IACH,CAAC,CACF,CAAC;IACF,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAjCW,QAAA,0BAA0B,8BAiCrC"}
1
+ {"version":3,"file":"generate-resolved-dimensions.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-resolved-dimensions.ts"],"names":[],"mappings":";;;AAAA,+DAA+E;AAIxE,MAAM,0BAA0B,GAAG,CACxC,kBAA0B,EAC1B,KAAY,EACZ,MAAwB,EACxB,iBAA4B,EAClB,EAAE;IACZ,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC1C,iDAAiD;IACjD,sEAAsE;IACtE,MAAM,oBAAoB,GAAG,iBAAiB;QAC5C,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IAErD,MAAM,kBAAkB,GAAa,oBAAoB,CAAC,OAAO,CAC/D,CAAC,SAAS,EAAE,EAAE;QACZ,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAC5B,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;gBACL,IAAA,oCAAgB,EACd,kBAAkB,EAClB,IAAA,sCAAkB,EAAC,SAAS,EAAE,OAAO,CAAC,CACvC;aACF,CAAC;SACH;aAAM;YACL,OAAO,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD,IAAA,oCAAgB,EACd,IAAA,sCAAkB,EAAC,SAAS,EAAE,OAAO,CAAC,EACtC,IAAA,sCAAkB,EAChB,IAAA,oCAAgB,EAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,EACxC,OAAO,CACR,CACF,CACF,CAAC;SACH;IACH,CAAC,CACF,CAAC;IACF,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAxCW,QAAA,0BAA0B,8BAwCrC"}
@@ -12,11 +12,12 @@ const member_formatters_1 = require("../../member-formatters");
12
12
  * @returns SQL expression for row_number() OVER (ORDER BY ...)
13
13
  */
14
14
  const generateRowNumberSql = (query, dimensions, baseTableName) => {
15
+ const options = { useDotNotation: false };
15
16
  let rowNumberSql = 'row_number() OVER (';
16
17
  if (query.order && Object.keys(query.order).length > 0) {
17
18
  const orderClauses = Object.entries(query.order).map(([member, direction]) => {
18
19
  // Find the actual column name/alias in the base table dimensions
19
- const safeMember = (0, member_formatters_1.memberKeyToSafeKey)(member);
20
+ const safeMember = (0, member_formatters_1.memberKeyToSafeKey)(member, options);
20
21
  const dimension = dimensions.find((d) => d.name === safeMember || d.alias === safeMember);
21
22
  const columnName = dimension
22
23
  ? dimension.alias || dimension.name
@@ -1 +1 @@
1
- {"version":3,"file":"generate-row-number-sql.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-row-number-sql.ts"],"names":[],"mappings":";;;AAAA,+DAA6D;AAE7D;;;;;;;;GAQG;AACI,MAAM,oBAAoB,GAAG,CAClC,KAAyC,EACzC,UAA8C,EAC9C,aAAqB,EACb,EAAE;IACV,IAAI,YAAY,GAAG,qBAAqB,CAAC;IACzC,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE;YACtB,iEAAiE;YACjE,MAAM,UAAU,GAAG,IAAA,sCAAkB,EAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CACvD,CAAC;YACF,MAAM,UAAU,GAAG,SAAS;gBAC1B,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI;gBACnC,CAAC,CAAC,UAAU,CAAC;YACf,OAAO,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACnE,CAAC,CACF,CAAC;QACF,YAAY,IAAI,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KACvD;IACD,YAAY,IAAI,GAAG,CAAC;IACpB,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B;AAEF,MAAM,mBAAmB,GAAG,CAC1B,aAAqB,EACrB,UAAkB,EAClB,SAAiB,EACjB,EAAE;IACF,OAAO,GAAG,aAAa,KAAK,UAAU,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;AACvE,CAAC,CAAC"}
1
+ {"version":3,"file":"generate-row-number-sql.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/generators/generate-row-number-sql.ts"],"names":[],"mappings":";;;AAAA,+DAA6D;AAE7D;;;;;;;;GAQG;AACI,MAAM,oBAAoB,GAAG,CAClC,KAAyC,EACzC,UAA8C,EAC9C,aAAqB,EACb,EAAE;IACV,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC1C,IAAI,YAAY,GAAG,qBAAqB,CAAC;IACzC,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE;YACtB,iEAAiE;YACjE,MAAM,UAAU,GAAG,IAAA,sCAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CACvD,CAAC;YACF,MAAM,UAAU,GAAG,SAAS;gBAC1B,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI;gBACnC,CAAC,CAAC,UAAU,CAAC;YACf,OAAO,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACnE,CAAC,CACF,CAAC;QACF,YAAY,IAAI,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KACvD;IACD,YAAY,IAAI,GAAG,CAAC;IACpB,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAzBW,QAAA,oBAAoB,wBAyB/B;AAEF,MAAM,mBAAmB,GAAG,CAC1B,aAAqB,EACrB,UAAkB,EAClB,SAAiB,EACjB,EAAE;IACF,OAAO,GAAG,aAAa,KAAK,UAAU,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;AACvE,CAAC,CAAC"}
@@ -21,7 +21,7 @@ export declare const getColumnReference: (tableName: string, member: {
21
21
  * @returns true if resolution should be skipped, false otherwise
22
22
  */
23
23
  export declare const shouldSkipResolution: (resolutionConfig: ResolutionConfig, query: Query, columnProjections?: string[]) => boolean;
24
- export declare const createBaseTableSchema: (baseSql: string, tableSchemas: TableSchema[], resolutionConfig: ResolutionConfig, measures: Member[], dimensions?: Member[]) => {
24
+ export declare const createBaseTableSchema: (baseSql: string, tableSchemas: TableSchema[], resolutionConfig: ResolutionConfig, measures: Member[], dimensions: Member[] | undefined) => {
25
25
  name: string;
26
26
  sql: string;
27
27
  measures: never[];
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.wrapWithRowIdOrderingAndExclusion = exports.getArrayTypeResolutionColumnConfigs = exports.withArrayFlattenModifier = exports.createWrapperTableSchema = exports.createBaseTableSchema = exports.shouldSkipResolution = exports.getColumnReference = void 0;
4
- const member_formatters_1 = require("../member-formatters");
4
+ const get_alias_1 = require("../member-formatters/get-alias");
5
+ const get_namespaced_key_1 = require("../member-formatters/get-namespaced-key");
6
+ const member_key_to_safe_key_1 = require("../member-formatters/member-key-to-safe-key");
5
7
  const is_array_member_type_1 = require("../utils/is-array-member-type");
6
8
  const types_1 = require("./types");
7
9
  /**
@@ -32,31 +34,25 @@ const shouldSkipResolution = (resolutionConfig, query, columnProjections) => {
32
34
  };
33
35
  exports.shouldSkipResolution = shouldSkipResolution;
34
36
  const constructBaseDimension = (name, schema) => {
37
+ const config = { useDotNotation: false };
35
38
  return {
36
- name: (0, member_formatters_1.memberKeyToSafeKey)(name),
37
- sql: `${types_1.BASE_DATA_SOURCE_NAME}.${(0, member_formatters_1.constructAlias)({
38
- name,
39
- alias: schema.alias,
40
- aliasContext: { isAstIdentifier: false },
41
- })}`,
39
+ name: (0, member_key_to_safe_key_1.memberKeyToSafeKey)(name, { useDotNotation: false }),
40
+ sql: `${types_1.BASE_DATA_SOURCE_NAME}.${(0, get_alias_1.constructAliasForSQL)(name, schema.alias, config)}`,
42
41
  type: schema.type,
43
42
  // Constructs alias to match the name in the base query.
44
- alias: (0, member_formatters_1.constructAlias)({
45
- name,
46
- alias: schema.alias,
47
- aliasContext: { isTableSchemaAlias: true },
48
- }),
43
+ alias: (0, get_alias_1.constructAliasForAST)(name, schema.alias, config),
49
44
  };
50
45
  };
51
46
  const createBaseTableSchema = (baseSql, tableSchemas, resolutionConfig, measures, dimensions) => {
47
+ const config = { useDotNotation: false };
52
48
  const schemaByName = {};
53
49
  tableSchemas.forEach((tableSchema) => {
54
50
  tableSchema.dimensions.forEach((dimension) => {
55
- schemaByName[(0, member_formatters_1.getNamespacedKey)(tableSchema.name, dimension.name)] =
51
+ schemaByName[(0, get_namespaced_key_1.getNamespacedKey)(tableSchema.name, dimension.name)] =
56
52
  dimension;
57
53
  });
58
54
  tableSchema.measures.forEach((measure) => {
59
- schemaByName[(0, member_formatters_1.getNamespacedKey)(tableSchema.name, measure.name)] = measure;
55
+ schemaByName[(0, get_namespaced_key_1.getNamespacedKey)(tableSchema.name, measure.name)] = measure;
60
56
  });
61
57
  });
62
58
  return {
@@ -72,15 +68,18 @@ const createBaseTableSchema = (baseSql, tableSchemas, resolutionConfig, measures
72
68
  throw new Error(`Not found: ${member}`);
73
69
  }
74
70
  }),
75
- joins: resolutionConfig.columnConfigs.map((config) => {
71
+ joins: resolutionConfig.columnConfigs.map((columnConfig) => {
76
72
  var _a;
77
- return ({
78
- sql: `${types_1.BASE_DATA_SOURCE_NAME}.${(0, member_formatters_1.constructAlias)({
79
- name: config.name,
80
- alias: (_a = schemaByName[config.name]) === null || _a === void 0 ? void 0 : _a.alias,
81
- aliasContext: { isAstIdentifier: false },
82
- })} = ${(0, member_formatters_1.memberKeyToSafeKey)(config.name)}.${config.joinColumn}`,
73
+ const targetTable = (0, member_key_to_safe_key_1.memberKeyToSafeKey)(columnConfig.name, {
74
+ useDotNotation: false,
83
75
  });
76
+ // Quote the table name if it contains dots (useDotNotation mode)
77
+ const quotedTargetTable = targetTable.includes('.')
78
+ ? `"${targetTable}"`
79
+ : targetTable;
80
+ return {
81
+ sql: `${types_1.BASE_DATA_SOURCE_NAME}.${(0, get_alias_1.constructAliasForSQL)(columnConfig.name, (_a = schemaByName[columnConfig.name]) === null || _a === void 0 ? void 0 : _a.alias, config)} = ${quotedTargetTable}.${columnConfig.joinColumn}`,
82
+ };
84
83
  }),
85
84
  };
86
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../../../meerkat-core/src/resolution/resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../../../meerkat-core/src/resolution/resolution.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applyAliases = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const member_formatters_1 = require("../../member-formatters");
6
5
  const get_alias_1 = require("../../member-formatters/get-alias");
7
6
  const get_namespaced_key_1 = require("../../member-formatters/get-namespaced-key");
7
+ const member_key_to_safe_key_1 = require("../../member-formatters/member-key-to-safe-key");
8
8
  /**
9
9
  * Restores aliases from the original table schemas to the aggregated schema
10
10
  * and generates the final SQL with proper column names.
@@ -29,15 +29,19 @@ const applyAliases = ({ aggregatedTableSchema, originalTableSchemas, resolutionC
29
29
  // Restore aliases from original tableSchemas to get nice column names in final output
30
30
  // Create a map of schemaName__fieldName -> alias from original schemas
31
31
  const aliasMap = new Map();
32
- const columnConfigMap = new Map(((_a = resolutionConfig.columnConfigs) === null || _a === void 0 ? void 0 : _a.map((config) => [config.name, config])) || []);
32
+ const columnConfigMap = new Map(((_a = resolutionConfig.columnConfigs) === null || _a === void 0 ? void 0 : _a.map((colConfig) => [
33
+ colConfig.name,
34
+ colConfig,
35
+ ])) || []);
33
36
  const tableSchemaMap = new Map(resolutionConfig.tableSchemas.map((schema) => [schema.name, schema]));
37
+ const safeKeyOptions = { useDotNotation: false };
34
38
  // Helper function to process dimensions or measures and populate the alias map
35
39
  const processMembers = (members, schemaName) => {
36
40
  members.forEach((member) => {
37
41
  var _a;
38
42
  if (!member.alias)
39
43
  return;
40
- const columnName = (0, member_formatters_1.memberKeyToSafeKey)(`${schemaName}.${member.name}`);
44
+ const columnName = (0, member_key_to_safe_key_1.memberKeyToSafeKey)(`${schemaName}.${member.name}`, safeKeyOptions);
41
45
  const columnConfig = columnConfigMap.get(columnName);
42
46
  // No resolution config - use original alias
43
47
  if (!columnConfig) {
@@ -47,7 +51,7 @@ const applyAliases = ({ aggregatedTableSchema, originalTableSchemas, resolutionC
47
51
  const joinedTableName = columnName;
48
52
  // Single resolution column - use original alias
49
53
  if (columnConfig.resolutionColumns.length === 1) {
50
- aliasMap.set((0, member_formatters_1.memberKeyToSafeKey)((0, get_namespaced_key_1.getNamespacedKey)(joinedTableName, columnConfig.resolutionColumns[0])), member.alias);
54
+ aliasMap.set((0, member_key_to_safe_key_1.memberKeyToSafeKey)((0, get_namespaced_key_1.getNamespacedKey)(joinedTableName, columnConfig.resolutionColumns[0]), safeKeyOptions), member.alias);
51
55
  return;
52
56
  }
53
57
  // Multiple resolution columns - create compound aliases
@@ -60,7 +64,7 @@ const applyAliases = ({ aggregatedTableSchema, originalTableSchemas, resolutionC
60
64
  if (!sourceFieldAlias) {
61
65
  throw new Error(`Source field alias not found for ${resolutionColumn}`);
62
66
  }
63
- aliasMap.set((0, member_formatters_1.memberKeyToSafeKey)((0, get_namespaced_key_1.getNamespacedKey)(joinedTableName, resolutionColumn)), (0, get_alias_1.constructCompoundAlias)(member.alias, sourceFieldAlias));
67
+ aliasMap.set((0, member_key_to_safe_key_1.memberKeyToSafeKey)((0, get_namespaced_key_1.getNamespacedKey)(joinedTableName, resolutionColumn), safeKeyOptions), (0, get_alias_1.constructCompoundAlias)(member.alias, sourceFieldAlias));
64
68
  }
65
69
  });
66
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"apply-aliases-step.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/steps/apply-aliases-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply-aliases-step.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/resolution/steps/apply-aliases-step.ts"],"names":[],"mappings":"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"}