@malloydata/malloy 0.0.333 → 0.0.334

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.
@@ -138,7 +138,8 @@ class RefinedSource extends source_1.Source {
138
138
  fs.addAccessModifiers(thisIncludeState.modifiers);
139
139
  fs.addNotes(thisIncludeState.notes);
140
140
  const retStruct = fs.structDef();
141
- const filterList = retStruct.filterList || [];
141
+ // Clone the filterList to avoid mutating the original source's filters
142
+ const filterList = retStruct.filterList ? [...retStruct.filterList] : [];
142
143
  let moreFilters = false;
143
144
  for (const filter of filters) {
144
145
  for (const el of filter.list) {
@@ -1052,6 +1052,7 @@ class QueryQuery extends query_node_1.QueryField {
1052
1052
  let orderingField;
1053
1053
  const orderByDef = result.firstSegment.orderBy ||
1054
1054
  result.calculateDefaultOrderBy();
1055
+ // Build up the ORDER BY clause from all ordering fields
1055
1056
  for (const ordering of orderByDef) {
1056
1057
  if (typeof ordering.field === 'string') {
1057
1058
  orderingField = {
@@ -1065,31 +1066,32 @@ class QueryQuery extends query_node_1.QueryField {
1065
1066
  obSQL.push(' ' +
1066
1067
  this.parent.dialect.sqlMaybeQuoteIdentifier(`${orderingField.name}__${result.groupSet}`) +
1067
1068
  ` ${ordering.dir || 'ASC'}`);
1068
- // partition for a row number is the parent if it exists.
1069
- let p = '';
1070
- if (result.parent && partitionSQL[result.parent.groupSet]) {
1071
- p = partitionSQL[result.parent.groupSet] + ', group_set';
1072
- }
1073
- else {
1074
- p = 'PARTITION BY group_set';
1075
- }
1076
- // if this has nested data and a having, we want to partion by the 'having' so we don't count
1077
- // deleted rows.
1078
- if (result.hasHaving) {
1079
- p = p + `, __delete__${result.groupSet}`;
1080
- }
1081
- limitExpressions.push(`CASE WHEN GROUP_SET=${result.groupSet} THEN
1082
- ROW_NUMBER() OVER (${p} ORDER BY ${obSQL.join(',')}) END as __row_number__${result.groupSet}`);
1083
- // if the group set is a leaf, we can write a simple where clause.
1084
- const filterClause = `(GROUP_SET = ${result.groupSet} AND __row_number__${result.groupSet} > ${limitValues[result.groupSet]})`;
1085
- if (result.childGroups.length === 1) {
1086
- limitSimpleFilters.push(filterClause);
1087
- }
1088
- else {
1089
- // its a complex
1090
- limitComplexClauses[result.groupSet] =
1091
- `CASE WHEN ${filterClause} THEN 1 ELSE 0 END`;
1092
- }
1069
+ }
1070
+ // partition for a row number is the parent if it exists.
1071
+ let p = '';
1072
+ if (result.parent && partitionSQL[result.parent.groupSet]) {
1073
+ p = partitionSQL[result.parent.groupSet] + ', group_set';
1074
+ }
1075
+ else {
1076
+ p = 'PARTITION BY group_set';
1077
+ }
1078
+ // if this has nested data and a having, we want to partition by the 'having' so we don't count
1079
+ // deleted rows.
1080
+ if (result.hasHaving) {
1081
+ p = p + `, __delete__${result.groupSet}`;
1082
+ }
1083
+ // Generate a single ROW_NUMBER() with all ORDER BY fields
1084
+ limitExpressions.push(`CASE WHEN GROUP_SET=${result.groupSet} THEN
1085
+ ROW_NUMBER() OVER (${p} ORDER BY ${obSQL.join(',')}) END as __row_number__${result.groupSet}`);
1086
+ // if the group set is a leaf, we can write a simple where clause.
1087
+ const filterClause = `(GROUP_SET = ${result.groupSet} AND __row_number__${result.groupSet} > ${limitValues[result.groupSet]})`;
1088
+ if (result.childGroups.length === 1) {
1089
+ limitSimpleFilters.push(filterClause);
1090
+ }
1091
+ else {
1092
+ // its a complex
1093
+ limitComplexClauses[result.groupSet] =
1094
+ `CASE WHEN ${filterClause} THEN 1 ELSE 0 END`;
1093
1095
  }
1094
1096
  }
1095
1097
  }
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const MALLOY_VERSION = "0.0.333";
1
+ export declare const MALLOY_VERSION = "0.0.334";
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MALLOY_VERSION = void 0;
4
4
  // generated with 'generate-version-file' script; do not edit manually
5
- exports.MALLOY_VERSION = '0.0.333';
5
+ exports.MALLOY_VERSION = '0.0.334';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/malloy",
3
- "version": "0.0.333",
3
+ "version": "0.0.334",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./dist/index.js",
@@ -45,9 +45,9 @@
45
45
  "generate-version-file": "VERSION=$(npm pkg get version --workspaces=false | tr -d \\\")\necho \"// generated with 'generate-version-file' script; do not edit manually\\nexport const MALLOY_VERSION = '$VERSION';\" > src/version.ts"
46
46
  },
47
47
  "dependencies": {
48
- "@malloydata/malloy-filter": "0.0.333",
49
- "@malloydata/malloy-interfaces": "0.0.333",
50
- "@malloydata/malloy-tag": "0.0.333",
48
+ "@malloydata/malloy-filter": "0.0.334",
49
+ "@malloydata/malloy-interfaces": "0.0.334",
50
+ "@malloydata/malloy-tag": "0.0.334",
51
51
  "antlr4ts": "^0.5.0-alpha.4",
52
52
  "assert": "^2.0.0",
53
53
  "jaro-winkler": "^0.2.8",