@malloydata/render 0.0.152-dev240714165728 → 0.0.152

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.
@@ -4229,7 +4229,7 @@ class u1e extends _V {
4229
4229
  return "CAST(UUID() AS VARCHAR)";
4230
4230
  }
4231
4231
  sqlUnnestAlias(e, n, r, i, s, o) {
4232
- return s ? i ? `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}(value, ignore,__row_id_from_${n})` : `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) as ${n}(value, ignore)` : i ? `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}_outer(${n}, ignore,__row_id_from_${n})` : `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore)))as ${n}_outer(${n},ignore)`;
4232
+ return s ? i ? `CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}(value, __row_id_from_${n}) ` : `CROSS JOIN UNNEST(${e}) as ${n}(value) ` : i ? `CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}_outer(${n}, __row_id_from_${n})` : `CROSS JOIN UNNEST(${e}) as ${n}_outer(${n})`;
4233
4233
  }
4234
4234
  }
4235
4235
  Kh.PrestoDialect = u1e;
@@ -278,7 +278,7 @@ ${(0,$M.indent)(n)}
278
278
  );
279
279
  `}sqlCreateFunctionCombineLastStage(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`SELECT ARRAY_AGG(CAST(ROW(${r}) as ROW(${i}))) FROM ${e}
280
280
  `}sqlSelectAliasAsStruct(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`CAST(ROW(${r}) as ROW(${i})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlNow(){return(0,Ht.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,Ht.mkExpr)`DATE_ADD('day', 1, ${n.value})`:n.value;if(n.valueType==="timestamp"){const u=Nv(e);if(u){const a=(0,Ht.mkExpr)`AT_TIMEZONE(${s},'${u}')`,l=(0,Ht.mkExpr)`DATE_TRUNC('${r}', ${a})`;return(0,Ht.mkExpr)`AT_TIMEZONE(${l},'${u}')`}}let o=(0,Ht.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,Ht.mkExpr)`DATE_ADD('day',-1, ${o})`),o}sqlExtract(e,n,r){const i=o1e[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=Nv(e);u&&(s=(0,Ht.mkExpr)`at_timezone(${s},'${u}')`)}const o=(0,Ht.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,Ht.mkExpr)`mod(${o}+1,7)`:o}sqlAlterTime(e,n,r,i){return i==="quarter"&&(i="month",r=(0,Ht.mkExpr)`${r}*3`),i==="week"&&(i="day",r=(0,Ht.mkExpr)`${r}*7`),e==="-"&&(r=(0,Ht.mkExpr)`(${r})*-1`),(0,Ht.mkExpr)`DATE_ADD('${i}', ${r}, ${n.value})`}sqlCast(e,n){const r=`${n.srcType}=>${n.dstType}`,i=Nv(e);if(r==="timestamp=>date"&&i){const s=(0,Ht.mkExpr)`CAST(${n.expr} as TIMESTAMP)`;return(0,Ht.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date=>timestamp"&&i)return(0,Ht.mkExpr)`CAST(CONCAT(CAST(CAST(${n.expr} AS TIMESTAMP) AS VARCHAR), ' ${i}') AS TIMESTAMP WITH TIME ZONE)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"TRY_CAST":"CAST";return(0,Ht.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,Ht.mkExpr)`REGEXP_LIKE(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||Nv(e);return s?`TIMESTAMP '${n} ${s}'`:`TIMESTAMP '${n}'`}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!s1e(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,Ht.mkExpr)`CAST(${s} AS TIMESTAMP)`,o=(0,Ht.mkExpr)`CAST(${o} AS TIMESTAMP)`);let l=(0,Ht.mkExpr)`DATE_DIFF('${u}',${s},${o})`;return a!==1&&(l=(0,Ht.mkExpr)`FLOOR(CAST(${l} AS DOUBLE)/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,Ht.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Ht.isSamplingRows)(n))throw new Error("Trino doesn't support sampling by rows only percent");if((0,Ht.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return i1e.TRINO_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":e.type==="string"?"VARCHAR":e.type}sqlTypeToMalloyType(e){}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,n){return`CAST(${e} as VARCHAR) || 'x' || CAST(${n} as VARCHAR)`}sqlStringAggDistinct(e,n,r){return`
281
- ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${n} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${r.length>0?r:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}ph.TrinoDialect=kM;class a1e extends kM{constructor(){super(...arguments),this.name="presto",this.supportsPipelinesInViews=!1,this.supportsLeftJoinUnnest=!1}sqlGenerateUUID(){return"CAST(UUID() AS VARCHAR)"}sqlUnnestAlias(e,n,r,i,s,o){return s?i?`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}(value, ignore,__row_id_from_${n})`:`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) as ${n}(value, ignore)`:i?`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}_outer(${n}, ignore,__row_id_from_${n})`:`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore)))as ${n}_outer(${n},ignore)`}}ph.PrestoDialect=a1e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(ph,t)}(EO);var Du={};Object.defineProperty(Du,"__esModule",{value:!0}),Du.getDialectFunction=Du.registerDialect=Du.getDialect=void 0;const l1e=pO,c1e=dO,f1e=mO,x1e=ZR,PM=EO,AO=new Map;function d1e(t){const e=AO.get(t);if(e===void 0)throw new Error(`Unknown Dialect ${t}`);return e}Du.getDialect=d1e;function Ff(t){AO.set(t.name,t)}Du.registerDialect=Ff,Ff(new c1e.PostgresDialect),Ff(new x1e.StandardSQLDialect),Ff(new l1e.DuckDBDialect),Ff(new f1e.SnowflakeDialect),Ff(new PM.TrinoDialect),Ff(new PM.PrestoDialect);function MM(t,e){return t.params.length===e.params.length&&t.params.every((n,r)=>{const i=e.params[r];return n.isVariadic===i.isVariadic&&n.name===i.name&&n.allowedTypes.length===i.allowedTypes.length&&n.allowedTypes.every(s=>i.allowedTypes.some(o=>s.dataType===o.dataType&&s.expressionType===o.expressionType))})}function h1e(t,e){return MM(t,e)}function p1e(t,e){return t.returnType.dataType===e.returnType.dataType&&t.returnType.expressionType===e.returnType.expressionType}function g1e(t){const e={type:"function",name:t,overloads:[]};let n=!1;for(const r of AO.values()){const i=r.getGlobalFunctionDef(t);if(i){for(const s of i){let o=!1;for(const u of e.overloads)if(h1e(s,u)){if(!MM(s,u))throw new Error("params are compatible but not equal");if(!p1e(s,u))throw new Error("params match but return types differ!");u.dialect[r.name]={e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit},o=!0}o||e.overloads.push({returnType:s.returnType,params:s.params,dialect:{[r.name]:{e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit}},needsWindowOrderBy:s.needsWindowOrderBy,between:s.between,isSymmetric:s.isSymmetric})}n=!0}}return n?e:void 0}Du.getDialectFunction=g1e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FUNCTIONS=t.getDialectFunction=t.registerDialect=t.getDialect=t.TrinoDialect=t.SnowflakeDialect=t.DuckDBDialect=t.PostgresDialect=t.StandardSQLDialect=t.qtz=t.Dialect=t.sql=t.literal=t.params=t.param=t.sqlFragment=t.spread=t.maxScalar=t.minAggregate=t.minScalar=t.overload=t.makeParam=t.anyExprType=t.arg=void 0;var e=ge;Object.defineProperty(t,"arg",{enumerable:!0,get:function(){return e.arg}}),Object.defineProperty(t,"anyExprType",{enumerable:!0,get:function(){return e.anyExprType}}),Object.defineProperty(t,"makeParam",{enumerable:!0,get:function(){return e.makeParam}}),Object.defineProperty(t,"overload",{enumerable:!0,get:function(){return e.overload}}),Object.defineProperty(t,"minScalar",{enumerable:!0,get:function(){return e.minScalar}}),Object.defineProperty(t,"minAggregate",{enumerable:!0,get:function(){return e.minAggregate}}),Object.defineProperty(t,"maxScalar",{enumerable:!0,get:function(){return e.maxScalar}}),Object.defineProperty(t,"spread",{enumerable:!0,get:function(){return e.spread}}),Object.defineProperty(t,"sqlFragment",{enumerable:!0,get:function(){return e.sqlFragment}}),Object.defineProperty(t,"param",{enumerable:!0,get:function(){return e.param}}),Object.defineProperty(t,"params",{enumerable:!0,get:function(){return e.params}}),Object.defineProperty(t,"literal",{enumerable:!0,get:function(){return e.literal}}),Object.defineProperty(t,"sql",{enumerable:!0,get:function(){return e.sql}});var n=lf;Object.defineProperty(t,"Dialect",{enumerable:!0,get:function(){return n.Dialect}}),Object.defineProperty(t,"qtz",{enumerable:!0,get:function(){return n.qtz}});var r=ZR;Object.defineProperty(t,"StandardSQLDialect",{enumerable:!0,get:function(){return r.StandardSQLDialect}});var i=dO;Object.defineProperty(t,"PostgresDialect",{enumerable:!0,get:function(){return i.PostgresDialect}});var s=pO;Object.defineProperty(t,"DuckDBDialect",{enumerable:!0,get:function(){return s.DuckDBDialect}});var o=mO;Object.defineProperty(t,"SnowflakeDialect",{enumerable:!0,get:function(){return o.SnowflakeDialect}});var u=EO;Object.defineProperty(t,"TrinoDialect",{enumerable:!0,get:function(){return u.TrinoDialect}});var a=Du;Object.defineProperty(t,"getDialect",{enumerable:!0,get:function(){return a.getDialect}}),Object.defineProperty(t,"registerDialect",{enumerable:!0,get:function(){return a.registerDialect}}),Object.defineProperty(t,"getDialectFunction",{enumerable:!0,get:function(){return a.getDialectFunction}});var l=cf;Object.defineProperty(t,"FUNCTIONS",{enumerable:!0,get:function(){return l.FUNCTIONS}})}(np);var Fu={},wf={};Object.defineProperty(wf,"__esModule",{value:!0}),wf.QueryModel=wf.Segment=void 0;const m1e=np,y1e=rp,Ue=ne,Or=Vt;function jM(t){return t.map(e=>encodeURIComponent(e)).join("/")}function vO(t){return`'${t}'`}function E1e(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function mp(t){const e=[];for(const n of t.fields.filter(Ue.isPhysical))e.push({type:n.type,sqlExpression:(0,Ue.getIdentifier)(n),rawName:(0,Ue.getIdentifier)(n),sqlOutputName:(0,Ue.getIdentifier)(n)});return e}class A1e extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class yp{constructor(e=!0,n){this.parent=n,this.withs=[],this.udfs=[],this.pdts=[],this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,Or.indent)(`
281
+ ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${n} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${r.length>0?r:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}ph.TrinoDialect=kM;class a1e extends kM{constructor(){super(...arguments),this.name="presto",this.supportsPipelinesInViews=!1,this.supportsLeftJoinUnnest=!1}sqlGenerateUUID(){return"CAST(UUID() AS VARCHAR)"}sqlUnnestAlias(e,n,r,i,s,o){return s?i?`CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}(value, __row_id_from_${n}) `:`CROSS JOIN UNNEST(${e}) as ${n}(value) `:i?`CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}_outer(${n}, __row_id_from_${n})`:`CROSS JOIN UNNEST(${e}) as ${n}_outer(${n})`}}ph.PrestoDialect=a1e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(ph,t)}(EO);var Du={};Object.defineProperty(Du,"__esModule",{value:!0}),Du.getDialectFunction=Du.registerDialect=Du.getDialect=void 0;const l1e=pO,c1e=dO,f1e=mO,x1e=ZR,PM=EO,AO=new Map;function d1e(t){const e=AO.get(t);if(e===void 0)throw new Error(`Unknown Dialect ${t}`);return e}Du.getDialect=d1e;function Ff(t){AO.set(t.name,t)}Du.registerDialect=Ff,Ff(new c1e.PostgresDialect),Ff(new x1e.StandardSQLDialect),Ff(new l1e.DuckDBDialect),Ff(new f1e.SnowflakeDialect),Ff(new PM.TrinoDialect),Ff(new PM.PrestoDialect);function MM(t,e){return t.params.length===e.params.length&&t.params.every((n,r)=>{const i=e.params[r];return n.isVariadic===i.isVariadic&&n.name===i.name&&n.allowedTypes.length===i.allowedTypes.length&&n.allowedTypes.every(s=>i.allowedTypes.some(o=>s.dataType===o.dataType&&s.expressionType===o.expressionType))})}function h1e(t,e){return MM(t,e)}function p1e(t,e){return t.returnType.dataType===e.returnType.dataType&&t.returnType.expressionType===e.returnType.expressionType}function g1e(t){const e={type:"function",name:t,overloads:[]};let n=!1;for(const r of AO.values()){const i=r.getGlobalFunctionDef(t);if(i){for(const s of i){let o=!1;for(const u of e.overloads)if(h1e(s,u)){if(!MM(s,u))throw new Error("params are compatible but not equal");if(!p1e(s,u))throw new Error("params match but return types differ!");u.dialect[r.name]={e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit},o=!0}o||e.overloads.push({returnType:s.returnType,params:s.params,dialect:{[r.name]:{e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit}},needsWindowOrderBy:s.needsWindowOrderBy,between:s.between,isSymmetric:s.isSymmetric})}n=!0}}return n?e:void 0}Du.getDialectFunction=g1e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FUNCTIONS=t.getDialectFunction=t.registerDialect=t.getDialect=t.TrinoDialect=t.SnowflakeDialect=t.DuckDBDialect=t.PostgresDialect=t.StandardSQLDialect=t.qtz=t.Dialect=t.sql=t.literal=t.params=t.param=t.sqlFragment=t.spread=t.maxScalar=t.minAggregate=t.minScalar=t.overload=t.makeParam=t.anyExprType=t.arg=void 0;var e=ge;Object.defineProperty(t,"arg",{enumerable:!0,get:function(){return e.arg}}),Object.defineProperty(t,"anyExprType",{enumerable:!0,get:function(){return e.anyExprType}}),Object.defineProperty(t,"makeParam",{enumerable:!0,get:function(){return e.makeParam}}),Object.defineProperty(t,"overload",{enumerable:!0,get:function(){return e.overload}}),Object.defineProperty(t,"minScalar",{enumerable:!0,get:function(){return e.minScalar}}),Object.defineProperty(t,"minAggregate",{enumerable:!0,get:function(){return e.minAggregate}}),Object.defineProperty(t,"maxScalar",{enumerable:!0,get:function(){return e.maxScalar}}),Object.defineProperty(t,"spread",{enumerable:!0,get:function(){return e.spread}}),Object.defineProperty(t,"sqlFragment",{enumerable:!0,get:function(){return e.sqlFragment}}),Object.defineProperty(t,"param",{enumerable:!0,get:function(){return e.param}}),Object.defineProperty(t,"params",{enumerable:!0,get:function(){return e.params}}),Object.defineProperty(t,"literal",{enumerable:!0,get:function(){return e.literal}}),Object.defineProperty(t,"sql",{enumerable:!0,get:function(){return e.sql}});var n=lf;Object.defineProperty(t,"Dialect",{enumerable:!0,get:function(){return n.Dialect}}),Object.defineProperty(t,"qtz",{enumerable:!0,get:function(){return n.qtz}});var r=ZR;Object.defineProperty(t,"StandardSQLDialect",{enumerable:!0,get:function(){return r.StandardSQLDialect}});var i=dO;Object.defineProperty(t,"PostgresDialect",{enumerable:!0,get:function(){return i.PostgresDialect}});var s=pO;Object.defineProperty(t,"DuckDBDialect",{enumerable:!0,get:function(){return s.DuckDBDialect}});var o=mO;Object.defineProperty(t,"SnowflakeDialect",{enumerable:!0,get:function(){return o.SnowflakeDialect}});var u=EO;Object.defineProperty(t,"TrinoDialect",{enumerable:!0,get:function(){return u.TrinoDialect}});var a=Du;Object.defineProperty(t,"getDialect",{enumerable:!0,get:function(){return a.getDialect}}),Object.defineProperty(t,"registerDialect",{enumerable:!0,get:function(){return a.registerDialect}}),Object.defineProperty(t,"getDialectFunction",{enumerable:!0,get:function(){return a.getDialectFunction}});var l=cf;Object.defineProperty(t,"FUNCTIONS",{enumerable:!0,get:function(){return l.FUNCTIONS}})}(np);var Fu={},wf={};Object.defineProperty(wf,"__esModule",{value:!0}),wf.QueryModel=wf.Segment=void 0;const m1e=np,y1e=rp,Ue=ne,Or=Vt;function jM(t){return t.map(e=>encodeURIComponent(e)).join("/")}function vO(t){return`'${t}'`}function E1e(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function mp(t){const e=[];for(const n of t.fields.filter(Ue.isPhysical))e.push({type:n.type,sqlExpression:(0,Ue.getIdentifier)(n),rawName:(0,Ue.getIdentifier)(n),sqlOutputName:(0,Ue.getIdentifier)(n)});return e}class A1e extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class yp{constructor(e=!0,n){this.parent=n,this.withs=[],this.udfs=[],this.pdts=[],this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,Or.indent)(`
282
282
  (${e})
283
283
  `))}addUDF(e,n,r){let{sql:i,lastStageName:s}=e.combineStages(!0);if(s===void 0)throw new Error("Internal Error: no stage to combine");i+=n.sqlCreateFunctionCombineLastStage(s,mp(r));const o=`${n.udfPrefix}${this.root().udfs.length}`;return i=n.sqlCreateFunction(o,i),this.root().udfs.push(i),o}addPDT(e,n){const r=this.combineStages(!1).sql+this.withs[this.withs.length-1],i="scratch."+e+(0,Or.generateHash)(r);return this.root().pdts.push(n.sqlCreateTableAsSelect(i,r)),i}combineStages(e){if(!this.useCTE)return{sql:this.withs[0],lastStageName:this.withs[0]};let n=this.getName(0),r="WITH ",i="";for(let s=0;s<this.withs.length-(e?0:1);s++){const o=this.withs[s];if(n=this.getName(s),o===void 0)throw new Error(`Expected sql WITH to be present for stage ${n}.`);i+=`${r}${n} AS (
284
284
  ${(0,Or.indent)(o)})
@@ -5051,7 +5051,7 @@ class vhe extends XG {
5051
5051
  return "CAST(UUID() AS VARCHAR)";
5052
5052
  }
5053
5053
  sqlUnnestAlias(e, n, r, i, s, o) {
5054
- return s ? i ? `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}(value, ignore,__row_id_from_${n})` : `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) as ${n}(value, ignore)` : i ? `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}_outer(${n}, ignore,__row_id_from_${n})` : `CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore)))as ${n}_outer(${n},ignore)`;
5054
+ return s ? i ? `CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}(value, __row_id_from_${n}) ` : `CROSS JOIN UNNEST(${e}) as ${n}(value) ` : i ? `CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}_outer(${n}, __row_id_from_${n})` : `CROSS JOIN UNNEST(${e}) as ${n}_outer(${n})`;
5055
5055
  }
5056
5056
  }
5057
5057
  Ph.PrestoDialect = vhe;
@@ -278,7 +278,7 @@ ${(0,SM.indent)(n)}
278
278
  );
