@malloydata/malloy 0.0.138-dev240331175328 → 0.0.138-dev240401005446

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.
@@ -248,19 +248,20 @@ class TrinoDialect extends dialect_1.Dialect {
248
248
  // BigQuery will allocate more resources if we use a CROSS JOIN so we do that instead.
249
249
  //
250
250
  sqlUnnestAlias(source, alias, fieldList, needDistinctKey, isArray, _isInNestedPipeline) {
251
+ const fieldsNames = fieldList.map(f => this.sqlMaybeQuoteIdentifier(f.sqlOutputName));
251
252
  if (isArray) {
252
253
  if (needDistinctKey) {
253
- return `LEFT JOIN UNNEST(ARRAY(( SELECT AS STRUCT row_number() over() as __row_id, value FROM UNNEST(${source}) value))) as ${alias}`;
254
+ return `,UNNEST(ARRAY(( SELECT AS STRUCT row_number() over() as __row_id, value FROM UNNEST(${source}) value))) as ${alias}`;
254
255
  }
255
256
  else {
256
- return `LEFT JOIN UNNEST(ARRAY((SELECT AS STRUCT value FROM unnest(${source}) value))) as ${alias}`;
257
+ return `,UNNEST(ARRAY((SELECT AS STRUCT value FROM unnest(${source}) value))) as ${alias}`;
257
258
  }
258
259
  }
259
260
  else if (needDistinctKey) {
260
- return `LEFT JOIN UNNEST(ARRAY(( SELECT AS STRUCT row_number() over() as __row_id, * FROM UNNEST(${source})))) as ${alias}`;
261
+ return `,UNNEST(zip_with(a, SEQUENCE(1,cardinality(a)), (r,__row_id) -> (r, __row_id))) as ${alias}_outer(${alias},__row_id)`;
261
262
  }
262
263
  else {
263
- return `LEFT JOIN UNNEST(${source}) as ${alias}`;
264
+ return `,UNNEST(${source}) as ${alias}(${fieldsNames.join(', ')})`;
264
265
  }
265
266
  }
266
267
  sqlSumDistinctHashedKey(sqlDistinctKey) {
@@ -271,9 +272,13 @@ class TrinoDialect extends dialect_1.Dialect {
271
272
  return `(${upperPart} + ${lowerPart}) * ${precisionShiftMultiplier}`;
272
273
  }
273
274
  sqlGenerateUUID() {
274
- return 'GENERATE_UUID()';
275
+ return 'UUID()';
275
276
  }
276
277
  sqlFieldReference(alias, fieldName, _fieldType, _isNested, _isArray) {
278
+ // LTNOTE: hack, in duckdb we can't have structs as tables so we kind of simulate it.
279
+ if (fieldName === '__row_id') {
280
+ return `${alias}_outer.__row_id`;
281
+ }
277
282
  return `${alias}.${fieldName}`;
278
283
  }
279
284
  sqlUnnestPipelineHead(isSingleton, sourceSQLExpression) {
@@ -374,7 +379,7 @@ ${(0, utils_1.indent)(sql)}
374
379
  return cast.expr;
375
380
  }
376
381
  sqlRegexpMatch(expr, regexp) {
377
- return (0, malloy_types_1.mkExpr) `REGEXP_CONTAINS(${expr}, ${regexp})`;
382
+ return (0, malloy_types_1.mkExpr) `REGEXP_LIKE(${expr}, ${regexp})`;
378
383
  }
379
384
  sqlLiteralTime(qi, timeString, type, timezone) {
380
385
  if (type === 'date') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/malloy",
3
- "version": "0.0.138-dev240331175328",
3
+ "version": "0.0.138-dev240401005446",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./dist/index.js",