@malloydata/malloy 0.0.125 → 0.0.126-dev240305182920

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 (45) hide show
  1. package/README.md +1 -0
  2. package/dist/dialect/dialect.d.ts +1 -0
  3. package/dist/dialect/dialect_map.js +2 -0
  4. package/dist/dialect/functions/concat.js +2 -2
  5. package/dist/dialect/functions/length.js +1 -0
  6. package/dist/dialect/index.d.ts +1 -0
  7. package/dist/dialect/index.js +3 -1
  8. package/dist/dialect/snowflake/functions/chr.d.ts +2 -0
  9. package/dist/dialect/snowflake/functions/chr.js +36 -0
  10. package/dist/dialect/snowflake/functions/div.d.ts +2 -0
  11. package/dist/dialect/snowflake/functions/div.js +37 -0
  12. package/dist/dialect/snowflake/functions/index.d.ts +1 -0
  13. package/dist/dialect/snowflake/functions/index.js +28 -0
  14. package/dist/dialect/snowflake/functions/is_inf.d.ts +2 -0
  15. package/dist/dialect/snowflake/functions/is_inf.js +34 -0
  16. package/dist/dialect/snowflake/functions/is_nan.d.ts +2 -0
  17. package/dist/dialect/snowflake/functions/is_nan.js +33 -0
  18. package/dist/dialect/snowflake/functions/length.d.ts +3 -0
  19. package/dist/dialect/snowflake/functions/length.js +39 -0
  20. package/dist/dialect/snowflake/functions/log.d.ts +2 -0
  21. package/dist/dialect/snowflake/functions/log.js +37 -0
  22. package/dist/dialect/snowflake/functions/rand.d.ts +2 -0
  23. package/dist/dialect/snowflake/functions/rand.js +33 -0
  24. package/dist/dialect/snowflake/functions/regexp_extract.d.ts +2 -0
  25. package/dist/dialect/snowflake/functions/regexp_extract.js +35 -0
  26. package/dist/dialect/snowflake/functions/snowflake_functions.d.ts +1 -0
  27. package/dist/dialect/snowflake/functions/snowflake_functions.js +56 -0
  28. package/dist/dialect/snowflake/functions/starts_ends_with.d.ts +3 -0
  29. package/dist/dialect/snowflake/functions/starts_ends_with.js +43 -0
  30. package/dist/dialect/snowflake/functions/string_agg.d.ts +3 -0
  31. package/dist/dialect/snowflake/functions/string_agg.js +47 -0
  32. package/dist/dialect/snowflake/functions/strpos.d.ts +2 -0
  33. package/dist/dialect/snowflake/functions/strpos.js +35 -0
  34. package/dist/dialect/snowflake/functions/trunc.d.ts +2 -0
  35. package/dist/dialect/snowflake/functions/trunc.js +39 -0
  36. package/dist/dialect/snowflake/index.d.ts +1 -0
  37. package/dist/dialect/snowflake/index.js +40 -0
  38. package/dist/dialect/snowflake/snowflake.d.ts +62 -0
  39. package/dist/dialect/snowflake/snowflake.js +408 -0
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.js +3 -2
  42. package/dist/malloy.d.ts +2 -0
  43. package/dist/malloy.js +7 -0
  44. package/dist/model/malloy_query.js +16 -11
  45. package/package.json +1 -1
@@ -562,7 +562,7 @@ class QueryField extends QueryNode {
562
562
  throw new Error(`Join ${joinName} not found in result set`);
563
563
  }
564
564
  if (!join.leafiest || join.makeUniqueKey) {
565
- func = 'COUNT(DISTINCT';
565
+ func = 'COUNT(DISTINCT ';
566
566
  thing = struct.getDistinctKey().generateExpression(resultSet);
567
567
  }
568
568
  // const distinctKeySQL = this.generateDistinctKeyIfNecessary(
@@ -576,10 +576,10 @@ class QueryField extends QueryNode {
576
576
  // }
577
577
  // find the structDef and return the path to the field...
578
578
  if (state.whereSQL) {
579
- return `${func} CASE WHEN ${state.whereSQL} THEN ${thing} END)`;
579
+ return `${func}CASE WHEN ${state.whereSQL} THEN ${thing} END)`;
580
580
  }
581
581
  else {
582
- return `${func} ${thing})`;
582
+ return `${func}${thing})`;
583
583
  }
584
584
  }
