@malloydata/render 0.0.152 → 0.0.153-dev240717221349
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.
package/dist/module/index.mjs
CHANGED
|
@@ -4229,7 +4229,11 @@ 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 ?
|
|
4232
|
+
return s ? i ? `-- Simulate a left join
|
|
4233
|
+
CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${n}(value, __row_id_almost_${n})
|
|
4234
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})` : `CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}(value) ` : i ? `-- Simulate a left join
|
|
4235
|
+
CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) WITH ORDINALITY as ${n}_outer(${n}, __row_id_almost_${n})
|
|
4236
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})` : `CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`;
|
|
4233
4237
|
}
|
|
4234
4238
|
}
|
|
4235
4239
|
Kh.PrestoDialect = u1e;
|
package/dist/module/index.umd.js
CHANGED
|
@@ -278,7 +278,11 @@ ${(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
|
|
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?`-- Simulate a left join
|
|
282
|
+
CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${n}(value, __row_id_almost_${n})
|
|
283
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}(value) `:i?`-- Simulate a left join
|
|
284
|
+
CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) WITH ORDINALITY as ${n}_outer(${n}, __row_id_almost_${n})
|
|
285
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) 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
286
|
(${e})
|
|
283
287
|
`))}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
288
|
${(0,Or.indent)(o)})
|
|
@@ -5051,7 +5051,11 @@ 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 ?
|
|
5054
|
+
return s ? i ? `-- Simulate a left join
|
|
5055
|
+
CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${n}(value, __row_id_almost_${n})
|
|
5056
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})` : `CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}(value) ` : i ? `-- Simulate a left join
|
|
5057
|
+
CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) WITH ORDINALITY as ${n}_outer(${n}, __row_id_almost_${n})
|
|
5058
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})` : `CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`;
|
|
5055
5059
|
}
|
|
5056
5060
|
}
|
|
5057
5061
|
Ph.PrestoDialect = vhe;
|
|
@@ -278,7 +278,11 @@ ${(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
|
|
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?`-- Simulate a left join
|
|
282
|
+
CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${n}(value, __row_id_almost_${n})
|
|
283
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}(value) `:i?`-- Simulate a left join
|
|
284
|
+
CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) WITH ORDINALITY as ${n}_outer(${n}, __row_id_almost_${n})
|
|
285
|
+
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) 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
286
|
(${e})
|
|
283
287
|
`))}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
288
|
${(0,br.indent)(o)})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloydata/render",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.153-dev240717221349",
|
|
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.
|
|
36
|
+
"@malloydata/malloy": "^0.0.153-dev240717221349",
|
|
37
37
|
"@types/luxon": "^2.4.0",
|
|
38
38
|
"component-register": "^0.8.3",
|
|
39
39
|
"lodash": "^4.17.20",
|