@malloydata/render 0.0.127-dev240305191049 → 0.0.127-dev240306172007

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.
@@ -5115,27 +5115,8 @@ ${hackSplitComment}
5115
5115
  return tablePath;
5116
5116
  }
5117
5117
  sqlGroupSetTable(groupSetCount) {
5118
- return `CROSS JOIN (SELECT seq4() as group_set FROM TABLE(GENERATOR(ROWCOUNT => ${groupSetCount + 1}))) as group_set`;
5118
+ return `SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${groupSetCount})))`;
5119
5119
  }
5120
- /*
5121
- // this just returns null in snowflake
5122
- select
5123
- any_value (t is not null) as av
5124
- from
5125
- (
5126
- select
5127
- case
5128
- when group_set = 1 then 'one'
5129
- end as t
5130
- from
5131
- (
5132
- SELECT
5133
- seq4 () as group_set
5134
- FROM
5135
- TABLE (GENERATOR (ROWCOUNT => 3))
5136
- ) as tbl
5137
- );
5138
- */
5139
5120
  sqlAnyValue(groupSet, fieldName) {
5140
5121
  return `(ARRAY_AGG(CASE WHEN group_set=${groupSet} THEN ${fieldName} END) WITHIN GROUP (ORDER BY ${fieldName} ASC NULLS LAST))[0]`;
5141
5122
  }
@@ -5225,8 +5206,8 @@ ${hackSplitComment}
5225
5206
  sqlCreateFunction(_id, _funcText) {
5226
5207
  throw new Error("not implemented yet");
5227
5208
  }