585
585
  generateDialect(resultSet, context, expr, state) {
@@ -927,7 +927,7 @@ function sqlSumDistinct(dialect, sqlExp, sqlDistintKey) {
927
927
  SUM(DISTINCT ${uniqueInt})
928
928
  )`;
929
929
  let ret = `(${sumSQL}/(${multiplier}*1.0))`;
930
- ret = `CAST(${ret} as ${dialect.defaultNumberType})`;
930
+ ret = `CAST(${ret} AS ${dialect.defaultNumberType})`;
931
931
  return ret;
932
932
  }
933
933
  class FieldInstanceField {
@@ -1416,6 +1416,7 @@ class JoinInstance {
1416
1416
  dialectFieldList.push({
1417
1417
  type: f.type,
1418
1418
  sqlExpression: (0, malloy_types_1.getIdentifier)(f),
1419
+ rawName: (0, malloy_types_1.getIdentifier)(f),
1419
1420
  sqlOutputName: (0, malloy_types_1.getIdentifier)(f),
1420
1421
  });
1421
1422
  }
@@ -1953,7 +1954,7 @@ class QueryQuery extends QueryField {
1953
1954
  const matrixOperation = structRelationship.matrixOperation.toUpperCase();
1954
1955
  if (ji.makeUniqueKey) {
1955
1956
  const passKeys = this.generateSQLPassthroughKeys(qs);
1956
- structSQL = `(SELECT ${qs.dialect.sqlGenerateUUID()} as __distinct_key, x.* ${passKeys} FROM ${structSQL} as x)`;
1957
+ structSQL = `(SELECT ${qs.dialect.sqlGenerateUUID()} as ${qs.dialect.sqlMaybeQuoteIdentifier('__distinct_key')}, x.* ${passKeys} FROM ${structSQL} as x)`;
1957
1958
  }
1958
1959
  let onCondition = '';
1959
1960
  if (qs.parent === undefined) {
@@ -2050,7 +2051,7 @@ class QueryQuery extends QueryField {
2050
2051
  if (structRelationship.type === 'basetable') {
2051
2052
  if (ji.makeUniqueKey) {
2052
2053
  const passKeys = this.generateSQLPassthroughKeys(qs);
2053
- structSQL = `(SELECT ${qs.dialect.sqlGenerateUUID()} as __distinct_key, x.* ${passKeys} FROM ${structSQL} as x)`;
2054
+ structSQL = `(SELECT ${qs.dialect.sqlGenerateUUID()} as ${qs.dialect.sqlMaybeQuoteIdentifier('__distinct_key')}, x.* ${passKeys} FROM ${structSQL} as x)`;
2054
2055
  }
2055
2056
  s += `FROM ${structSQL} as ${ji.alias}\n`;
2056
2057
  }
@@ -2472,6 +2473,7 @@ class QueryQuery extends QueryField {
2472
2473
  ? field.f.fieldDef.type
2473
2474
  : 'struct',
2474
2475
  sqlExpression: this.parent.dialect.sqlMaybeQuoteIdentifier(`${name}__${resultStruct.groupSet}`),
2476
+ rawName: name,
2475
2477
  sqlOutputName: sqlName,
2476
2478
  });
2477
2479
  }
@@ -2484,6 +2486,7 @@ class QueryQuery extends QueryField {
2484
2486
  dialectFieldList.push({
2485
2487
  type: field.type,
2486
2488
  sqlExpression: field.f.generateExpression(resultStruct),
2489
+ rawName: name,
2487
2490
  sqlOutputName: sqlName,
2488
2491
  });
2489
2492
  }
@@ -2664,6 +2667,7 @@ class QueryQueryIndexStage extends QueryQuery {
2664
2667
  const fieldValueColumn = dialect.sqlMaybeQuoteIdentifier('fieldValue');
2665
2668
  const fieldTypeColumn = dialect.sqlMaybeQuoteIdentifier('fieldType');
2666
2669
  const fieldRangeColumn = dialect.sqlMaybeQuoteIdentifier('fieldRange');
2670
+ const weightColumn = dialect.sqlMaybeQuoteIdentifier('weight');
2667
2671
  const measureName = this.firstSegment.weightMeasure;
2668
2672
  if (measureName) {
2669
2673
  measureSQL = this.rootResult
@@ -2703,7 +2707,7 @@ class QueryQueryIndexStage extends QueryQuery {
2703
2707
  }
2704
2708
  }
2705
2709
  s += ` END as ${fieldValueColumn},\n`;
2706
- s += ` ${measureSQL} as weight,\n`;
2710
+ s += ` ${measureSQL} as ${weightColumn},\n`;
2707
2711
  // just in case we don't have any field types, force the case statement to have at least one value.
2708
2712
  s += " CASE group_set\n WHEN 99999 THEN ''";
2709
2713
  for (let i = 0; i < fields.length; i++) {
@@ -2737,7 +2741,7 @@ class QueryQueryIndexStage extends QueryQuery {
2737
2741
  ${fieldPathColumn},
2738
2742
  ${fieldTypeColumn},
2739
2743
  COALESCE(${fieldValueColumn}, ${fieldRangeColumn}) as ${fieldValueColumn},
2740
- weight
2744
+ ${weightColumn}
2741
2745
  FROM ${resultStage}\n`);
