@malloydata/render 0.0.261-dev250410215229 → 0.0.261-dev250410224545
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
|
@@ -120060,7 +120060,7 @@ ${(0, bW.indent)(r)}
|
|
|
120060
120060
|
case "record": {
|
|
120061
120061
|
const r = [];
|
|
120062
120062
|
for (const i of e.fields)
|
|
120063
|
-
(0, zs.isAtomic)(i) && r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);
|
|
120063
|
+
(0, zs.isAtomic)(i) && r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);
|
|
120064
120064
|
return `ROW(${r.join(",")})`;
|
|
120065
120065
|
}
|
|
120066
120066
|
case "sql native":
|
|
@@ -120069,7 +120069,7 @@ ${(0, bW.indent)(r)}
|
|
|
120069
120069
|
if ((0, zs.isRepeatedRecord)(e)) {
|
|
120070
120070
|
const r = [];
|
|
120071
120071
|
for (const i of e.fields)
|
|
120072
|
-
(0, zs.isAtomic)(i) && r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);
|
|
120072
|
+
(0, zs.isAtomic)(i) && r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);
|
|
120073
120073
|
return `ARRAY<ROW(${r.join(",")})>`;
|
|
120074
120074
|
}
|
|
120075
120075
|
return `ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`;
|
package/dist/module/index.umd.js
CHANGED
|
@@ -1000,7 +1000,7 @@ AS (
|
|
|
1000
1000
|
${(0,rae.indent)(r)}
|
|
1001
1001
|
);
|
|
1002
1002
|
`}sqlCreateFunctionCombineLastStage(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`SELECT ARRAY_AGG(CAST(ROW(${i}) as ROW(${s}))) FROM ${e}
|
|
1003
|
-
`}sqlSelectAliasAsStruct(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`CAST(ROW(${i}) as ROW(${s})`}sqlAlterTimeExpr(e){let r=e.units,i=e.kids.delta.sql;return r==="quarter"&&(r="month",i=`${i}*3`),r==="week"&&(r="day",i=`${i}*7`),e.op==="-"&&(i=`(${i})*-1`),`DATE_ADD('${r}', ${i}, ${e.kids.base.sql})`}sqlCast(e,r){const{op:i,srcTypeDef:s,dstTypeDef:o,dstSQLType:u}=this.sqlCastPrep(r),a=V$(e),l=r.e.sql||"";return i==="timestamp::date"&&a?`CAST((${`CAST(${l} as TIMESTAMP)`}) AT TIME ZONE '${a}' AS DATE)`:i==="date::timestamp"&&a?`CAST(CONCAT(CAST(CAST(${l} AS TIMESTAMP) AS VARCHAR), ' ${a}') AS TIMESTAMP WITH TIME ZONE)`:yo.TD.eq(s,o)?l:`${r.safe?"TRY_CAST":"CAST"}(${l} AS ${u})`}sqlRegexpMatch(e){return`REGEXP_LIKE(${e.kids.expr.sql}, ${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const r={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}},i=e.kids.left,s=e.kids.right;let o=i.sql,u=s.sql;if(r[e.units]){const{use:a,ratio:l}=r[e.units];if(!sJe(a))throw new Error(`Measure in '${a} not implemented`);if(!yo.TD.eq(i.typeDef,s.typeDef))throw new Error("Can't measure difference between different types");yo.TD.isDate(i.typeDef)&&(o=`CAST(${o} AS TIMESTAMP)`,u=`CAST(${u} AS TIMESTAMP)`);let c=`DATE_DIFF('${a}',${o},${u})`;return l!==1&&(c=`FLOOR(CAST(${c} AS DOUBLE)/${l.toString()}.0)`),c}throw new Error(`Measure '${e.units} not implemented`)}sqlSampleTable(e,r){if(r!==void 0){if((0,yo.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,yo.isSamplingRows)(r))throw new Error("Trino doesn't support sampling by rows only percent");if((0,yo.isSamplingPercent)(r))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${r.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,W$.expandOverrideMap)(iJe.TRINO_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,W$.expandBlueprintMap)(sae.TRINO_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){switch(e.type){case"number":return e.numberType==="integer"?"BIGINT":"DOUBLE";case"string":return"VARCHAR";case"record":{const r=[];for(const i of e.fields)(0,yo.isAtomic)(i)&&r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);return`ROW(${r.join(",")})`}case"sql native":return e.rawType||"UNKNOWN-NATIVE";case"array":{if((0,yo.isRepeatedRecord)(e)){const r=[];for(const i of e.fields)(0,yo.isAtomic)(i)&&r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);return`ARRAY<ROW(${r.join(",")})>`}return`ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`}default:return e.type.toUpperCase()}}sqlTypeToMalloyType(e){var r,i,s;const o=(i=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&i!==void 0?i:e;return(s=oJe[o])!==null&&s!==void 0?s:{type:"sql native",rawType:e}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,r){return`CAST(${e} as VARCHAR) || 'x' || CAST(${r} as VARCHAR)`}sqlStringAggDistinct(e,r,i){return`
|
|
1003
|
+
`}sqlSelectAliasAsStruct(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`CAST(ROW(${i}) as ROW(${s})`}sqlAlterTimeExpr(e){let r=e.units,i=e.kids.delta.sql;return r==="quarter"&&(r="month",i=`${i}*3`),r==="week"&&(r="day",i=`${i}*7`),e.op==="-"&&(i=`(${i})*-1`),`DATE_ADD('${r}', ${i}, ${e.kids.base.sql})`}sqlCast(e,r){const{op:i,srcTypeDef:s,dstTypeDef:o,dstSQLType:u}=this.sqlCastPrep(r),a=V$(e),l=r.e.sql||"";return i==="timestamp::date"&&a?`CAST((${`CAST(${l} as TIMESTAMP)`}) AT TIME ZONE '${a}' AS DATE)`:i==="date::timestamp"&&a?`CAST(CONCAT(CAST(CAST(${l} AS TIMESTAMP) AS VARCHAR), ' ${a}') AS TIMESTAMP WITH TIME ZONE)`:yo.TD.eq(s,o)?l:`${r.safe?"TRY_CAST":"CAST"}(${l} AS ${u})`}sqlRegexpMatch(e){return`REGEXP_LIKE(${e.kids.expr.sql}, ${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const r={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}},i=e.kids.left,s=e.kids.right;let o=i.sql,u=s.sql;if(r[e.units]){const{use:a,ratio:l}=r[e.units];if(!sJe(a))throw new Error(`Measure in '${a} not implemented`);if(!yo.TD.eq(i.typeDef,s.typeDef))throw new Error("Can't measure difference between different types");yo.TD.isDate(i.typeDef)&&(o=`CAST(${o} AS TIMESTAMP)`,u=`CAST(${u} AS TIMESTAMP)`);let c=`DATE_DIFF('${a}',${o},${u})`;return l!==1&&(c=`FLOOR(CAST(${c} AS DOUBLE)/${l.toString()}.0)`),c}throw new Error(`Measure '${e.units} not implemented`)}sqlSampleTable(e,r){if(r!==void 0){if((0,yo.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,yo.isSamplingRows)(r))throw new Error("Trino doesn't support sampling by rows only percent");if((0,yo.isSamplingPercent)(r))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${r.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,W$.expandOverrideMap)(iJe.TRINO_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,W$.expandBlueprintMap)(sae.TRINO_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){switch(e.type){case"number":return e.numberType==="integer"?"BIGINT":"DOUBLE";case"string":return"VARCHAR";case"record":{const r=[];for(const i of e.fields)(0,yo.isAtomic)(i)&&r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);return`ROW(${r.join(",")})`}case"sql native":return e.rawType||"UNKNOWN-NATIVE";case"array":{if((0,yo.isRepeatedRecord)(e)){const r=[];for(const i of e.fields)(0,yo.isAtomic)(i)&&r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);return`ARRAY<ROW(${r.join(",")})>`}return`ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`}default:return e.type.toUpperCase()}}sqlTypeToMalloyType(e){var r,i,s;const o=(i=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&i!==void 0?i:e;return(s=oJe[o])!==null&&s!==void 0?s:{type:"sql native",rawType:e}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,r){return`CAST(${e} as VARCHAR) || 'x' || CAST(${r} as VARCHAR)`}sqlStringAggDistinct(e,r,i){return`
|
|
1004
1004
|
ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${r} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${i.length>0?i:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}sqlLiteralTime(e,r){if(yo.TD.isDate(r.typeDef))return`DATE '${r.literal}'`;const i=r.timezone||V$(e);return i?`TIMESTAMP '${r.literal} ${i}'`:`TIMESTAMP '${r.literal}'`}sqlTimeExtractExpr(e,r){const i=iae.timeExtractMap[r.units]||r.units;let s=r.e.sql||"";if(yo.TD.isTimestamp(r.e.typeDef)){const u=V$(e);u&&(s=`at_timezone(${s},'${u}')`)}const o=`EXTRACT(${i} FROM ${s})`;return r.units==="day_of_week"?`mod(${o}+1,7)`:o}sqlLiteralRecord(e){var r,i;const s=[],o=[];for(const u of e.typeDef.fields)if((0,yo.isAtomic)(u)){const a=(r=u.as)!==null&&r!==void 0?r:u.name;s.push((i=e.kids[a].sql)!==null&&i!==void 0?i:"internal-error-record-literal");const l=this.malloyTypeToSQLType(u);o.push(`${a} ${l}`)}return`CAST(ROW(${s.join(",")}) AS ROW(${o.join(",")}))`}}Hp.TrinoDialect=Sc,Sc.dtype="DECIMAL(38,0)";class uJe extends Sc{constructor(){super(...arguments),this.name="presto",this.supportsPipelinesInViews=!1,this.supportsLeftJoinUnnest=!1}sqlGenerateUUID(){return"CAST(UUID() AS VARCHAR)"}sqlUnnestAlias(e,r,i,s,o,u){return o?s?`-- Simulate a left join
|
|
1005
1005
|
CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${r}(value, __row_id_almost_${r})
|
|
1006
1006
|
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${r} END]) as ${r}_ignore(__row_id_from_${r})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${r}(value) `:s?`-- Simulate a left join
|
|
@@ -123873,7 +123873,7 @@ ${(0, nV.indent)(r)}
|
|
|
123873
123873
|
case "record": {
|
|
123874
123874
|
const r = [];
|
|
123875
123875
|
for (const i of e.fields)
|
|
123876
|
-
(0, eo.isAtomic)(i) && r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);
|
|
123876
|
+
(0, eo.isAtomic)(i) && r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);
|
|
123877
123877
|
return `ROW(${r.join(",")})`;
|
|
123878
123878
|
}
|
|
123879
123879
|
case "sql native":
|
|
@@ -123882,7 +123882,7 @@ ${(0, nV.indent)(r)}
|
|
|
123882
123882
|
if ((0, eo.isRepeatedRecord)(e)) {
|
|
123883
123883
|
const r = [];
|
|
123884
123884
|
for (const i of e.fields)
|
|
123885
|
-
(0, eo.isAtomic)(i) && r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);
|
|
123885
|
+
(0, eo.isAtomic)(i) && r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);
|
|
123886
123886
|
return `ARRAY<ROW(${r.join(",")})>`;
|
|
123887
123887
|
}
|
|
123888
123888
|
return `ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`;
|
|
@@ -1395,7 +1395,7 @@ AS (
|
|
|
1395
1395
|
${(0,ile.indent)(r)}
|
|
1396
1396
|
);
|
|
1397
1397
|
`}sqlCreateFunctionCombineLastStage(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`SELECT ARRAY_AGG(CAST(ROW(${i}) as ROW(${s}))) FROM ${e}
|
|
1398
|
-
`}sqlSelectAliasAsStruct(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`CAST(ROW(${i}) as ROW(${s})`}sqlAlterTimeExpr(e){let r=e.units,i=e.kids.delta.sql;return r==="quarter"&&(r="month",i=`${i}*3`),r==="week"&&(r="day",i=`${i}*7`),e.op==="-"&&(i=`(${i})*-1`),`DATE_ADD('${r}', ${i}, ${e.kids.base.sql})`}sqlCast(e,r){const{op:i,srcTypeDef:s,dstTypeDef:o,dstSQLType:u}=this.sqlCastPrep(r),a=hB(e),l=r.e.sql||"";return i==="timestamp::date"&&a?`CAST((${`CAST(${l} as TIMESTAMP)`}) AT TIME ZONE '${a}' AS DATE)`:i==="date::timestamp"&&a?`CAST(CONCAT(CAST(CAST(${l} AS TIMESTAMP) AS VARCHAR), ' ${a}') AS TIMESTAMP WITH TIME ZONE)`:To.TD.eq(s,o)?l:`${r.safe?"TRY_CAST":"CAST"}(${l} AS ${u})`}sqlRegexpMatch(e){return`REGEXP_LIKE(${e.kids.expr.sql}, ${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const r={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}},i=e.kids.left,s=e.kids.right;let o=i.sql,u=s.sql;if(r[e.units]){const{use:a,ratio:l}=r[e.units];if(!JZe(a))throw new Error(`Measure in '${a} not implemented`);if(!To.TD.eq(i.typeDef,s.typeDef))throw new Error("Can't measure difference between different types");To.TD.isDate(i.typeDef)&&(o=`CAST(${o} AS TIMESTAMP)`,u=`CAST(${u} AS TIMESTAMP)`);let c=`DATE_DIFF('${a}',${o},${u})`;return l!==1&&(c=`FLOOR(CAST(${c} AS DOUBLE)/${l.toString()}.0)`),c}throw new Error(`Measure '${e.units} not implemented`)}sqlSampleTable(e,r){if(r!==void 0){if((0,To.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,To.isSamplingRows)(r))throw new Error("Trino doesn't support sampling by rows only percent");if((0,To.isSamplingPercent)(r))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${r.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,dB.expandOverrideMap)(KZe.TRINO_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,dB.expandBlueprintMap)(ole.TRINO_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){switch(e.type){case"number":return e.numberType==="integer"?"BIGINT":"DOUBLE";case"string":return"VARCHAR";case"record":{const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);return`ROW(${r.join(",")})`}case"sql native":return e.rawType||"UNKNOWN-NATIVE";case"array":{if((0,To.isRepeatedRecord)(e)){const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);return`ARRAY<ROW(${r.join(",")})>`}return`ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`}default:return e.type.toUpperCase()}}sqlTypeToMalloyType(e){var r,i,s;const o=(i=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&i!==void 0?i:e;return(s=XZe[o])!==null&&s!==void 0?s:{type:"sql native",rawType:e}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,r){return`CAST(${e} as VARCHAR) || 'x' || CAST(${r} as VARCHAR)`}sqlStringAggDistinct(e,r,i){return`
|
|
1398
|
+
`}sqlSelectAliasAsStruct(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`CAST(ROW(${i}) as ROW(${s})`}sqlAlterTimeExpr(e){let r=e.units,i=e.kids.delta.sql;return r==="quarter"&&(r="month",i=`${i}*3`),r==="week"&&(r="day",i=`${i}*7`),e.op==="-"&&(i=`(${i})*-1`),`DATE_ADD('${r}', ${i}, ${e.kids.base.sql})`}sqlCast(e,r){const{op:i,srcTypeDef:s,dstTypeDef:o,dstSQLType:u}=this.sqlCastPrep(r),a=hB(e),l=r.e.sql||"";return i==="timestamp::date"&&a?`CAST((${`CAST(${l} as TIMESTAMP)`}) AT TIME ZONE '${a}' AS DATE)`:i==="date::timestamp"&&a?`CAST(CONCAT(CAST(CAST(${l} AS TIMESTAMP) AS VARCHAR), ' ${a}') AS TIMESTAMP WITH TIME ZONE)`:To.TD.eq(s,o)?l:`${r.safe?"TRY_CAST":"CAST"}(${l} AS ${u})`}sqlRegexpMatch(e){return`REGEXP_LIKE(${e.kids.expr.sql}, ${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const r={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}},i=e.kids.left,s=e.kids.right;let o=i.sql,u=s.sql;if(r[e.units]){const{use:a,ratio:l}=r[e.units];if(!JZe(a))throw new Error(`Measure in '${a} not implemented`);if(!To.TD.eq(i.typeDef,s.typeDef))throw new Error("Can't measure difference between different types");To.TD.isDate(i.typeDef)&&(o=`CAST(${o} AS TIMESTAMP)`,u=`CAST(${u} AS TIMESTAMP)`);let c=`DATE_DIFF('${a}',${o},${u})`;return l!==1&&(c=`FLOOR(CAST(${c} AS DOUBLE)/${l.toString()}.0)`),c}throw new Error(`Measure '${e.units} not implemented`)}sqlSampleTable(e,r){if(r!==void 0){if((0,To.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,To.isSamplingRows)(r))throw new Error("Trino doesn't support sampling by rows only percent");if((0,To.isSamplingPercent)(r))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${r.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,dB.expandOverrideMap)(KZe.TRINO_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,dB.expandBlueprintMap)(ole.TRINO_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){switch(e.type){case"number":return e.numberType==="integer"?"BIGINT":"DOUBLE";case"string":return"VARCHAR";case"record":{const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);return`ROW(${r.join(",")})`}case"sql native":return e.rawType||"UNKNOWN-NATIVE";case"array":{if((0,To.isRepeatedRecord)(e)){const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);return`ARRAY<ROW(${r.join(",")})>`}return`ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`}default:return e.type.toUpperCase()}}sqlTypeToMalloyType(e){var r,i,s;const o=(i=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&i!==void 0?i:e;return(s=XZe[o])!==null&&s!==void 0?s:{type:"sql native",rawType:e}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,r){return`CAST(${e} as VARCHAR) || 'x' || CAST(${r} as VARCHAR)`}sqlStringAggDistinct(e,r,i){return`
|
|
1399
1399
|
ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${r} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${i.length>0?i:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}sqlLiteralTime(e,r){if(To.TD.isDate(r.typeDef))return`DATE '${r.literal}'`;const i=r.timezone||hB(e);return i?`TIMESTAMP '${r.literal} ${i}'`:`TIMESTAMP '${r.literal}'`}sqlTimeExtractExpr(e,r){const i=sle.timeExtractMap[r.units]||r.units;let s=r.e.sql||"";if(To.TD.isTimestamp(r.e.typeDef)){const u=hB(e);u&&(s=`at_timezone(${s},'${u}')`)}const o=`EXTRACT(${i} FROM ${s})`;return r.units==="day_of_week"?`mod(${o}+1,7)`:o}sqlLiteralRecord(e){var r,i;const s=[],o=[];for(const u of e.typeDef.fields)if((0,To.isAtomic)(u)){const a=(r=u.as)!==null&&r!==void 0?r:u.name;s.push((i=e.kids[a].sql)!==null&&i!==void 0?i:"internal-error-record-literal");const l=this.malloyTypeToSQLType(u);o.push(`${a} ${l}`)}return`CAST(ROW(${s.join(",")}) AS ROW(${o.join(",")}))`}}A2.TrinoDialect=zc,zc.dtype="DECIMAL(38,0)";class ZZe extends zc{constructor(){super(...arguments),this.name="presto",this.supportsPipelinesInViews=!1,this.supportsLeftJoinUnnest=!1}sqlGenerateUUID(){return"CAST(UUID() AS VARCHAR)"}sqlUnnestAlias(e,r,i,s,o,u){return o?s?`-- Simulate a left join
|
|
1400
1400
|
CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${r}(value, __row_id_almost_${r})
|
|
1401
1401
|
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${r} END]) as ${r}_ignore(__row_id_from_${r})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${r}(value) `:s?`-- Simulate a left join
|
|
@@ -123873,7 +123873,7 @@ ${(0, nV.indent)(r)}
|
|
|
123873
123873
|
case "record": {
|
|
123874
123874
|
const r = [];
|
|
123875
123875
|
for (const i of e.fields)
|
|
123876
|
-
(0, eo.isAtomic)(i) && r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);
|
|
123876
|
+
(0, eo.isAtomic)(i) && r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);
|
|
123877
123877
|
return `ROW(${r.join(",")})`;
|
|
123878
123878
|
}
|
|
123879
123879
|
case "sql native":
|
|
@@ -123882,7 +123882,7 @@ ${(0, nV.indent)(r)}
|
|
|
123882
123882
|
if ((0, eo.isRepeatedRecord)(e)) {
|
|
123883
123883
|
const r = [];
|
|
123884
123884
|
for (const i of e.fields)
|
|
123885
|
-
(0, eo.isAtomic)(i) && r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);
|
|
123885
|
+
(0, eo.isAtomic)(i) && r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);
|
|
123886
123886
|
return `ARRAY<ROW(${r.join(",")})>`;
|
|
123887
123887
|
}
|
|
123888
123888
|
return `ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`;
|
|
@@ -1395,7 +1395,7 @@ AS (
|
|
|
1395
1395
|
${(0,rle.indent)(r)}
|
|
1396
1396
|
);
|
|
1397
1397
|
`}sqlCreateFunctionCombineLastStage(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`SELECT ARRAY_AGG(CAST(ROW(${i}) as ROW(${s}))) FROM ${e}
|
|
1398
|
-
`}sqlSelectAliasAsStruct(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`CAST(ROW(${i}) as ROW(${s})`}sqlAlterTimeExpr(e){let r=e.units,i=e.kids.delta.sql;return r==="quarter"&&(r="month",i=`${i}*3`),r==="week"&&(r="day",i=`${i}*7`),e.op==="-"&&(i=`(${i})*-1`),`DATE_ADD('${r}', ${i}, ${e.kids.base.sql})`}sqlCast(e,r){const{op:i,srcTypeDef:s,dstTypeDef:o,dstSQLType:u}=this.sqlCastPrep(r),a=dB(e),l=r.e.sql||"";return i==="timestamp::date"&&a?`CAST((${`CAST(${l} as TIMESTAMP)`}) AT TIME ZONE '${a}' AS DATE)`:i==="date::timestamp"&&a?`CAST(CONCAT(CAST(CAST(${l} AS TIMESTAMP) AS VARCHAR), ' ${a}') AS TIMESTAMP WITH TIME ZONE)`:To.TD.eq(s,o)?l:`${r.safe?"TRY_CAST":"CAST"}(${l} AS ${u})`}sqlRegexpMatch(e){return`REGEXP_LIKE(${e.kids.expr.sql}, ${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const r={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}},i=e.kids.left,s=e.kids.right;let o=i.sql,u=s.sql;if(r[e.units]){const{use:a,ratio:l}=r[e.units];if(!JZe(a))throw new Error(`Measure in '${a} not implemented`);if(!To.TD.eq(i.typeDef,s.typeDef))throw new Error("Can't measure difference between different types");To.TD.isDate(i.typeDef)&&(o=`CAST(${o} AS TIMESTAMP)`,u=`CAST(${u} AS TIMESTAMP)`);let c=`DATE_DIFF('${a}',${o},${u})`;return l!==1&&(c=`FLOOR(CAST(${c} AS DOUBLE)/${l.toString()}.0)`),c}throw new Error(`Measure '${e.units} not implemented`)}sqlSampleTable(e,r){if(r!==void 0){if((0,To.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,To.isSamplingRows)(r))throw new Error("Trino doesn't support sampling by rows only percent");if((0,To.isSamplingPercent)(r))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${r.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,xB.expandOverrideMap)(KZe.TRINO_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,xB.expandBlueprintMap)(sle.TRINO_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){switch(e.type){case"number":return e.numberType==="integer"?"BIGINT":"DOUBLE";case"string":return"VARCHAR";case"record":{const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);return`ROW(${r.join(",")})`}case"sql native":return e.rawType||"UNKNOWN-NATIVE";case"array":{if((0,To.isRepeatedRecord)(e)){const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${i.name} ${this.malloyTypeToSQLType(i)}`);return`ARRAY<ROW(${r.join(",")})>`}return`ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`}default:return e.type.toUpperCase()}}sqlTypeToMalloyType(e){var r,i,s;const o=(i=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&i!==void 0?i:e;return(s=XZe[o])!==null&&s!==void 0?s:{type:"sql native",rawType:e}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,r){return`CAST(${e} as VARCHAR) || 'x' || CAST(${r} as VARCHAR)`}sqlStringAggDistinct(e,r,i){return`
|
|
1398
|
+
`}sqlSelectAliasAsStruct(e,r){const i=r.map(o=>o.sqlExpression).join(", "),s=this.buildTypeExpression(r);return`CAST(ROW(${i}) as ROW(${s})`}sqlAlterTimeExpr(e){let r=e.units,i=e.kids.delta.sql;return r==="quarter"&&(r="month",i=`${i}*3`),r==="week"&&(r="day",i=`${i}*7`),e.op==="-"&&(i=`(${i})*-1`),`DATE_ADD('${r}', ${i}, ${e.kids.base.sql})`}sqlCast(e,r){const{op:i,srcTypeDef:s,dstTypeDef:o,dstSQLType:u}=this.sqlCastPrep(r),a=dB(e),l=r.e.sql||"";return i==="timestamp::date"&&a?`CAST((${`CAST(${l} as TIMESTAMP)`}) AT TIME ZONE '${a}' AS DATE)`:i==="date::timestamp"&&a?`CAST(CONCAT(CAST(CAST(${l} AS TIMESTAMP) AS VARCHAR), ' ${a}') AS TIMESTAMP WITH TIME ZONE)`:To.TD.eq(s,o)?l:`${r.safe?"TRY_CAST":"CAST"}(${l} AS ${u})`}sqlRegexpMatch(e){return`REGEXP_LIKE(${e.kids.expr.sql}, ${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const r={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}},i=e.kids.left,s=e.kids.right;let o=i.sql,u=s.sql;if(r[e.units]){const{use:a,ratio:l}=r[e.units];if(!JZe(a))throw new Error(`Measure in '${a} not implemented`);if(!To.TD.eq(i.typeDef,s.typeDef))throw new Error("Can't measure difference between different types");To.TD.isDate(i.typeDef)&&(o=`CAST(${o} AS TIMESTAMP)`,u=`CAST(${u} AS TIMESTAMP)`);let c=`DATE_DIFF('${a}',${o},${u})`;return l!==1&&(c=`FLOOR(CAST(${c} AS DOUBLE)/${l.toString()}.0)`),c}throw new Error(`Measure '${e.units} not implemented`)}sqlSampleTable(e,r){if(r!==void 0){if((0,To.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,To.isSamplingRows)(r))throw new Error("Trino doesn't support sampling by rows only percent");if((0,To.isSamplingPercent)(r))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${r.percent}))`}return e}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,xB.expandOverrideMap)(KZe.TRINO_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,xB.expandBlueprintMap)(sle.TRINO_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){switch(e.type){case"number":return e.numberType==="integer"?"BIGINT":"DOUBLE";case"string":return"VARCHAR";case"record":{const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);return`ROW(${r.join(",")})`}case"sql native":return e.rawType||"UNKNOWN-NATIVE";case"array":{if((0,To.isRepeatedRecord)(e)){const r=[];for(const i of e.fields)(0,To.isAtomic)(i)&&r.push(`${this.sqlMaybeQuoteIdentifier(i.name)} ${this.malloyTypeToSQLType(i)}`);return`ARRAY<ROW(${r.join(",")})>`}return`ARRAY<${this.malloyTypeToSQLType(e.elementTypeDef)}>`}default:return e.type.toUpperCase()}}sqlTypeToMalloyType(e){var r,i,s;const o=(i=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&i!==void 0?i:e;return(s=XZe[o])!==null&&s!==void 0?s:{type:"sql native",rawType:e}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}sqlMakeUnnestKey(e,r){return`CAST(${e} as VARCHAR) || 'x' || CAST(${r} as VARCHAR)`}sqlStringAggDistinct(e,r,i){return`
|
|
1399
1399
|
ARRAY_JOIN(TRANSFORM(ARRAY_AGG(DISTINCT ARRAY[CAST(${r} AS VARCHAR),CAST(${e} as VARCHAR)]), x -> x[1]),${i.length>0?i:"','"})`}validateTypeName(e){return e.match(/^[A-Za-z\s(),<>0-9]*$/)!==null}sqlLiteralTime(e,r){if(To.TD.isDate(r.typeDef))return`DATE '${r.literal}'`;const i=r.timezone||dB(e);return i?`TIMESTAMP '${r.literal} ${i}'`:`TIMESTAMP '${r.literal}'`}sqlTimeExtractExpr(e,r){const i=ile.timeExtractMap[r.units]||r.units;let s=r.e.sql||"";if(To.TD.isTimestamp(r.e.typeDef)){const u=dB(e);u&&(s=`at_timezone(${s},'${u}')`)}const o=`EXTRACT(${i} FROM ${s})`;return r.units==="day_of_week"?`mod(${o}+1,7)`:o}sqlLiteralRecord(e){var r,i;const s=[],o=[];for(const u of e.typeDef.fields)if((0,To.isAtomic)(u)){const a=(r=u.as)!==null&&r!==void 0?r:u.name;s.push((i=e.kids[a].sql)!==null&&i!==void 0?i:"internal-error-record-literal");const l=this.malloyTypeToSQLType(u);o.push(`${a} ${l}`)}return`CAST(ROW(${s.join(",")}) AS ROW(${o.join(",")}))`}}A2.TrinoDialect=zc,zc.dtype="DECIMAL(38,0)";class ZZe extends zc{constructor(){super(...arguments),this.name="presto",this.supportsPipelinesInViews=!1,this.supportsLeftJoinUnnest=!1}sqlGenerateUUID(){return"CAST(UUID() AS VARCHAR)"}sqlUnnestAlias(e,r,i,s,o,u){return o?s?`-- Simulate a left join
|
|
1400
1400
|
CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${r}(value, __row_id_almost_${r})
|
|
1401
1401
|
CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${r} END]) as ${r}_ignore(__row_id_from_${r})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${r}(value) `:s?`-- Simulate a left join
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloydata/render",
|
|
3
|
-
"version": "0.0.261-
|
|
3
|
+
"version": "0.0.261-dev250410224545",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/module/index.umd.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"generate-flow": "ts-node ../../scripts/gen-flow.ts"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@malloydata/malloy": "^0.0.261-
|
|
45
|
-
"@malloydata/malloy-interfaces": "^0.0.261-
|
|
46
|
-
"@malloydata/malloy-tag": "^0.0.261-
|
|
44
|
+
"@malloydata/malloy": "^0.0.261-dev250410224545",
|
|
45
|
+
"@malloydata/malloy-interfaces": "^0.0.261-dev250410224545",
|
|
46
|
+
"@malloydata/malloy-tag": "^0.0.261-dev250410224545",
|
|
47
47
|
"@tanstack/solid-virtual": "^3.10.4",
|
|
48
48
|
"component-register": "^0.8.6",
|
|
49
49
|
"lodash": "^4.17.20",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"vega-lite": "^5.2.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@malloydata/db-duckdb": "^0.0.261-
|
|
59
|
+
"@malloydata/db-duckdb": "^0.0.261-dev250410224545",
|
|
60
60
|
"@storybook/addon-essentials": "^8.5.8",
|
|
61
61
|
"@storybook/addon-interactions": "^8.5.8",
|
|
62
62
|
"@storybook/addon-links": "^8.5.8",
|