5228
- sqlCreateFunctionCombineLastStage(_lastStageName) {
5229
- throw new Error("not implemented yet");
5209
+ sqlCreateFunctionCombineLastStage(lastStageName) {
5210
+ return `SELECT ARRAY_AGG(OBJECT_CONSTRUCT(*)) FROM ${lastStageName}`;
5230
5211
  }
5231
5212
  sqlSelectAliasAsStruct(alias) {
5232
5213
  return `OBJECT_CONSTRUCT(${alias}.*)`;
@@ -169,8 +169,8 @@ ${vde}
169
169
  FROM (
170
170
  SELECT UNNEST(list(distinct {key:${e}, ${r.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
171
171
  )
172
- )`}sqlSampleTable(e,r){if(r!==void 0){if((0,ur.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,ur.isSamplingRows)(r))return`(SELECT * FROM ${e} USING SAMPLE ${r.rows})`;if((0,ur.isSamplingPercent)(r))return`(SELECT * FROM ${e} USING SAMPLE ${r.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(r=>`${r} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return oje.DUCKDB_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var r,n;let i=(n=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&n!==void 0?n:e;return uje[i.toUpperCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}};qF.DuckDBDialect=WG});var VG=S(Q1=>{"use strict";var lje=Q1&&Q1.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),cje=Q1&&Q1.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&lje(e,t,r)};Object.defineProperty(Q1,"__esModule",{value:!0});cje(_de(),Q1)});var bde=S($F=>{"use strict";Object.defineProperty($F,"__esModule",{value:!0});$F.fnChr=void 0;var Pb=be();function fje(){let t=(0,Pb.makeParam)("value",(0,Pb.anyExprType)("number"));return[(0,Pb.overload)((0,Pb.minScalar)("string"),[t.param],(0,Pb.sql)`COALESCE(CHR(${t.arg}), '')`)]}$F.fnChr=fje});var Tde=S(UF=>{"use strict";Object.defineProperty(UF,"__esModule",{value:!0});UF.fnDiv=void 0;var W1=be();function xje(){let t=(0,W1.makeParam)("dividend",(0,W1.anyExprType)("number")),e=(0,W1.makeParam)("divisor",(0,W1.anyExprType)("number"));return[(0,W1.overload)((0,W1.minScalar)("number"),[t.param,e.param],(0,W1.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}UF.fnDiv=xje});var Cde=S(jF=>{"use strict";Object.defineProperty(jF,"__esModule",{value:!0});jF.fnIsInf=void 0;var kb=be();function dje(){let t=(0,kb.makeParam)("value",(0,kb.anyExprType)("number"));return[(0,kb.overload)((0,kb.minScalar)("boolean"),[t.param],(0,kb.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}jF.fnIsInf=dje});var Rde=S(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.fnIsNan=void 0;var w3=be();function hje(){return[(0,w3.overload)((0,w3.minScalar)("boolean"),[(0,w3.param)("value",(0,w3.anyExprType)("number"))],(0,w3.sql)`COALESCE(${(0,w3.arg)("value")} = 'NAN'::FLOAT, false)`)]}HF.fnIsNan=hje});var Ode=S(L3=>{"use strict";Object.defineProperty(L3,"__esModule",{value:!0});L3.fnByteLength=L3.fnLength=void 0;var Uu=be();function pje(){return[(0,Uu.overload)((0,Uu.minScalar)("number"),[(0,Uu.param)("value",(0,Uu.anyExprType)("string"))],(0,Uu.sql)`LENGTH(${(0,Uu.arg)("value")})`)]}L3.fnLength=pje;function mje(){return[(0,Uu.overload)((0,Uu.minScalar)("number"),[(0,Uu.param)("value",(0,Uu.anyExprType)("string"))],(0,Uu.sql)`CEIL(BIT_LENGTH(${(0,Uu.arg)("value")}) / 8)`)]}L3.fnByteLength=mje});var Dde=S(zF=>{"use strict";Object.defineProperty(zF,"__esModule",{value:!0});zF.fnLog=void 0;var V1=be();function gje(){let t=(0,V1.makeParam)("value",(0,V1.anyExprType)("number")),e=(0,V1.makeParam)("base",(0,V1.anyExprType)("number"));return[(0,V1.overload)((0,V1.minScalar)("number"),[t.param,e.param],(0,V1.sql)`LOG(${e.arg}, ${t.arg})`)]}zF.fnLog=gje});var Nde=S(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.fnRand=void 0;var YG=be();function yje(){return[(0,YG.overload)((0,YG.minScalar)("number"),[],(0,YG.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}GF.fnRand=yje});var Fde=S(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF.fnRegexpExtract=void 0;var Y1=be();function Eje(){let t=(0,Y1.makeParam)("value",(0,Y1.anyExprType)("string")),e=(0,Y1.makeParam)("pattern",(0,Y1.anyExprType)("regular expression"));return[(0,Y1.overload)((0,Y1.minScalar)("string"),[t.param,e.param],(0,Y1.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}QF.fnRegexpExtract=Eje});var wde=S(I3=>{"use strict";Object.defineProperty(I3,"__esModule",{value:!0});I3.fnEndsWith=I3.fnStartsWith=void 0;var ua=be();function Aje(){let t=(0,ua.makeParam)("value",(0,ua.anyExprType)("string")),e=(0,ua.makeParam)("prefix",(0,ua.anyExprType)("string"));return[(0,ua.overload)((0,ua.minScalar)("boolean"),[t.param,e.param],(0,ua.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}I3.fnStartsWith=Aje;function Sje(){let t=(0,ua.makeParam)("value",(0,ua.anyExprType)("string")),e=(0,ua.makeParam)("suffix",(0,ua.anyExprType)("string"));return[(0,ua.overload)((0,ua.minScalar)("boolean"),[t.param,e.param],(0,ua.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}I3.fnEndsWith=Sje});var Lde=S(WF=>{"use strict";Object.defineProperty(WF,"__esModule",{value:!0});WF.fnStrpos=void 0;var K1=be();function vje(){let t=(0,K1.makeParam)("test_string",(0,K1.anyExprType)("string")),e=(0,K1.makeParam)("search_string",(0,K1.anyExprType)("string"));return[(0,K1.overload)((0,K1.minScalar)("number"),[t.param,e.param],(0,K1.sql)`POSITION(${e.arg}, ${t.arg})`)]}WF.fnStrpos=vje});var Ide=S(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF.fnTrunc=void 0;var xc=be();function _je(){let t=(0,xc.makeParam)("value",(0,xc.anyExprType)("number")),e=(0,xc.makeParam)("precision",(0,xc.anyExprType)("number"));return[(0,xc.overload)((0,xc.minScalar)("number"),[t.param],(0,xc.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,xc.overload)((0,xc.minScalar)("number"),[t.param,e.param],(0,xc.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}VF.fnTrunc=_je});var Mde=S(M3=>{"use strict";Object.defineProperty(M3,"__esModule",{value:!0});M3.fnStringAggDistinct=M3.fnStringAgg=void 0;var hn=be();function bje(){let t=(0,hn.makeParam)("value",(0,hn.maxScalar)("string")),e=(0,hn.makeParam)("separator",(0,hn.literal)((0,hn.maxScalar)("string"))),r={type:"aggregate_order_by"};return[(0,hn.overload)((0,hn.minAggregate)("string"),[t.param],(0,hn.sql)`LISTAGG(${t.arg}, ',') WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1}),(0,hn.overload)((0,hn.minAggregate)("string"),[t.param,e.param],(0,hn.sql)`LISTAGG(${t.arg}, ${e.arg}) WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1})]}M3.fnStringAgg=bje;function Tje(){let t=(0,hn.makeParam)("value",(0,hn.maxScalar)("string")),e=(0,hn.makeParam)("separator",(0,hn.literal)((0,hn.maxScalar)("string"))),r={type:"aggregate_order_by"};return[(0,hn.overload)((0,hn.minAggregate)("string"),[t.param],(0,hn.sql)`LISTAGG(DISTINCT ${t.arg}, ',') WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1}),(0,hn.overload)((0,hn.minAggregate)("string"),[t.param,e.param],(0,hn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg}) WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1})]}M3.fnStringAggDistinct=Tje});var qde=S(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.SNOWFLAKE_FUNCTIONS=void 0;var Cje=A3(),Rje=bde(),Oje=Tde(),Dje=Cde(),Nje=Rde(),Pde=Ode(),Fje=Dde(),wje=Nde(),Lje=Fde(),kde=wde(),Ije=Lde(),Mje=Ide(),Bde=Mde();jn.SNOWFLAKE_FUNCTIONS=Cje.FUNCTIONS.clone();jn.SNOWFLAKE_FUNCTIONS.add("byte_length",Pde.fnByteLength);jn.SNOWFLAKE_FUNCTIONS.add("chr",Rje.fnChr);jn.SNOWFLAKE_FUNCTIONS.add("div",Oje.fnDiv);jn.SNOWFLAKE_FUNCTIONS.add("is_inf",Dje.fnIsInf);jn.SNOWFLAKE_FUNCTIONS.add("is_nan",Nje.fnIsNan);jn.SNOWFLAKE_FUNCTIONS.add("length",Pde.fnLength);jn.SNOWFLAKE_FUNCTIONS.add("log",Fje.fnLog);jn.SNOWFLAKE_FUNCTIONS.add("rand",wje.fnRand);jn.SNOWFLAKE_FUNCTIONS.add("regexp_extract",Lje.fnRegexpExtract);jn.SNOWFLAKE_FUNCTIONS.add("starts_with",kde.fnStartsWith);jn.SNOWFLAKE_FUNCTIONS.add("ends_with",kde.fnEndsWith);jn.SNOWFLAKE_FUNCTIONS.add("strpos",Ije.fnStrpos);jn.SNOWFLAKE_FUNCTIONS.add("trunc",Mje.fnTrunc);jn.SNOWFLAKE_FUNCTIONS.add("string_agg",Bde.fnStringAgg);jn.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",Bde.fnStringAggDistinct);jn.SNOWFLAKE_FUNCTIONS.seal()});var $de=S(YF=>{"use strict";Object.defineProperty(YF,"__esModule",{value:!0});YF.SNOWFLAKE_FUNCTIONS=void 0;var Pje=qde();Object.defineProperty(YF,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return Pje.SNOWFLAKE_FUNCTIONS}})});var jde=S(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.SnowflakeDialect=void 0;var kje=nx(),Ri=Ye(),Ude=$de(),Bb=l3(),Bje={day_of_week:"dayofweek",day_of_year:"dayofyear"},qje={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"}},KG=class extends Bb.Dialect{constructor(){super(...arguments),this.name="snowflake",this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!1,this.defaultSampling={rows:5e4},this.globalFunctions=Ude.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0}quoteTablePath(e){return e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT seq4() as group_set FROM TABLE(GENERATOR(ROWCOUNT => ${e+1}))) as group_set`}sqlAnyValue(e,r){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${r} END) WITHIN GROUP (ORDER BY ${r} ASC NULLS LAST))[0]`}mapFields(e){return e.map(r=>`
173
- ${r.sqlExpression} as ${r.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(r=>`'${r.rawName}', (${r.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,r,n,i){let s=this.mapFieldsForObjectConstruct(r),o=n?` WITHIN GROUP (${n})`:"",a=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT(${s}) END)${o}`;return i===void 0?`COALESCE(${a}, [])`:`COALESCE(ARRAY_SLICE(${a}, 0, ${i}), [])`}sqlAnyValueTurtle(e,r){let n=this.mapFieldsForObjectConstruct(r);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT(${n}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,r,n){return`(ARRAY_AGG(CASE WHEN group_set=${r} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${n}`}sqlCoaleseMeasuresInline(e,r){let n=this.mapFieldsForObjectConstruct(r),i=r.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT(${n}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,r,n,i,s,o){if(s)throw new Error("not implemented yet");return`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${r}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;let r=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,n=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${r} + ${n}) * 0.000000001`}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,r,n,i,s){if(r==="__row_id")return`${e}.INDEX::varchar`;if(i){let o=n;return n==="string"&&(o="varchar"),`${e}.value:"${r}"::${o}`}else return`${e}."${r}"`}sqlUnnestPipelineHead(e,r){let n=r;return e&&(n=`[${n}]`),`TABLE(FLATTEN(input =>${n}))`}sqlCreateFunction(e,r){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){throw new Error("not implemented yet")}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT(${e}.*)`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,r){return`
172
+ )`}sqlSampleTable(e,r){if(r!==void 0){if((0,ur.isSamplingEnable)(r)&&r.enable&&(r=this.defaultSampling),(0,ur.isSamplingRows)(r))return`(SELECT * FROM ${e} USING SAMPLE ${r.rows})`;if((0,ur.isSamplingPercent)(r))return`(SELECT * FROM ${e} USING SAMPLE ${r.percent} PERCENT (bernoulli))`}return e}sqlOrderBy(e){return`ORDER BY ${e.map(r=>`${r} NULLS LAST`).join(",")}`}sqlLiteralString(e){return"'"+e.replace(/'/g,"''")+"'"}sqlLiteralRegexp(e){return"'"+e.replace(/'/g,"''")+"'"}getGlobalFunctionDef(e){return oje.DUCKDB_FUNCTIONS.get(e)}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"integer":"double precision":e.type==="string"?"varchar":e.type}sqlTypeToMalloyType(e){var r,n;let i=(n=(r=e.match(/^(\w+)/))===null||r===void 0?void 0:r.at(0))!==null&&n!==void 0?n:e;return uje[i.toUpperCase()]}castToString(e){return`CAST(${e} as VARCHAR)`}concat(...e){return e.join(" || ")}validateTypeName(e){return e.match(/^[A-Za-z\s(),[\]0-9]*$/)!==null}};qF.DuckDBDialect=WG});var VG=S(Q1=>{"use strict";var lje=Q1&&Q1.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),cje=Q1&&Q1.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&lje(e,t,r)};Object.defineProperty(Q1,"__esModule",{value:!0});cje(_de(),Q1)});var bde=S($F=>{"use strict";Object.defineProperty($F,"__esModule",{value:!0});$F.fnChr=void 0;var Pb=be();function fje(){let t=(0,Pb.makeParam)("value",(0,Pb.anyExprType)("number"));return[(0,Pb.overload)((0,Pb.minScalar)("string"),[t.param],(0,Pb.sql)`COALESCE(CHR(${t.arg}), '')`)]}$F.fnChr=fje});var Tde=S(UF=>{"use strict";Object.defineProperty(UF,"__esModule",{value:!0});UF.fnDiv=void 0;var W1=be();function xje(){let t=(0,W1.makeParam)("dividend",(0,W1.anyExprType)("number")),e=(0,W1.makeParam)("divisor",(0,W1.anyExprType)("number"));return[(0,W1.overload)((0,W1.minScalar)("number"),[t.param,e.param],(0,W1.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}UF.fnDiv=xje});var Cde=S(jF=>{"use strict";Object.defineProperty(jF,"__esModule",{value:!0});jF.fnIsInf=void 0;var kb=be();function dje(){let t=(0,kb.makeParam)("value",(0,kb.anyExprType)("number"));return[(0,kb.overload)((0,kb.minScalar)("boolean"),[t.param],(0,kb.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}jF.fnIsInf=dje});var Rde=S(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.fnIsNan=void 0;var w3=be();function hje(){return[(0,w3.overload)((0,w3.minScalar)("boolean"),[(0,w3.param)("value",(0,w3.anyExprType)("number"))],(0,w3.sql)`COALESCE(${(0,w3.arg)("value")} = 'NAN'::FLOAT, false)`)]}HF.fnIsNan=hje});var Ode=S(L3=>{"use strict";Object.defineProperty(L3,"__esModule",{value:!0});L3.fnByteLength=L3.fnLength=void 0;var Uu=be();function pje(){return[(0,Uu.overload)((0,Uu.minScalar)("number"),[(0,Uu.param)("value",(0,Uu.anyExprType)("string"))],(0,Uu.sql)`LENGTH(${(0,Uu.arg)("value")})`)]}L3.fnLength=pje;function mje(){return[(0,Uu.overload)((0,Uu.minScalar)("number"),[(0,Uu.param)("value",(0,Uu.anyExprType)("string"))],(0,Uu.sql)`CEIL(BIT_LENGTH(${(0,Uu.arg)("value")}) / 8)`)]}L3.fnByteLength=mje});var Dde=S(zF=>{"use strict";Object.defineProperty(zF,"__esModule",{value:!0});zF.fnLog=void 0;var V1=be();function gje(){let t=(0,V1.makeParam)("value",(0,V1.anyExprType)("number")),e=(0,V1.makeParam)("base",(0,V1.anyExprType)("number"));return[(0,V1.overload)((0,V1.minScalar)("number"),[t.param,e.param],(0,V1.sql)`LOG(${e.arg}, ${t.arg})`)]}zF.fnLog=gje});var Nde=S(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.fnRand=void 0;var YG=be();function yje(){return[(0,YG.overload)((0,YG.minScalar)("number"),[],(0,YG.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}GF.fnRand=yje});var Fde=S(QF=>{"use strict";Object.defineProperty(QF,"__esModule",{value:!0});QF.fnRegexpExtract=void 0;var Y1=be();function Eje(){let t=(0,Y1.makeParam)("value",(0,Y1.anyExprType)("string")),e=(0,Y1.makeParam)("pattern",(0,Y1.anyExprType)("regular expression"));return[(0,Y1.overload)((0,Y1.minScalar)("string"),[t.param,e.param],(0,Y1.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}QF.fnRegexpExtract=Eje});var wde=S(I3=>{"use strict";Object.defineProperty(I3,"__esModule",{value:!0});I3.fnEndsWith=I3.fnStartsWith=void 0;var ua=be();function Aje(){let t=(0,ua.makeParam)("value",(0,ua.anyExprType)("string")),e=(0,ua.makeParam)("prefix",(0,ua.anyExprType)("string"));return[(0,ua.overload)((0,ua.minScalar)("boolean"),[t.param,e.param],(0,ua.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}I3.fnStartsWith=Aje;function Sje(){let t=(0,ua.makeParam)("value",(0,ua.anyExprType)("string")),e=(0,ua.makeParam)("suffix",(0,ua.anyExprType)("string"));return[(0,ua.overload)((0,ua.minScalar)("boolean"),[t.param,e.param],(0,ua.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}I3.fnEndsWith=Sje});var Lde=S(WF=>{"use strict";Object.defineProperty(WF,"__esModule",{value:!0});WF.fnStrpos=void 0;var K1=be();function vje(){let t=(0,K1.makeParam)("test_string",(0,K1.anyExprType)("string")),e=(0,K1.makeParam)("search_string",(0,K1.anyExprType)("string"));return[(0,K1.overload)((0,K1.minScalar)("number"),[t.param,e.param],(0,K1.sql)`POSITION(${e.arg}, ${t.arg})`)]}WF.fnStrpos=vje});var Ide=S(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF.fnTrunc=void 0;var xc=be();function _je(){let t=(0,xc.makeParam)("value",(0,xc.anyExprType)("number")),e=(0,xc.makeParam)("precision",(0,xc.anyExprType)("number"));return[(0,xc.overload)((0,xc.minScalar)("number"),[t.param],(0,xc.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,xc.overload)((0,xc.minScalar)("number"),[t.param,e.param],(0,xc.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) ELSE FLOOR(${t.arg} * POW(10, ${e.arg})) / POW(10, ${e.arg}) END`)]}VF.fnTrunc=_je});var Mde=S(M3=>{"use strict";Object.defineProperty(M3,"__esModule",{value:!0});M3.fnStringAggDistinct=M3.fnStringAgg=void 0;var hn=be();function bje(){let t=(0,hn.makeParam)("value",(0,hn.maxScalar)("string")),e=(0,hn.makeParam)("separator",(0,hn.literal)((0,hn.maxScalar)("string"))),r={type:"aggregate_order_by"};return[(0,hn.overload)((0,hn.minAggregate)("string"),[t.param],(0,hn.sql)`LISTAGG(${t.arg}, ',') WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1}),(0,hn.overload)((0,hn.minAggregate)("string"),[t.param,e.param],(0,hn.sql)`LISTAGG(${t.arg}, ${e.arg}) WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1})]}M3.fnStringAgg=bje;function Tje(){let t=(0,hn.makeParam)("value",(0,hn.maxScalar)("string")),e=(0,hn.makeParam)("separator",(0,hn.literal)((0,hn.maxScalar)("string"))),r={type:"aggregate_order_by"};return[(0,hn.overload)((0,hn.minAggregate)("string"),[t.param],(0,hn.sql)`LISTAGG(DISTINCT ${t.arg}, ',') WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1}),(0,hn.overload)((0,hn.minAggregate)("string"),[t.param,e.param],(0,hn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg}) WITHIN GROUP(${r})`,{supportsOrderBy:!0,supportsLimit:!1})]}M3.fnStringAggDistinct=Tje});var qde=S(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.SNOWFLAKE_FUNCTIONS=void 0;var Cje=A3(),Rje=bde(),Oje=Tde(),Dje=Cde(),Nje=Rde(),Pde=Ode(),Fje=Dde(),wje=Nde(),Lje=Fde(),kde=wde(),Ije=Lde(),Mje=Ide(),Bde=Mde();jn.SNOWFLAKE_FUNCTIONS=Cje.FUNCTIONS.clone();jn.SNOWFLAKE_FUNCTIONS.add("byte_length",Pde.fnByteLength);jn.SNOWFLAKE_FUNCTIONS.add("chr",Rje.fnChr);jn.SNOWFLAKE_FUNCTIONS.add("div",Oje.fnDiv);jn.SNOWFLAKE_FUNCTIONS.add("is_inf",Dje.fnIsInf);jn.SNOWFLAKE_FUNCTIONS.add("is_nan",Nje.fnIsNan);jn.SNOWFLAKE_FUNCTIONS.add("length",Pde.fnLength);jn.SNOWFLAKE_FUNCTIONS.add("log",Fje.fnLog);jn.SNOWFLAKE_FUNCTIONS.add("rand",wje.fnRand);jn.SNOWFLAKE_FUNCTIONS.add("regexp_extract",Lje.fnRegexpExtract);jn.SNOWFLAKE_FUNCTIONS.add("starts_with",kde.fnStartsWith);jn.SNOWFLAKE_FUNCTIONS.add("ends_with",kde.fnEndsWith);jn.SNOWFLAKE_FUNCTIONS.add("strpos",Ije.fnStrpos);jn.SNOWFLAKE_FUNCTIONS.add("trunc",Mje.fnTrunc);jn.SNOWFLAKE_FUNCTIONS.add("string_agg",Bde.fnStringAgg);jn.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",Bde.fnStringAggDistinct);jn.SNOWFLAKE_FUNCTIONS.seal()});var $de=S(YF=>{"use strict";Object.defineProperty(YF,"__esModule",{value:!0});YF.SNOWFLAKE_FUNCTIONS=void 0;var Pje=qde();Object.defineProperty(YF,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return Pje.SNOWFLAKE_FUNCTIONS}})});var jde=S(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.SnowflakeDialect=void 0;var kje=nx(),Ri=Ye(),Ude=$de(),Bb=l3(),Bje={day_of_week:"dayofweek",day_of_year:"dayofyear"},qje={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"}},KG=class extends Bb.Dialect{constructor(){super(...arguments),this.name="snowflake",this.defaultNumberType="NUMBER",this.defaultDecimalType="NUMBER",this.udfPrefix="__udf",this.hasFinalStage=!1,this.divisionIsInteger=!1,this.supportsSumDistinctFunction=!1,this.defaultSampling={rows:5e4},this.globalFunctions=Ude.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0}quoteTablePath(e){return e}sqlGroupSetTable(e){return`SELECT index as group_set FROM TABLE(FLATTEN(ARRAY_GENERATE_RANGE(0, ${e})))`}sqlAnyValue(e,r){return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN ${r} END) WITHIN GROUP (ORDER BY ${r} ASC NULLS LAST))[0]`}mapFields(e){return e.map(r=>`
173
+ ${r.sqlExpression} as ${r.sqlOutputName}`).join(", ")}mapFieldsForObjectConstruct(e){return e.map(r=>`'${r.rawName}', (${r.sqlExpression})`).join(", ")}sqlAggregateTurtle(e,r,n,i){let s=this.mapFieldsForObjectConstruct(r),o=n?` WITHIN GROUP (${n})`:"",a=`ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT(${s}) END)${o}`;return i===void 0?`COALESCE(${a}, [])`:`COALESCE(ARRAY_SLICE(${a}, 0, ${i}), [])`}sqlAnyValueTurtle(e,r){let n=this.mapFieldsForObjectConstruct(r);return`(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT(${n}) END) WITHIN GROUP (ORDER BY 1 ASC NULLS LAST))[0]`}sqlAnyValueLastTurtle(e,r,n){return`(ARRAY_AGG(CASE WHEN group_set=${r} THEN ${e} END) WITHIN GROUP (ORDER BY ${e} ASC NULLS LAST))[0] AS ${n}`}sqlCoaleseMeasuresInline(e,r){let n=this.mapFieldsForObjectConstruct(r),i=r.map(s=>`'${s.sqlOutputName}', NULL`).join(", ");return`COALESCE(ARRAY_AGG(CASE WHEN group_set=${e} THEN OBJECT_CONSTRUCT(${n}) END)[0], OBJECT_CONSTRUCT_KEEP_NULL(${i}))`}sqlUnnestAlias(e,r,n,i,s,o){if(s)throw new Error("not implemented yet");return`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${r}`}sqlSumDistinctHashedKey(e){e=`${e}::STRING`;let r=`to_number(substr(md5_hex(${e}), 1, 15), repeat('X', 15)) * 4294967296`,n=`to_number(substr(md5_hex(${e}), 16, 8), repeat('X', 8))`;return`(${r} + ${n}) * 0.000000001`}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,r,n,i,s){if(r==="__row_id")return`${e}.INDEX::varchar`;if(i){let o=n;return n==="string"&&(o="varchar"),`${e}.value:"${r}"::${o}`}else return`${e}."${r}"`}sqlUnnestPipelineHead(e,r){let n=r;return e&&(n=`[${n}]`),`TABLE(FLATTEN(input =>${n}))`}sqlCreateFunction(e,r){throw new Error("not implemented yet")}sqlCreateFunctionCombineLastStage(e){return`SELECT ARRAY_AGG(OBJECT_CONSTRUCT(*)) FROM ${e}`}sqlSelectAliasAsStruct(e){return`OBJECT_CONSTRUCT(${e}.*)`}sqlMaybeQuoteIdentifier(e){return`"${e}"`}sqlCreateTableAsSelect(e,r){return`
174
174
  CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
175
175
  AS (
176
176
  ${(0,kje.indent)(r)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/render",
3
- "version": "0.0.127-dev240305191049",
3
+ "version": "0.0.127-dev240306172007",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@lit/context": "^1.1.0",
28
- "@malloydata/malloy": "^0.0.127-dev240305191049",
28
+ "@malloydata/malloy": "^0.0.127-dev240306172007",
29
29
  "@types/luxon": "^2.4.0",
30
30
  "lit": "^3.0.2",
31
31
  "lodash": "^4.17.20",