2742
2746
  return this.resultStage;
2743
2747
  }
@@ -3390,6 +3394,7 @@ class QueryModel {
3390
3394
  const fieldPathColumn = struct.dialect.sqlMaybeQuoteIdentifier('fieldPath');
3391
3395
  const fieldValueColumn = struct.dialect.sqlMaybeQuoteIdentifier('fieldValue');
3392
3396
  const fieldTypeColumn = struct.dialect.sqlMaybeQuoteIdentifier('fieldType');
3397
+ const weightColumn = struct.dialect.sqlMaybeQuoteIdentifier('weight');
3393
3398
  // if we've compiled the SQL before use it otherwise
3394
3399
  let sqlPDT = this.exploreSearchSQLMap.get(explore);
3395
3400
  if (sqlPDT === undefined) {
@@ -3401,13 +3406,13 @@ class QueryModel {
3401
3406
  ${fieldPathColumn},
3402
3407
  ${fieldValueColumn},
3403
3408
  ${fieldTypeColumn},
3404
- weight,
3409
+ ${weightColumn},
3405
3410
  CASE WHEN lower(${fieldValueColumn}) LIKE lower(${generateSQLStringLiteral(searchValue + '%')}) THEN 1 ELSE 0 END as match_first
3406
3411
  FROM ${await connection.manifestTemporaryTable(sqlPDT)}
3407
3412
  WHERE lower(${fieldValueColumn}) LIKE lower(${generateSQLStringLiteral('%' + searchValue + '%')}) ${searchField !== undefined
3408
3413
  ? ` AND ${fieldNameColumn} = '` + searchField + "' \n"
3409
3414
  : ''}
3410
- ORDER BY CASE WHEN lower(${fieldValueColumn}) LIKE lower(${generateSQLStringLiteral(searchValue + '%')}) THEN 1 ELSE 0 END DESC, weight DESC
3415
+ ORDER BY CASE WHEN lower(${fieldValueColumn}) LIKE lower(${generateSQLStringLiteral(searchValue + '%')}) THEN 1 ELSE 0 END DESC, ${weightColumn} DESC
3411
3416
  LIMIT ${limit}
3412
3417
  `;
3413
3418
  if (struct.dialect.hasFinalStage) {
@@ -3416,7 +3421,7 @@ class QueryModel {
3416
3421
  fieldPathColumn,
3417
3422
  fieldValueColumn,
3418
3423
  fieldTypeColumn,
3419
- 'weight',
3424
+ weightColumn,
3420
3425
  'match_first',
3421
3426
  ])}`;
3422
3427
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/malloy",
3
- "version": "0.0.125",
3
+ "version": "0.0.126-dev240305182920",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",