@malloydata/render 0.0.234-dev250204162601 → 0.0.234

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.
@@ -3276,7 +3276,7 @@ class Dce extends O2.Dialect {
3276
3276
  return `(${n} + ${r})`;
3277
3277
  }
3278
3278
  sqlSumDistinct(e, n, r) {
3279
- const i = this.sqlSumDistinctHashedKey(e), s = 1e8, o = `(COALESCE(${n},0)*${s})`, u = `(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;
3279
+ const i = this.sqlSumDistinctHashedKey(e), s = 1e8, o = `(CAST (COALESCE(${n},0)*${s} as INT))`, u = `(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;
3280
3280
  if (r === "SUM")
3281
3281
  return u;
3282
3282
  if (r === "AVG")
@@ -58,7 +58,7 @@ ${X$}
58
58
  SELECT UNNEST(list(distinct {key:${e}, ${n.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
59
59
  )
60
60
  )`}sqlSampleTable(e,n){if(n!==void 0){if((0,Tx.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Tx.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,Tx.isSamplingPercent)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,K$.expandOverrideMap)(_ce.DUCKDB_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,K$.expandBlueprintMap)(Ace.DUCKDB_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}parseDuckDBType(e){const n=new Cce(e);try{return n.typeDef()}catch(r){if(r instanceof J$.TinyParseError)return{type:"sql native",rawType:e};throw r}}sqlTypeToMalloyType(e){var n,r,i;const s=e.replace(/^DECIMAL\(\d+,\d+\)/g,"DECIMAL"),o=(r=(n=s.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:s;return(i=DT[o.toUpperCase()])!==null&&i!==void 0?i:{type:"sql native",rawType:e.toLowerCase()}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}sqlAlterTimeExpr(e){let n=e.units,r=e.kids.delta.sql;n==="quarter"?(n="month",r=`${r}*3`):n==="week"&&(n="day",r=`${r}*7`);const i=`INTERVAL (${r}) ${n}`;return`${e.kids.base.sql} ${e.op} ${i}`}sqlRegexpMatch(e){return`REGEXP_MATCHES(${e.kids.expr.sql},${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const n=e.kids.left,r=e.kids.right;let i=n.sql||"",s=r.sql||"";return(0,yce.inDays)(e.units)||(Tx.TD.isDate(n.typeDef)&&(i=`${i}::TIMESTAMP`),Tx.TD.isDate(r.typeDef)&&(s=`${s}::TIMESTAMP`)),`DATE_SUB('${e.units}', ${i}, ${s})`}sqlLiteralRecord(e){return"{"+Object.entries(e.kids).map(([r,i])=>`${this.sqlMaybeQuoteIdentifier(r)}:${i.sql}`).join(",")+"}"}}Ay.DuckDBDialect=vce;class Cce extends J$.TinyParser{constructor(e){super(e,{space:/^\s+/,qsingle:/^'([^']|'')*'/,qdouble:/^"([^"]|"")*"/,size:/^\(\d+\)/,precision:/^\(\d+,\d+\)/,arrayOf:/^\[]/,char:/^[,:[\]()-]/,id:/^\w+/})}unquoteName(e){return e.type==="qsingle"?e.text.replace("''",""):e.type==="qdouble"?e.text.replace('""',""):e.text}sqlID(e){return e.text.toUpperCase()}typeDef(){const e=this.next("id"),n=this.sqlID(e);let r;if(n==="VARCHAR"&&this.peek().type==="size"&&this.next(),(n==="DECIMAL"||n==="NUMERIC")&&this.peek().type==="precision")this.next(),r={type:"number",numberType:"float"};else if(n==="TIMESTAMP")this.peek().text==="WITH"&&this.nextText("WITH","TIME","ZONE"),r={type:"timestamp"};else if(DT[n])r=DT[n];else if(n==="STRUCT")for(this.next("("),r={type:"record",fields:[]};;){const i=this.next();if(i.type==="qsingle"||i.type==="qdouble"||i.type==="id"){const s=this.typeDef();r.fields.push((0,Tx.mkFieldDef)(s,this.unquoteName(i)))}else{if(i.type!==")")throw this.parseError("Expected identifier or ) to end STRUCT");break}this.peek().type===","&&this.next()}else if(e.type==="id"){let i=e.cursor+e.text.length;this.peek().type==="precision"&&this.next(),this.peek().type==="eof"&&(i=this.input.length),r={type:"sql native",rawType:this.input.slice(e.cursor,i)}}else throw this.parseError("Could not understand type");for(;this.peek().type==="arrayOf";)this.next(),r.type==="record"?r={type:"array",elementTypeDef:{type:"record_element"},fields:r.fields}:r={type:"array",elementTypeDef:r};return r}}(function(t){var e=T&&T.__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=T&&T.__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(Ay,t)})(RT);var NT={},Cy={},Sy={};Object.defineProperty(Sy,"__esModule",{value:!0}),Sy.SNOWFLAKE_DIALECT_FUNCTIONS=void 0;const Cs=et,Sce={generic:"T"},by={node:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"},wT={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{expr:(0,Cs.sql)`LISTAGG(${(0,Cs.arg)("value")}, ',')${by}`}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{expr:(0,Cs.sql)`LISTAGG(${(0,Cs.arg)("value")}, ${(0,Cs.arg)("separator")})${by}`}}},bce={default_separator:{...wT.default_separator,isSymmetric:!0,impl:{expr:(0,Cs.sql)`LISTAGG(DISTINCT ${(0,Cs.arg)("value")}, ',')${by}`}},with_separator:{...wT.with_separator,isSymmetric:!0,impl:{expr:(0,Cs.sql)`LISTAGG(DISTINCT ${(0,Cs.arg)("value")}, ${(0,Cs.arg)("separator")})${by}`}}};Sy.SNOWFLAKE_DIALECT_FUNCTIONS={string_agg:wT,string_agg_distinct:bce,hll_accumulate:{default:{takes:{value:{dimension:Sce}},returns:{measure:{sql_native:"hyperloglog"}},generic:{T:["string","number"]},isSymmetric:!0,impl:{function:"hll_accumulate"}}},hll_combine:{takes:{value:{sql_native:"hyperloglog"}},returns:{measure:{sql_native:"hyperloglog"}},impl:{function:"hll_combine"},isSymmetric:!0},hll_estimate:{takes:{value:{sql_native:"hyperloglog"}},returns:{dimension:"number"},impl:{function:"hll_estimate"}},hll_export:{takes:{value:{sql_native:"hyperloglog"}},returns:{dimension:{sql_native:"bytes"}},impl:{function:"hll_export"}},hll_import:{takes:{value:{sql_native:"bytes"}},returns:{dimension:{sql_native:"hyperloglog"}},impl:{function:"hll_import"}},...(0,Cs.def)("repeat",{str:"string",n:"number"},"string"),...(0,Cs.def)("reverse",{str:"string"},"string")};var Ty={};Object.defineProperty(Ty,"__esModule",{value:!0}),Ty.SNOWFLAKE_MALLOY_STANDARD_OVERLOADS=void 0,Ty.SNOWFLAKE_MALLOY_STANDARD_OVERLOADS={chr:{sql:"COALESCE(CHR(${value}), '')"},div:{sql:"CASE WHEN DIV0(${dividend}, ${divisor}) < 0 THEN CEIL(DIV0(${dividend}, ${divisor})) ELSE FLOOR(DIV0(${dividend}, ${divisor})) END"},is_inf:{sql:"COALESCE(${value} = 'inf'::FLOAT OR ${value} = '-inf'::FLOAT, false)"},is_nan:{sql:"COALESCE(${value} = 'NAN'::FLOAT, false)"},length:{function:"LENGTH"},byte_length:{sql:"CEIL(BIT_LENGTH(${value}) / 8)"},log:{sql:"LOG(${base}, ${value})"},rand:{sql:"UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())"},regexp_extract:{sql:"REGEXP_SUBSTR(${value}, ${pattern}, 1, 1, 'e')"},starts_with:{sql:"COALESCE(STARTSWITH(${value}, ${prefix}), false)"},ends_with:{sql:"COALESCE(ENDSWITH(${value}, ${suffix}), false)"},strpos:{sql:"POSITION(${search_string}, ${test_string})"},trunc:{to_integer:{sql:"CASE WHEN ${value} < 0 THEN CEIL(${value}) ELSE FLOOR(${value}) END"},to_precision:{sql:"CASE WHEN ${value} < 0 THEN CEIL(${value} * POW(10, ${precision})) / POW(10, ${precision}) ELSE FLOOR(${value} * POW(10, ${precision})) / POW(10, ${precision}) END"}}},Object.defineProperty(Cy,"__esModule",{value:!0}),Cy.SnowflakeDialect=void 0;const Tce=Dt,zi=We,Z$=El,N2=gl,Rce=Sy,Oce=Ty,Dce={day_of_week:"dayofweek",day_of_year:"dayofyear"},Nce={varchar:{type:"string"},text:{type:"string"},string:{type:"string"},char:{type:"string"},character:{type:"string"},nvarchar:{type:"string"},nvarchar2:{type:"string"},"char varying":{type:"string"},"nchar varying":{type:"string"},number:{type:"number",numberType:"integer"},numeric:{type:"number",numberType:"integer"},decimal:{type:"number",numberType:"integer"},dec:{type:"number",numberType:"integer"},integer:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},smallint:{type:"number",numberType:"integer"},tinyint:{type:"number",numberType:"integer"},byteint:{type:"number",numberType:"integer"},float:{type:"number",numberType:"float"},float4:{type:"number",numberType:"float"},float8:{type:"number",numberType:"float"},double:{type:"number",numberType:"float"},"double precision":{type:"number",numberType:"float"},real:{type:"number",numberType:"float"},boolean:{type:"boolean"},date:{type:"date"},timestamp:{type:"timestamp"},timestampntz:{type:"timestamp"},timestamp_ntz:{type:"timestamp"},"timestamp without time zone":{type:"timestamp"},timestamptz:{type:"timestamp"},timestamp_tz:{type:"timestamp"},"timestamp with time zone":{type:"timestamp"}};class wce extends N2.Dialect{constructor(){super(...arguments),this.name="snowflake",this.experimental=!1,this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!0,this.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.supportsHyperLogLog=!0,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!1,this.supportsComplexFilteredSources=!1}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e+1}))))`}sqlAnyValue(e,n){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${n} END) WITHIN GROUP (ORDER BY ${n} ASC NULLS LAST))[0]`}mapFields(e){return e.map(n=>`
61
- ${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){const u=this.sqlMaybeQuoteIdentifier(n);return s?`LEFT JOIN lateral flatten(input => ${e}) as ${u}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${u}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r})`}sqlSumDistinct(e,n,r){const i=this.sqlSumDistinctHashedKey(e),s=1e8,o=`(COALESCE(${n},0)*${s})`,u=`(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;if(r==="SUM")return u;if(r==="AVG")return`(${u})/NULLIF(COUNT(DISTINCT CASE WHEN ${n} IS NOT NULL THEN ${e} END),0)`;throw new Error(`Unknown Symmetric Aggregate function ${r}`)}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i){const s=this.sqlMaybeQuoteIdentifier(r);if(r==="__row_id")return`"${e}".INDEX::varchar`;if(n.startsWith("array")){let o=`"${e}".value`;switch(n==="array[record]"&&(o+=`:${s}`),i){case"record":case"array":i="VARIANT";break;case"string":i="VARCHAR";break;case"number":i="DOUBLE";break;case"struct":throw new Error("NOT STRUCT PLEASE")}return`${o}::${i}`}else if(n==="record")return`${e}:${s}`;return`${e}.${s}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return'"'+e.replace(/"/g,'""')+'"'}sqlCreateTableAsSelect(e,n){return`
61
+ ${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){const u=this.sqlMaybeQuoteIdentifier(n);return s?`LEFT JOIN lateral flatten(input => ${e}) as ${u}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${u}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r})`}sqlSumDistinct(e,n,r){const i=this.sqlSumDistinctHashedKey(e),s=1e8,o=`(CAST (COALESCE(${n},0)*${s} as INT))`,u=`(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;if(r==="SUM")return u;if(r==="AVG")return`(${u})/NULLIF(COUNT(DISTINCT CASE WHEN ${n} IS NOT NULL THEN ${e} END),0)`;throw new Error(`Unknown Symmetric Aggregate function ${r}`)}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i){const s=this.sqlMaybeQuoteIdentifier(r);if(r==="__row_id")return`"${e}".INDEX::varchar`;if(n.startsWith("array")){let o=`"${e}".value`;switch(n==="array[record]"&&(o+=`:${s}`),i){case"record":case"array":i="VARIANT";break;case"string":i="VARCHAR";break;case"number":i="DOUBLE";break;case"struct":throw new Error("NOT STRUCT PLEASE")}return`${o}::${i}`}else if(n==="record")return`${e}:${s}`;return`${e}.${s}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return'"'+e.replace(/"/g,'""')+'"'}sqlCreateTableAsSelect(e,n){return`
62
62
  CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
63
63
  AS (
64
64
  ${(0,Tce.indent)(n)}
@@ -4193,7 +4193,7 @@ class bxe extends fp.Dialect {
4193
4193
  return `(${n} + ${r})`;
4194
4194
  }
4195
4195
  sqlSumDistinct(e, n, r) {
4196
- const i = this.sqlSumDistinctHashedKey(e), s = 1e8, o = `(COALESCE(${n},0)*${s})`, u = `(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;
4196
+ const i = this.sqlSumDistinctHashedKey(e), s = 1e8, o = `(CAST (COALESCE(${n},0)*${s} as INT))`, u = `(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;
4197
4197
  if (r === "SUM")
4198
4198
  return u;
4199
4199
  if (r === "AVG")
@@ -58,7 +58,7 @@ ${Wk}
58
58
  SELECT UNNEST(list(distinct {key:${e}, ${n.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
59
59
  )
60
60
  )`}sqlSampleTable(e,n){if(n!==void 0){if((0,rd.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,rd.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,rd.isSamplingPercent)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,Qk.expandOverrideMap)(hxe.DUCKDB_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,Qk.expandBlueprintMap)(dxe.DUCKDB_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}parseDuckDBType(e){const n=new gxe(e);try{return n.typeDef()}catch(r){if(r instanceof Gk.TinyParseError)return{type:"sql native",rawType:e};throw r}}sqlTypeToMalloyType(e){var n,r,i;const s=e.replace(/^DECIMAL\(\d+,\d+\)/g,"DECIMAL"),o=(r=(n=s.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:s;return(i=S6[o.toUpperCase()])!==null&&i!==void 0?i:{type:"sql native",rawType:e.toLowerCase()}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}sqlAlterTimeExpr(e){let n=e.units,r=e.kids.delta.sql;n==="quarter"?(n="month",r=`${r}*3`):n==="week"&&(n="day",r=`${r}*7`);const i=`INTERVAL (${r}) ${n}`;return`${e.kids.base.sql} ${e.op} ${i}`}sqlRegexpMatch(e){return`REGEXP_MATCHES(${e.kids.expr.sql},${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const n=e.kids.left,r=e.kids.right;let i=n.sql||"",s=r.sql||"";return(0,fxe.inDays)(e.units)||(rd.TD.isDate(n.typeDef)&&(i=`${i}::TIMESTAMP`),rd.TD.isDate(r.typeDef)&&(s=`${s}::TIMESTAMP`)),`DATE_SUB('${e.units}', ${i}, ${s})`}sqlLiteralRecord(e){return"{"+Object.entries(e.kids).map(([r,i])=>`${this.sqlMaybeQuoteIdentifier(r)}:${i.sql}`).join(",")+"}"}}mE.DuckDBDialect=pxe;class gxe extends Gk.TinyParser{constructor(e){super(e,{space:/^\s+/,qsingle:/^'([^']|'')*'/,qdouble:/^"([^"]|"")*"/,size:/^\(\d+\)/,precision:/^\(\d+,\d+\)/,arrayOf:/^\[]/,char:/^[,:[\]()-]/,id:/^\w+/})}unquoteName(e){return e.type==="qsingle"?e.text.replace("''",""):e.type==="qdouble"?e.text.replace('""',""):e.text}sqlID(e){return e.text.toUpperCase()}typeDef(){const e=this.next("id"),n=this.sqlID(e);let r;if(n==="VARCHAR"&&this.peek().type==="size"&&this.next(),(n==="DECIMAL"||n==="NUMERIC")&&this.peek().type==="precision")this.next(),r={type:"number",numberType:"float"};else if(n==="TIMESTAMP")this.peek().text==="WITH"&&this.nextText("WITH","TIME","ZONE"),r={type:"timestamp"};else if(S6[n])r=S6[n];else if(n==="STRUCT")for(this.next("("),r={type:"record",fields:[]};;){const i=this.next();if(i.type==="qsingle"||i.type==="qdouble"||i.type==="id"){const s=this.typeDef();r.fields.push((0,rd.mkFieldDef)(s,this.unquoteName(i)))}else{if(i.type!==")")throw this.parseError("Expected identifier or ) to end STRUCT");break}this.peek().type===","&&this.next()}else if(e.type==="id"){let i=e.cursor+e.text.length;this.peek().type==="precision"&&this.next(),this.peek().type==="eof"&&(i=this.input.length),r={type:"sql native",rawType:this.input.slice(e.cursor,i)}}else throw this.parseError("Could not understand type");for(;this.peek().type==="arrayOf";)this.next(),r.type==="record"?r={type:"array",elementTypeDef:{type:"record_element"},fields:r.fields}:r={type:"array",elementTypeDef:r};return r}}(function(t){var e=T&&T.__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=T&&T.__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(mE,t)})(v6);var C6={},AE={},vE={};Object.defineProperty(vE,"__esModule",{value:!0}),vE.SNOWFLAKE_DIALECT_FUNCTIONS=void 0;const Ls=it,mxe={generic:"T"},_E={node:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"},b6={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{expr:(0,Ls.sql)`LISTAGG(${(0,Ls.arg)("value")}, ',')${_E}`}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{expr:(0,Ls.sql)`LISTAGG(${(0,Ls.arg)("value")}, ${(0,Ls.arg)("separator")})${_E}`}}},yxe={default_separator:{...b6.default_separator,isSymmetric:!0,impl:{expr:(0,Ls.sql)`LISTAGG(DISTINCT ${(0,Ls.arg)("value")}, ',')${_E}`}},with_separator:{...b6.with_separator,isSymmetric:!0,impl:{expr:(0,Ls.sql)`LISTAGG(DISTINCT ${(0,Ls.arg)("value")}, ${(0,Ls.arg)("separator")})${_E}`}}};vE.SNOWFLAKE_DIALECT_FUNCTIONS={string_agg:b6,string_agg_distinct:yxe,hll_accumulate:{default:{takes:{value:{dimension:mxe}},returns:{measure:{sql_native:"hyperloglog"}},generic:{T:["string","number"]},isSymmetric:!0,impl:{function:"hll_accumulate"}}},hll_combine:{takes:{value:{sql_native:"hyperloglog"}},returns:{measure:{sql_native:"hyperloglog"}},impl:{function:"hll_combine"},isSymmetric:!0},hll_estimate:{takes:{value:{sql_native:"hyperloglog"}},returns:{dimension:"number"},impl:{function:"hll_estimate"}},hll_export:{takes:{value:{sql_native:"hyperloglog"}},returns:{dimension:{sql_native:"bytes"}},impl:{function:"hll_export"}},hll_import:{takes:{value:{sql_native:"bytes"}},returns:{dimension:{sql_native:"hyperloglog"}},impl:{function:"hll_import"}},...(0,Ls.def)("repeat",{str:"string",n:"number"},"string"),...(0,Ls.def)("reverse",{str:"string"},"string")};var SE={};Object.defineProperty(SE,"__esModule",{value:!0}),SE.SNOWFLAKE_MALLOY_STANDARD_OVERLOADS=void 0,SE.SNOWFLAKE_MALLOY_STANDARD_OVERLOADS={chr:{sql:"COALESCE(CHR(${value}), '')"},div:{sql:"CASE WHEN DIV0(${dividend}, ${divisor}) < 0 THEN CEIL(DIV0(${dividend}, ${divisor})) ELSE FLOOR(DIV0(${dividend}, ${divisor})) END"},is_inf:{sql:"COALESCE(${value} = 'inf'::FLOAT OR ${value} = '-inf'::FLOAT, false)"},is_nan:{sql:"COALESCE(${value} = 'NAN'::FLOAT, false)"},length:{function:"LENGTH"},byte_length:{sql:"CEIL(BIT_LENGTH(${value}) / 8)"},log:{sql:"LOG(${base}, ${value})"},rand:{sql:"UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())"},regexp_extract:{sql:"REGEXP_SUBSTR(${value}, ${pattern}, 1, 1, 'e')"},starts_with:{sql:"COALESCE(STARTSWITH(${value}, ${prefix}), false)"},ends_with:{sql:"COALESCE(ENDSWITH(${value}, ${suffix}), false)"},strpos:{sql:"POSITION(${search_string}, ${test_string})"},trunc:{to_integer:{sql:"CASE WHEN ${value} < 0 THEN CEIL(${value}) ELSE FLOOR(${value}) END"},to_precision:{sql:"CASE WHEN ${value} < 0 THEN CEIL(${value} * POW(10, ${precision})) / POW(10, ${precision}) ELSE FLOOR(${value} * POW(10, ${precision})) / POW(10, ${precision}) END"}}},Object.defineProperty(AE,"__esModule",{value:!0}),AE.SnowflakeDialect=void 0;const Exe=Ft,es=Ke,Vk=Ul,gp=Ml,Axe=vE,vxe=SE,_xe={day_of_week:"dayofweek",day_of_year:"dayofyear"},Sxe={varchar:{type:"string"},text:{type:"string"},string:{type:"string"},char:{type:"string"},character:{type:"string"},nvarchar:{type:"string"},nvarchar2:{type:"string"},"char varying":{type:"string"},"nchar varying":{type:"string"},number:{type:"number",numberType:"integer"},numeric:{type:"number",numberType:"integer"},decimal:{type:"number",numberType:"integer"},dec:{type:"number",numberType:"integer"},integer:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},smallint:{type:"number",numberType:"integer"},tinyint:{type:"number",numberType:"integer"},byteint:{type:"number",numberType:"integer"},float:{type:"number",numberType:"float"},float4:{type:"number",numberType:"float"},float8:{type:"number",numberType:"float"},double:{type:"number",numberType:"float"},"double precision":{type:"number",numberType:"float"},real:{type:"number",numberType:"float"},boolean:{type:"boolean"},date:{type:"date"},timestamp:{type:"timestamp"},timestampntz:{type:"timestamp"},timestamp_ntz:{type:"timestamp"},"timestamp without time zone":{type:"timestamp"},timestamptz:{type:"timestamp"},timestamp_tz:{type:"timestamp"},"timestamp with time zone":{type:"timestamp"}};class Cxe extends gp.Dialect{constructor(){super(...arguments),this.name="snowflake",this.experimental=!1,this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!0,this.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.supportsHyperLogLog=!0,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!1,this.supportsComplexFilteredSources=!1}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e+1}))))`}sqlAnyValue(e,n){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${n} END) WITHIN GROUP (ORDER BY ${n} ASC NULLS LAST))[0]`}mapFields(e){return e.map(n=>`
61
- ${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){const u=this.sqlMaybeQuoteIdentifier(n);return s?`LEFT JOIN lateral flatten(input => ${e}) as ${u}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${u}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r})`}sqlSumDistinct(e,n,r){const i=this.sqlSumDistinctHashedKey(e),s=1e8,o=`(COALESCE(${n},0)*${s})`,u=`(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;if(r==="SUM")return u;if(r==="AVG")return`(${u})/NULLIF(COUNT(DISTINCT CASE WHEN ${n} IS NOT NULL THEN ${e} END),0)`;throw new Error(`Unknown Symmetric Aggregate function ${r}`)}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i){const s=this.sqlMaybeQuoteIdentifier(r);if(r==="__row_id")return`"${e}".INDEX::varchar`;if(n.startsWith("array")){let o=`"${e}".value`;switch(n==="array[record]"&&(o+=`:${s}`),i){case"record":case"array":i="VARIANT";break;case"string":i="VARCHAR";break;case"number":i="DOUBLE";break;case"struct":throw new Error("NOT STRUCT PLEASE")}return`${o}::${i}`}else if(n==="record")return`${e}:${s}`;return`${e}.${s}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return'"'+e.replace(/"/g,'""')+'"'}sqlCreateTableAsSelect(e,n){return`
61
+ ${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){const u=this.sqlMaybeQuoteIdentifier(n);return s?`LEFT JOIN lateral flatten(input => ${e}) as ${u}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${u}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r})`}sqlSumDistinct(e,n,r){const i=this.sqlSumDistinctHashedKey(e),s=1e8,o=`(CAST (COALESCE(${n},0)*${s} as INT))`,u=`(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;if(r==="SUM")return u;if(r==="AVG")return`(${u})/NULLIF(COUNT(DISTINCT CASE WHEN ${n} IS NOT NULL THEN ${e} END),0)`;throw new Error(`Unknown Symmetric Aggregate function ${r}`)}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i){const s=this.sqlMaybeQuoteIdentifier(r);if(r==="__row_id")return`"${e}".INDEX::varchar`;if(n.startsWith("array")){let o=`"${e}".value`;switch(n==="array[record]"&&(o+=`:${s}`),i){case"record":case"array":i="VARIANT";break;case"string":i="VARCHAR";break;case"number":i="DOUBLE";break;case"struct":throw new Error("NOT STRUCT PLEASE")}return`${o}::${i}`}else if(n==="record")return`${e}:${s}`;return`${e}.${s}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return'"'+e.replace(/"/g,'""')+'"'}sqlCreateTableAsSelect(e,n){return`
62
62
  CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
63
63
  AS (
64
64
  ${(0,Exe.indent)(n)}
@@ -4193,7 +4193,7 @@ class bxe extends fp.Dialect {
4193
4193
  return `(${n} + ${r})`;
4194
4194
  }
4195
4195
  sqlSumDistinct(e, n, r) {
4196
- const i = this.sqlSumDistinctHashedKey(e), s = 1e8, o = `(COALESCE(${n},0)*${s})`, u = `(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;
4196
+ const i = this.sqlSumDistinctHashedKey(e), s = 1e8, o = `(CAST (COALESCE(${n},0)*${s} as INT))`, u = `(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;
4197
4197
  if (r === "SUM")
4198
4198
  return u;
4199
4199
  if (r === "AVG")
@@ -58,7 +58,7 @@ ${Gk}
58
58
  SELECT UNNEST(list(distinct {key:${e}, ${n.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
59
59
  )
60
60
  )`}sqlSampleTable(e,n){if(n!==void 0){if((0,rd.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,rd.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,rd.isSamplingPercent)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(n=>`${n} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getDialectFunctionOverrides(){return(0,zk.expandOverrideMap)(hxe.DUCKDB_MALLOY_STANDARD_OVERLOADS)}getDialectFunctions(){return(0,zk.expandBlueprintMap)(dxe.DUCKDB_DIALECT_FUNCTIONS)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}parseDuckDBType(e){const n=new gxe(e);try{return n.typeDef()}catch(r){if(r instanceof Qk.TinyParseError)return{type:"sql native",rawType:e};throw r}}sqlTypeToMalloyType(e){var n,r,i;const s=e.replace(/^DECIMAL\(\d+,\d+\)/g,"DECIMAL"),o=(r=(n=s.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:s;return(i=_6[o.toUpperCase()])!==null&&i!==void 0?i:{type:"sql native",rawType:e.toLowerCase()}}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}sqlAlterTimeExpr(e){let n=e.units,r=e.kids.delta.sql;n==="quarter"?(n="month",r=`${r}*3`):n==="week"&&(n="day",r=`${r}*7`);const i=`INTERVAL (${r}) ${n}`;return`${e.kids.base.sql} ${e.op} ${i}`}sqlRegexpMatch(e){return`REGEXP_MATCHES(${e.kids.expr.sql},${e.kids.regex.sql})`}sqlMeasureTimeExpr(e){const n=e.kids.left,r=e.kids.right;let i=n.sql||"",s=r.sql||"";return(0,fxe.inDays)(e.units)||(rd.TD.isDate(n.typeDef)&&(i=`${i}::TIMESTAMP`),rd.TD.isDate(r.typeDef)&&(s=`${s}::TIMESTAMP`)),`DATE_SUB('${e.units}', ${i}, ${s})`}sqlLiteralRecord(e){return"{"+Object.entries(e.kids).map(([r,i])=>`${this.sqlMaybeQuoteIdentifier(r)}:${i.sql}`).join(",")+"}"}}gE.DuckDBDialect=pxe;class gxe extends Qk.TinyParser{constructor(e){super(e,{space:/^\s+/,qsingle:/^'([^']|'')*'/,qdouble:/^"([^"]|"")*"/,size:/^\(\d+\)/,precision:/^\(\d+,\d+\)/,arrayOf:/^\[]/,char:/^[,:[\]()-]/,id:/^\w+/})}unquoteName(e){return e.type==="qsingle"?e.text.replace("''",""):e.type==="qdouble"?e.text.replace('""',""):e.text}sqlID(e){return e.text.toUpperCase()}typeDef(){const e=this.next("id"),n=this.sqlID(e);let r;if(n==="VARCHAR"&&this.peek().type==="size"&&this.next(),(n==="DECIMAL"||n==="NUMERIC")&&this.peek().type==="precision")this.next(),r={type:"number",numberType:"float"};else if(n==="TIMESTAMP")this.peek().text==="WITH"&&this.nextText("WITH","TIME","ZONE"),r={type:"timestamp"};else if(_6[n])r=_6[n];else if(n==="STRUCT")for(this.next("("),r={type:"record",fields:[]};;){const i=this.next();if(i.type==="qsingle"||i.type==="qdouble"||i.type==="id"){const s=this.typeDef();r.fields.push((0,rd.mkFieldDef)(s,this.unquoteName(i)))}else{if(i.type!==")")throw this.parseError("Expected identifier or ) to end STRUCT");break}this.peek().type===","&&this.next()}else if(e.type==="id"){let i=e.cursor+e.text.length;this.peek().type==="precision"&&this.next(),this.peek().type==="eof"&&(i=this.input.length),r={type:"sql native",rawType:this.input.slice(e.cursor,i)}}else throw this.parseError("Could not understand type");for(;this.peek().type==="arrayOf";)this.next(),r.type==="record"?r={type:"array",elementTypeDef:{type:"record_element"},fields:r.fields}:r={type:"array",elementTypeDef:r};return r}}(function(t){var e=T&&T.__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=T&&T.__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(gE,t)})(A6);var S6={},EE={},AE={};Object.defineProperty(AE,"__esModule",{value:!0}),AE.SNOWFLAKE_DIALECT_FUNCTIONS=void 0;const Ls=it,mxe={generic:"T"},vE={node:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"},C6={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{expr:(0,Ls.sql)`LISTAGG(${(0,Ls.arg)("value")}, ',')${vE}`}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{expr:(0,Ls.sql)`LISTAGG(${(0,Ls.arg)("value")}, ${(0,Ls.arg)("separator")})${vE}`}}},yxe={default_separator:{...C6.default_separator,isSymmetric:!0,impl:{expr:(0,Ls.sql)`LISTAGG(DISTINCT ${(0,Ls.arg)("value")}, ',')${vE}`}},with_separator:{...C6.with_separator,isSymmetric:!0,impl:{expr:(0,Ls.sql)`LISTAGG(DISTINCT ${(0,Ls.arg)("value")}, ${(0,Ls.arg)("separator")})${vE}`}}};AE.SNOWFLAKE_DIALECT_FUNCTIONS={string_agg:C6,string_agg_distinct:yxe,hll_accumulate:{default:{takes:{value:{dimension:mxe}},returns:{measure:{sql_native:"hyperloglog"}},generic:{T:["string","number"]},isSymmetric:!0,impl:{function:"hll_accumulate"}}},hll_combine:{takes:{value:{sql_native:"hyperloglog"}},returns:{measure:{sql_native:"hyperloglog"}},impl:{function:"hll_combine"},isSymmetric:!0},hll_estimate:{takes:{value:{sql_native:"hyperloglog"}},returns:{dimension:"number"},impl:{function:"hll_estimate"}},hll_export:{takes:{value:{sql_native:"hyperloglog"}},returns:{dimension:{sql_native:"bytes"}},impl:{function:"hll_export"}},hll_import:{takes:{value:{sql_native:"bytes"}},returns:{dimension:{sql_native:"hyperloglog"}},impl:{function:"hll_import"}},...(0,Ls.def)("repeat",{str:"string",n:"number"},"string"),...(0,Ls.def)("reverse",{str:"string"},"string")};var _E={};Object.defineProperty(_E,"__esModule",{value:!0}),_E.SNOWFLAKE_MALLOY_STANDARD_OVERLOADS=void 0,_E.SNOWFLAKE_MALLOY_STANDARD_OVERLOADS={chr:{sql:"COALESCE(CHR(${value}), '')"},div:{sql:"CASE WHEN DIV0(${dividend}, ${divisor}) < 0 THEN CEIL(DIV0(${dividend}, ${divisor})) ELSE FLOOR(DIV0(${dividend}, ${divisor})) END"},is_inf:{sql:"COALESCE(${value} = 'inf'::FLOAT OR ${value} = '-inf'::FLOAT, false)"},is_nan:{sql:"COALESCE(${value} = 'NAN'::FLOAT, false)"},length:{function:"LENGTH"},byte_length:{sql:"CEIL(BIT_LENGTH(${value}) / 8)"},log:{sql:"LOG(${base}, ${value})"},rand:{sql:"UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())"},regexp_extract:{sql:"REGEXP_SUBSTR(${value}, ${pattern}, 1, 1, 'e')"},starts_with:{sql:"COALESCE(STARTSWITH(${value}, ${prefix}), false)"},ends_with:{sql:"COALESCE(ENDSWITH(${value}, ${suffix}), false)"},strpos:{sql:"POSITION(${search_string}, ${test_string})"},trunc:{to_integer:{sql:"CASE WHEN ${value} < 0 THEN CEIL(${value}) ELSE FLOOR(${value}) END"},to_precision:{sql:"CASE WHEN ${value} < 0 THEN CEIL(${value} * POW(10, ${precision})) / POW(10, ${precision}) ELSE FLOOR(${value} * POW(10, ${precision})) / POW(10, ${precision}) END"}}},Object.defineProperty(EE,"__esModule",{value:!0}),EE.SnowflakeDialect=void 0;const Exe=Ft,es=Ke,Wk=Ul,hp=Ml,Axe=AE,vxe=_E,_xe={day_of_week:"dayofweek",day_of_year:"dayofyear"},Sxe={varchar:{type:"string"},text:{type:"string"},string:{type:"string"},char:{type:"string"},character:{type:"string"},nvarchar:{type:"string"},nvarchar2:{type:"string"},"char varying":{type:"string"},"nchar varying":{type:"string"},number:{type:"number",numberType:"integer"},numeric:{type:"number",numberType:"integer"},decimal:{type:"number",numberType:"integer"},dec:{type:"number",numberType:"integer"},integer:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},smallint:{type:"number",numberType:"integer"},tinyint:{type:"number",numberType:"integer"},byteint:{type:"number",numberType:"integer"},float:{type:"number",numberType:"float"},float4:{type:"number",numberType:"float"},float8:{type:"number",numberType:"float"},double:{type:"number",numberType:"float"},"double precision":{type:"number",numberType:"float"},real:{type:"number",numberType:"float"},boolean:{type:"boolean"},date:{type:"date"},timestamp:{type:"timestamp"},timestampntz:{type:"timestamp"},timestamp_ntz:{type:"timestamp"},"timestamp without time zone":{type:"timestamp"},timestamptz:{type:"timestamp"},timestamp_tz:{type:"timestamp"},"timestamp with time zone":{type:"timestamp"}};class Cxe extends hp.Dialect{constructor(){super(...arguments),this.name="snowflake",this.experimental=!1,this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!0,this.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.supportsHyperLogLog=!0,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!1,this.supportsComplexFilteredSources=!1}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e+1}))))`}sqlAnyValue(e,n){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${n} END) WITHIN GROUP (ORDER BY ${n} ASC NULLS LAST))[0]`}mapFields(e){return e.map(n=>`
61
- ${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){const u=this.sqlMaybeQuoteIdentifier(n);return s?`LEFT JOIN lateral flatten(input => ${e}) as ${u}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${u}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r})`}sqlSumDistinct(e,n,r){const i=this.sqlSumDistinctHashedKey(e),s=1e8,o=`(COALESCE(${n},0)*${s})`,u=`(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;if(r==="SUM")return u;if(r==="AVG")return`(${u})/NULLIF(COUNT(DISTINCT CASE WHEN ${n} IS NOT NULL THEN ${e} END),0)`;throw new Error(`Unknown Symmetric Aggregate function ${r}`)}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i){const s=this.sqlMaybeQuoteIdentifier(r);if(r==="__row_id")return`"${e}".INDEX::varchar`;if(n.startsWith("array")){let o=`"${e}".value`;switch(n==="array[record]"&&(o+=`:${s}`),i){case"record":case"array":i="VARIANT";break;case"string":i="VARCHAR";break;case"number":i="DOUBLE";break;case"struct":throw new Error("NOT STRUCT PLEASE")}return`${o}::${i}`}else if(n==="record")return`${e}:${s}`;return`${e}.${s}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return'"'+e.replace(/"/g,'""')+'"'}sqlCreateTableAsSelect(e,n){return`
61
+ ${n.sqlExpression} as ${n.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(n=>`'${n.rawName}', (${n.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=this.mapFieldsForObjectConstruct(n),o=r?` WITHIN GROUP (${r})`:"",u=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${s}) END)${o}`;return i===void 0?`COALESCE(${u}, [])`:`COALESCE(ARRAY_SLICE(${u}, 0, ${i}), [])`}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForObjectConstruct(n);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,n,r){return`(ARRAY_AGG(CASE WHEN group_set=${n} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForObjectConstruct(n),i=n.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT_KEEP_NULL(${r}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,n,r,i,s,o){const u=this.sqlMaybeQuoteIdentifier(n);return s?`LEFT JOIN lateral flatten(input => ${e}) as ${u}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${u}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;const n=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,r=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${n} + ${r})`}sqlSumDistinct(e,n,r){const i=this.sqlSumDistinctHashedKey(e),s=1e8,o=`(CAST (COALESCE(${n},0)*${s} as INT))`,u=`(SUM(DISTINCT ${i} + ${o}) - SUM(DISTINCT ${i}))/${s}`;if(r==="SUM")return u;if(r==="AVG")return`(${u})/NULLIF(COUNT(DISTINCT CASE WHEN ${n} IS NOT NULL THEN ${e} END),0)`;throw new Error(`Unknown Symmetric Aggregate function ${r}`)}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i){const s=this.sqlMaybeQuoteIdentifier(r);if(r==="__row_id")return`"${e}".INDEX::varchar`;if(n.startsWith("array")){let o=`"${e}".value`;switch(n==="array[record]"&&(o+=`:${s}`),i){case"record":case"array":i="VARIANT";break;case"string":i="VARCHAR";break;case"number":i="DOUBLE";break;case"struct":throw new Error("NOT STRUCT PLEASE")}return`${o}::${i}`}else if(n==="record")return`${e}:${s}`;return`${e}.${s}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`TABLE(FLATTEN(input =>${r}))`}sqlCreateFunction(e,n){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT_KEEP_NULL(${e}.*)`}sqlMaybeQuoteIdentifier(e){return'"'+e.replace(/"/g,'""')+'"'}sqlCreateTableAsSelect(e,n){return`
62
62
  CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
63
63
  AS (
64
64
  ${(0,Exe.indent)(n)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/render",
3
- "version": "0.0.234-dev250204162601",
3
+ "version": "0.0.234",
4
4
  "license": "MIT",
5
5
  "main": "dist/module/index.umd.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,7 +31,7 @@
31
31
  "build-types": "tsc --build --declaration --emitDeclarationOnly"
32
32
  },
33
33
  "dependencies": {
34
- "@malloydata/malloy": "^0.0.234-dev250204162601",
34
+ "@malloydata/malloy": "^0.0.234",
35
35
  "@tanstack/solid-virtual": "^3.10.4",
36
36
  "component-register": "^0.8.6",
37
37
  "lodash": "^4.17.20",