279
279
  `}sqlCreateFunctionCombineLastStage(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`SELECT ARRAY_AGG(CAST(ROW(${r}) as ROW(${i}))) FROM ${e}
280
280
  `}sqlSelectAliasAsStruct(e,n){const r=n.map(s=>s.sqlExpression).join(", "),i=this.buildTypeExpression(n);return`CAST(ROW(${r}) as ROW(${i})`}sqlMaybeQuoteIdentifier(e){return'"'+e+'"'}sqlNow(){return(0,qt.mkExpr)`LOCALTIMESTAMP`}sqlTrunc(e,n,r){const i=r==="week",s=i?(0,qt.mkExpr)`DATE_ADD('day', 1, ${n.value})`:n.value;if(n.valueType==="timestamp"){const u=yS(e);if(u){const a=(0,qt.mkExpr)`AT_TIMEZONE(${s},'${u}')`,l=(0,qt.mkExpr)`DATE_TRUNC('${r}', ${a})`;return(0,qt.mkExpr)`AT_TIMEZONE(${l},'${u}')`}}let o=(0,qt.mkExpr)`DATE_TRUNC('${r}', ${s})`;return i&&(o=(0,qt.mkExpr)`DATE_ADD('day',-1, ${o})`),o}sqlExtract(e,n,r){const i=Ehe[r]||r;let s=n.value;if(n.valueType==="timestamp"){const u=yS(e);u&&(s=(0,qt.mkExpr)`at_timezone(${s},'${u}')`)}const o=(0,qt.mkExpr)`EXTRACT(${i} FROM ${s})`;return r==="day_of_week"?(0,qt.mkExpr)`mod(${o}+1,7)`:o}sqlAlterTime(e,n,r,i){return i==="quarter"&&(i="month",r=(0,qt.mkExpr)`${r}*3`),i==="week"&&(i="day",r=(0,qt.mkExpr)`${r}*7`),e==="-"&&(r=(0,qt.mkExpr)`(${r})*-1`),(0,qt.mkExpr)`DATE_ADD('${i}', ${r}, ${n.value})`}sqlCast(e,n){const r=`${n.srcType}=>${n.dstType}`,i=yS(e);if(r==="timestamp=>date"&&i){const s=(0,qt.mkExpr)`CAST(${n.expr} as TIMESTAMP)`;return(0,qt.mkExpr)`CAST((${s}) AT TIME ZONE '${i}' AS DATE)`}else if(r==="date=>timestamp"&&i)return(0,qt.mkExpr)`CAST(CONCAT(CAST(CAST(${n.expr} AS TIMESTAMP) AS VARCHAR), ' ${i}') AS TIMESTAMP WITH TIME ZONE)`;if(n.srcType!==n.dstType){const s=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,o=n.safe?"TRY_CAST":"CAST";return(0,qt.mkExpr)`${o}(${n.expr} AS ${s})`}return n.expr}sqlRegexpMatch(e,n){return(0,qt.mkExpr)`REGEXP_LIKE(${e}, ${n})`}sqlLiteralTime(e,n,r,i){if(r==="date")return`DATE '${n}'`;const s=i||yS(e);return s?`TIMESTAMP '${n} ${s}'`:`TIMESTAMP '${n}'`}sqlMeasureTime(e,n,r){const i={microsecond:{use:"microsecond",ratio:1},millisecond:{use:"microsecond",ratio:1e3},second:{use:"millisecond",ratio:1e3},minute:{use:"second",ratio:60},hour:{use:"minute",ratio:60},day:{use:"hour",ratio:24},week:{use:"day",ratio:7}};let s=e.value,o=n.value;if(i[r]){const{use:u,ratio:a}=i[r];if(!yhe(u))throw new Error(`Measure in '${u} not implemented`);if(e.valueType!==n.valueType)throw new Error("Can't measure difference between different types");e.valueType==="date"&&(s=(0,qt.mkExpr)`CAST(${s} AS TIMESTAMP)`,o=(0,qt.mkExpr)`CAST(${o} AS TIMESTAMP)`);let l=(0,qt.mkExpr)`DATE_DIFF('${u}',${s},${o})`;return a!==1&&(l=(0,qt.mkExpr)`FLOOR(CAST(${l} AS DOUBLE)/${a.toString()}.0)`),l}throw new Error(`Measure '${r} not implemented`)}sqlSampleTable(e,n){if(n!==void 0){if((0,qt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,qt.isSamplingRows)(n))throw new Error("Trino doesn't support sampling by rows only percent");if((0,qt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return mhe.TRINO_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":e.type==="string"?"VARCHAR":e.type}sqlTypeToMalloyType(e){}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,n){return`CAST(${e} as VARCHAR) || 'x' || CAST(${n} as VARCHAR)`}sqlStringAggDistinct(e,n,r){return`
281
- ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${n} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${r.length>0?r:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}ih.TrinoDialect=_M;class She extends _M{constructor(){super(...arguments),this.name="presto",this.supportsPipelinesInViews=!1,this.supportsLeftJoinUnnest=!1}sqlGenerateUUID(){return"CAST(UUID() AS VARCHAR)"}sqlUnnestAlias(e,n,r,i,s,o){return s?i?`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}(value, ignore,__row_id_from_${n})`:`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) as ${n}(value, ignore)`:i?`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore))) WITH ORDINALITY as ${n}_outer(${n}, ignore,__row_id_from_${n})`:`CROSS JOIN UNNEST(zip_with(${e},array[],(r,ignore) -> (r, ignore)))as ${n}_outer(${n},ignore)`}}ih.PrestoDialect=She,function(t){var e=O&&O.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=O&&O.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(ih,t)}(LD);var _u={};Object.defineProperty(_u,"__esModule",{value:!0}),_u.getDialectFunction=_u.registerDialect=_u.getDialect=void 0;const vhe=ND,_he=RD,Che=FD,bhe=dD,CM=LD,ID=new Map;function The(t){const e=ID.get(t);if(e===void 0)throw new Error(`Unknown Dialect ${t}`);return e}_u.getDialect=The;function Af(t){ID.set(t.name,t)}_u.registerDialect=Af,Af(new _he.PostgresDialect),Af(new bhe.StandardSQLDialect),Af(new vhe.DuckDBDialect),Af(new Che.SnowflakeDialect),Af(new CM.TrinoDialect),Af(new CM.PrestoDialect);function bM(t,e){return t.params.length===e.params.length&&t.params.every((n,r)=>{const i=e.params[r];return n.isVariadic===i.isVariadic&&n.name===i.name&&n.allowedTypes.length===i.allowedTypes.length&&n.allowedTypes.every(s=>i.allowedTypes.some(o=>s.dataType===o.dataType&&s.expressionType===o.expressionType))})}function Rhe(t,e){return bM(t,e)}function Ohe(t,e){return t.returnType.dataType===e.returnType.dataType&&t.returnType.expressionType===e.returnType.expressionType}function Nhe(t){const e={type:"function",name:t,overloads:[]};let n=!1;for(const r of ID.values()){const i=r.getGlobalFunctionDef(t);if(i){for(const s of i){let o=!1;for(const u of e.overloads)if(Rhe(s,u)){if(!bM(s,u))throw new Error("params are compatible but not equal");if(!Ohe(s,u))throw new Error("params match but return types differ!");u.dialect[r.name]={e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit},o=!0}o||e.overloads.push({returnType:s.returnType,params:s.params,dialect:{[r.name]:{e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit}},needsWindowOrderBy:s.needsWindowOrderBy,between:s.between,isSymmetric:s.isSymmetric})}n=!0}}return n?e:void 0}_u.getDialectFunction=Nhe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FUNCTIONS=t.getDialectFunction=t.registerDialect=t.getDialect=t.TrinoDialect=t.SnowflakeDialect=t.DuckDBDialect=t.PostgresDialect=t.StandardSQLDialect=t.qtz=t.Dialect=t.sql=t.literal=t.params=t.param=t.sqlFragment=t.spread=t.maxScalar=t.minAggregate=t.minScalar=t.overload=t.makeParam=t.anyExprType=t.arg=void 0;var e=ge;Object.defineProperty(t,"arg",{enumerable:!0,get:function(){return e.arg}}),Object.defineProperty(t,"anyExprType",{enumerable:!0,get:function(){return e.anyExprType}}),Object.defineProperty(t,"makeParam",{enumerable:!0,get:function(){return e.makeParam}}),Object.defineProperty(t,"overload",{enumerable:!0,get:function(){return e.overload}}),Object.defineProperty(t,"minScalar",{enumerable:!0,get:function(){return e.minScalar}}),Object.defineProperty(t,"minAggregate",{enumerable:!0,get:function(){return e.minAggregate}}),Object.defineProperty(t,"maxScalar",{enumerable:!0,get:function(){return e.maxScalar}}),Object.defineProperty(t,"spread",{enumerable:!0,get:function(){return e.spread}}),Object.defineProperty(t,"sqlFragment",{enumerable:!0,get:function(){return e.sqlFragment}}),Object.defineProperty(t,"param",{enumerable:!0,get:function(){return e.param}}),Object.defineProperty(t,"params",{enumerable:!0,get:function(){return e.params}}),Object.defineProperty(t,"literal",{enumerable:!0,get:function(){return e.literal}}),Object.defineProperty(t,"sql",{enumerable:!0,get:function(){return e.sql}});var n=Kc;Object.defineProperty(t,"Dialect",{enumerable:!0,get:function(){return n.Dialect}}),Object.defineProperty(t,"qtz",{enumerable:!0,get:function(){return n.qtz}});var r=dD;Object.defineProperty(t,"StandardSQLDialect",{enumerable:!0,get:function(){return r.StandardSQLDialect}});var i=RD;Object.defineProperty(t,"PostgresDialect",{enumerable:!0,get:function(){return i.PostgresDialect}});var s=ND;Object.defineProperty(t,"DuckDBDialect",{enumerable:!0,get:function(){return s.DuckDBDialect}});var o=FD;Object.defineProperty(t,"SnowflakeDialect",{enumerable:!0,get:function(){return o.SnowflakeDialect}});var u=LD;Object.defineProperty(t,"TrinoDialect",{enumerable:!0,get:function(){return u.TrinoDialect}});var a=_u;Object.defineProperty(t,"getDialect",{enumerable:!0,get:function(){return a.getDialect}}),Object.defineProperty(t,"registerDialect",{enumerable:!0,get:function(){return a.registerDialect}}),Object.defineProperty(t,"getDialectFunction",{enumerable:!0,get:function(){return a.getDialectFunction}});var l=Jc;Object.defineProperty(t,"FUNCTIONS",{enumerable:!0,get:function(){return l.FUNCTIONS}})}(Q2);var Cu={},Sf={};Object.defineProperty(Sf,"__esModule",{value:!0}),Sf.QueryModel=Sf.Segment=void 0;const Dhe=Q2,Fhe=G2,Ue=ne,br=Wt;function TM(t){return t.map(e=>encodeURIComponent(e)).join("/")}function $D(t){return`'${t}'`}function whe(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function og(t){const e=[];for(const n of t.fields.filter(Ue.isPhysical))e.push({type:n.type,sqlExpression:(0,Ue.getIdentifier)(n),rawName:(0,Ue.getIdentifier)(n),sqlOutputName:(0,Ue.getIdentifier)(n)});return e}class Lhe extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class ug{constructor(e=!0,n){this.parent=n,this.withs=[],this.udfs=[],this.pdts=[],this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,br.indent)(`
281
+ ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${n} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${r.length>0?r:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}}ih.TrinoDialect=_M;class She extends _M{constructor(){super(...arguments),this.name="presto",this.supportsPipelinesInViews=!1,this.supportsLeftJoinUnnest=!1}sqlGenerateUUID(){return"CAST(UUID() AS VARCHAR)"}sqlUnnestAlias(e,n,r,i,s,o){return s?i?`CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}(value, __row_id_from_${n}) `:`CROSS JOIN UNNEST(${e}) as ${n}(value) `:i?`CROSS JOIN UNNEST(${e}) WITH ORDINALITY as ${n}_outer(${n}, __row_id_from_${n})`:`CROSS JOIN UNNEST(${e}) as ${n}_outer(${n})`}}ih.PrestoDialect=She,function(t){var e=O&&O.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=O&&O.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(ih,t)}(LD);var _u={};Object.defineProperty(_u,"__esModule",{value:!0}),_u.getDialectFunction=_u.registerDialect=_u.getDialect=void 0;const vhe=ND,_he=RD,Che=FD,bhe=dD,CM=LD,ID=new Map;function The(t){const e=ID.get(t);if(e===void 0)throw new Error(`Unknown Dialect ${t}`);return e}_u.getDialect=The;function Af(t){ID.set(t.name,t)}_u.registerDialect=Af,Af(new _he.PostgresDialect),Af(new bhe.StandardSQLDialect),Af(new vhe.DuckDBDialect),Af(new Che.SnowflakeDialect),Af(new CM.TrinoDialect),Af(new CM.PrestoDialect);function bM(t,e){return t.params.length===e.params.length&&t.params.every((n,r)=>{const i=e.params[r];return n.isVariadic===i.isVariadic&&n.name===i.name&&n.allowedTypes.length===i.allowedTypes.length&&n.allowedTypes.every(s=>i.allowedTypes.some(o=>s.dataType===o.dataType&&s.expressionType===o.expressionType))})}function Rhe(t,e){return bM(t,e)}function Ohe(t,e){return t.returnType.dataType===e.returnType.dataType&&t.returnType.expressionType===e.returnType.expressionType}function Nhe(t){const e={type:"function",name:t,overloads:[]};let n=!1;for(const r of ID.values()){const i=r.getGlobalFunctionDef(t);if(i){for(const s of i){let o=!1;for(const u of e.overloads)if(Rhe(s,u)){if(!bM(s,u))throw new Error("params are compatible but not equal");if(!Ohe(s,u))throw new Error("params match but return types differ!");u.dialect[r.name]={e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit},o=!0}o||e.overloads.push({returnType:s.returnType,params:s.params,dialect:{[r.name]:{e:s.e,supportsOrderBy:s.supportsOrderBy,defaultOrderByArgIndex:s.defaultOrderByArgIndex,supportsLimit:s.supportsLimit}},needsWindowOrderBy:s.needsWindowOrderBy,between:s.between,isSymmetric:s.isSymmetric})}n=!0}}return n?e:void 0}_u.getDialectFunction=Nhe,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.FUNCTIONS=t.getDialectFunction=t.registerDialect=t.getDialect=t.TrinoDialect=t.SnowflakeDialect=t.DuckDBDialect=t.PostgresDialect=t.StandardSQLDialect=t.qtz=t.Dialect=t.sql=t.literal=t.params=t.param=t.sqlFragment=t.spread=t.maxScalar=t.minAggregate=t.minScalar=t.overload=t.makeParam=t.anyExprType=t.arg=void 0;var e=ge;Object.defineProperty(t,"arg",{enumerable:!0,get:function(){return e.arg}}),Object.defineProperty(t,"anyExprType",{enumerable:!0,get:function(){return e.anyExprType}}),Object.defineProperty(t,"makeParam",{enumerable:!0,get:function(){return e.makeParam}}),Object.defineProperty(t,"overload",{enumerable:!0,get:function(){return e.overload}}),Object.defineProperty(t,"minScalar",{enumerable:!0,get:function(){return e.minScalar}}),Object.defineProperty(t,"minAggregate",{enumerable:!0,get:function(){return e.minAggregate}}),Object.defineProperty(t,"maxScalar",{enumerable:!0,get:function(){return e.maxScalar}}),Object.defineProperty(t,"spread",{enumerable:!0,get:function(){return e.spread}}),Object.defineProperty(t,"sqlFragment",{enumerable:!0,get:function(){return e.sqlFragment}}),Object.defineProperty(t,"param",{enumerable:!0,get:function(){return e.param}}),Object.defineProperty(t,"params",{enumerable:!0,get:function(){return e.params}}),Object.defineProperty(t,"literal",{enumerable:!0,get:function(){return e.literal}}),Object.defineProperty(t,"sql",{enumerable:!0,get:function(){return e.sql}});var n=Kc;Object.defineProperty(t,"Dialect",{enumerable:!0,get:function(){return n.Dialect}}),Object.defineProperty(t,"qtz",{enumerable:!0,get:function(){return n.qtz}});var r=dD;Object.defineProperty(t,"StandardSQLDialect",{enumerable:!0,get:function(){return r.StandardSQLDialect}});var i=RD;Object.defineProperty(t,"PostgresDialect",{enumerable:!0,get:function(){return i.PostgresDialect}});var s=ND;Object.defineProperty(t,"DuckDBDialect",{enumerable:!0,get:function(){return s.DuckDBDialect}});var o=FD;Object.defineProperty(t,"SnowflakeDialect",{enumerable:!0,get:function(){return o.SnowflakeDialect}});var u=LD;Object.defineProperty(t,"TrinoDialect",{enumerable:!0,get:function(){return u.TrinoDialect}});var a=_u;Object.defineProperty(t,"getDialect",{enumerable:!0,get:function(){return a.getDialect}}),Object.defineProperty(t,"registerDialect",{enumerable:!0,get:function(){return a.registerDialect}}),Object.defineProperty(t,"getDialectFunction",{enumerable:!0,get:function(){return a.getDialectFunction}});var l=Jc;Object.defineProperty(t,"FUNCTIONS",{enumerable:!0,get:function(){return l.FUNCTIONS}})}(Q2);var Cu={},Sf={};Object.defineProperty(Sf,"__esModule",{value:!0}),Sf.QueryModel=Sf.Segment=void 0;const Dhe=Q2,Fhe=G2,Ue=ne,br=Wt;function TM(t){return t.map(e=>encodeURIComponent(e)).join("/")}function $D(t){return`'${t}'`}function whe(t){return t.replace(/[^a-zA-Z0-9_]/g,"_o_")}function og(t){const e=[];for(const n of t.fields.filter(Ue.isPhysical))e.push({type:n.type,sqlExpression:(0,Ue.getIdentifier)(n),rawName:(0,Ue.getIdentifier)(n),sqlOutputName:(0,Ue.getIdentifier)(n)});return e}class Lhe extends Set{add_use(e){if(e!==void 0)return this.add(e)}hasAsymetricFunctions(){return this.has("sum")||this.has("avg")||this.has("count")||this.has("generic_asymmetric_aggregate")}}class ug{constructor(e=!0,n){this.parent=n,this.withs=[],this.udfs=[],this.pdts=[],this.stagePrefix="__stage",this.useCTE=e}getName(e){return`${this.stagePrefix}${e}`}root(){return this.parent===void 0?this:this.parent.root()}addStage(e){return this.useCTE?(this.withs.push(e),this.getName(this.withs.length-1)):(this.withs[0]=e,(0,br.indent)(`
282
282
  (${e})
283
283
  `))}addUDF(e,n,r){let{sql:i,lastStageName:s}=e.combineStages(!0);if(s===void 0)throw new Error("Internal Error: no stage to combine");i+=n.sqlCreateFunctionCombineLastStage(s,og(r));const o=`${n.udfPrefix}${this.root().udfs.length}`;return i=n.sqlCreateFunction(o,i),this.root().udfs.push(i),o}addPDT(e,n){const r=this.combineStages(!1).sql+this.withs[this.withs.length-1],i="scratch."+e+(0,br.generateHash)(r);return this.root().pdts.push(n.sqlCreateTableAsSelect(i,r)),i}combineStages(e){if(!this.useCTE)return{sql:this.withs[0],lastStageName:this.withs[0]};let n=this.getName(0),r="WITH ",i="";for(let s=0;s<this.withs.length-(e?0:1);s++){const o=this.withs[s];if(n=this.getName(s),o===void 0)throw new Error(`Expected sql WITH to be present for stage ${n}.`);i+=`${r}${n} AS (
284
284
  ${(0,br.indent)(o)})
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/render",
3
- "version": "0.0.152-dev240714165728",
3
+ "version": "0.0.152",
4
4
  "license": "MIT",
5
5
  "main": "dist/module/index.umd.js",
6
6
  "types": "dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "build-types": "tsc --build --declaration --emitDeclarationOnly"
34
34
  },
35
35
  "dependencies": {
36
- "@malloydata/malloy": "^0.0.152-dev240714165728",
36
+ "@malloydata/malloy": "^0.0.152",
37
37
  "@types/luxon": "^2.4.0",
38
38
  "component-register": "^0.8.3",
39
39
  "lodash": "^4.17.20",