@malloydata/render 0.0.143-dev240417161322 → 0.0.143-dev240418162623
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
|
@@ -3462,7 +3462,7 @@ const B2e = Kt, cr = ne, tM = CV, dp = ed, k2e = {
|
|
|
3462
3462
|
};
|
|
3463
3463
|
class M2e extends dp.Dialect {
|
|
3464
3464
|
constructor() {
|
|
3465
|
-
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 = tM.SNOWFLAKE_FUNCTIONS, this.unnestWithNumbers = !1, this.supportUnnestArrayAgg = !1, this.supportsAggDistinct = !1, this.supportsCTEinCoorelatedSubQueries = !1, this.
|
|
3465
|
+
super(...arguments), this.name = "snowflake", this.defaultNumberType = "NUMBER", this.defaultDecimalType = "NUMBER", this.udfPrefix = "__udf", this.hasFinalStage = !1, this.divisionIsInteger = !1, this.supportsSumDistinctFunction = !1, this.supportsSafeCast = !0, this.supportsNesting = !0, this.defaultSampling = { rows: 5e4 }, this.globalFunctions = tM.SNOWFLAKE_FUNCTIONS, this.unnestWithNumbers = !1, this.supportUnnestArrayAgg = !1, this.supportsAggDistinct = !1, this.supportsCTEinCoorelatedSubQueries = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsPipelinesInViews = !1;
|
|
3466
3466
|
}
|
|
3467
3467
|
// don't mess with the table pathing.
|
|
3468
3468
|
quoteTablePath(e) {
|
|
@@ -3585,18 +3585,19 @@ ${(0, B2e.indent)(n)}
|
|
|
3585
3585
|
sqlCast(e, n) {
|
|
3586
3586
|
if (n.srcType === n.dstType)
|
|
3587
3587
|
return n.expr;
|
|
3588
|
-
if (n.safe)
|
|
3589
|
-
throw new Error(
|
|
3588
|
+
if (n.safe && typeof n.srcType != "string")
|
|
3589
|
+
throw new Error(`Snowflake dialect doesn't support safe cast for a few types:
|
|
3590
|
+
refer to: https://docs.snowflake.com/en/sql-reference/functions/try_cast`);
|
|
3590
3591
|
const r = (0, dp.qtz)(e);
|
|
3591
3592
|
if (n.dstType === "date" && n.srcType === "timestamp") {
|
|
3592
|
-
let
|
|
3593
|
-
return r && (
|
|
3593
|
+
let o = n.expr;
|
|
3594
|
+
return r && (o = (0, cr.mkExpr)`CONVERT_TIMEZONE('${r}', ${o})`), (0, cr.mkExpr)`TO_DATE(${o})`;
|
|
3594
3595
|
} else if (n.dstType === "timestamp" && n.srcType === "date") {
|
|
3595
|
-
const
|
|
3596
|
-
return this.atTz(
|
|
3596
|
+
const o = (0, cr.mkExpr)`TO_TIMESTAMP(${n.expr})`;
|
|
3597
|
+
return this.atTz(o, r);
|
|
3597
3598
|
}
|
|
3598
|
-
const i = typeof n.dstType == "string" ? this.malloyTypeToSQLType({ type: n.dstType }) : n.dstType.raw;
|
|
3599
|
-
return (0, cr.mkExpr)
|
|
3599
|
+
const i = typeof n.dstType == "string" ? this.malloyTypeToSQLType({ type: n.dstType }) : n.dstType.raw, s = n.safe ? "TRY_CAST" : "CAST";
|
|
3600
|
+
return (0, cr.mkExpr)`${s}(${n.expr} AS ${i})`;
|
|
3600
3601
|
}
|
|
3601
3602
|
sqlLiteralTime(e, n, r, i) {
|
|
3602
3603
|
const s = (0, dp.qtz)(e);
|
package/dist/module/index.umd.js
CHANGED
|
@@ -150,7 +150,7 @@ ${LM}
|
|
|
150
150
|
FROM (
|
|
151
151
|
SELECT UNNEST(list(distinct {key:${e}, ${n.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
|
|
152
152
|
)
|
|
153
|
-
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,Ht.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Ht.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,Ht.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,"''")+"'"}getGlobalFunctionDef(e){return m2e.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 n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return E2e[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}}XA.DuckDBDialect=A2e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(XA,t)}(gO);var yO={},av={},IM={},$M={},lv={};Object.defineProperty(lv,"__esModule",{value:!0}),lv.fnChr=void 0;const fp=ge;function v2e(){const t=(0,fp.makeParam)("value",(0,fp.anyExprType)("number"));return[(0,fp.overload)((0,fp.minScalar)("string"),[t.param],(0,fp.sql)`COALESCE(CHR(${t.arg}), '')`)]}lv.fnChr=v2e;var cv={};Object.defineProperty(cv,"__esModule",{value:!0}),cv.fnDiv=void 0;const bf=ge;function S2e(){const t=(0,bf.makeParam)("dividend",(0,bf.anyExprType)("number")),e=(0,bf.makeParam)("divisor",(0,bf.anyExprType)("number"));return[(0,bf.overload)((0,bf.minScalar)("number"),[t.param,e.param],(0,bf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}cv.fnDiv=S2e;var fv={};Object.defineProperty(fv,"__esModule",{value:!0}),fv.fnIsInf=void 0;const xp=ge;function _2e(){const t=(0,xp.makeParam)("value",(0,xp.anyExprType)("number"));return[(0,xp.overload)((0,xp.minScalar)("boolean"),[t.param],(0,xp.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}fv.fnIsInf=_2e;var xv={};Object.defineProperty(xv,"__esModule",{value:!0}),xv.fnIsNan=void 0;const ch=ge;function C2e(){return[(0,ch.overload)((0,ch.minScalar)("boolean"),[(0,ch.param)("value",(0,ch.anyExprType)("number"))],(0,ch.sql)`COALESCE(${(0,ch.arg)("value")} = 'NAN'::FLOAT, false)`)]}xv.fnIsNan=C2e;var fh={};Object.defineProperty(fh,"__esModule",{value:!0}),fh.fnByteLength=fh.fnLength=void 0;const to=ge;function b2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`LENGTH(${(0,to.arg)("value")})`)]}fh.fnLength=b2e;function T2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`CEIL(BIT_LENGTH(${(0,to.arg)("value")}) / 8)`)]}fh.fnByteLength=T2e;var dv={};Object.defineProperty(dv,"__esModule",{value:!0}),dv.fnLog=void 0;const Tf=ge;function R2e(){const t=(0,Tf.makeParam)("value",(0,Tf.anyExprType)("number")),e=(0,Tf.makeParam)("base",(0,Tf.anyExprType)("number"));return[(0,Tf.overload)((0,Tf.minScalar)("number"),[t.param,e.param],(0,Tf.sql)`LOG(${e.arg}, ${t.arg})`)]}dv.fnLog=R2e;var hv={};Object.defineProperty(hv,"__esModule",{value:!0}),hv.fnRand=void 0;const EO=ge;function O2e(){return[(0,EO.overload)((0,EO.minScalar)("number"),[],(0,EO.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}hv.fnRand=O2e;var pv={};Object.defineProperty(pv,"__esModule",{value:!0}),pv.fnRegexpExtract=void 0;const Rf=ge;function N2e(){const t=(0,Rf.makeParam)("value",(0,Rf.anyExprType)("string")),e=(0,Rf.makeParam)("pattern",(0,Rf.anyExprType)("regular expression"));return[(0,Rf.overload)((0,Rf.minScalar)("string"),[t.param,e.param],(0,Rf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}pv.fnRegexpExtract=N2e;var xh={};Object.defineProperty(xh,"__esModule",{value:!0}),xh.fnEndsWith=xh.fnStartsWith=void 0;const Ji=ge;function D2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("prefix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnStartsWith=D2e;function F2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("suffix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnEndsWith=F2e;var gv={};Object.defineProperty(gv,"__esModule",{value:!0}),gv.fnStrpos=void 0;const Of=ge;function w2e(){const t=(0,Of.makeParam)("test_string",(0,Of.anyExprType)("string")),e=(0,Of.makeParam)("search_string",(0,Of.anyExprType)("string"));return[(0,Of.overload)((0,Of.minScalar)("number"),[t.param,e.param],(0,Of.sql)`POSITION(${e.arg}, ${t.arg})`)]}gv.fnStrpos=w2e;var mv={};Object.defineProperty(mv,"__esModule",{value:!0}),mv.fnTrunc=void 0;const Ou=ge;function L2e(){const t=(0,Ou.makeParam)("value",(0,Ou.anyExprType)("number")),e=(0,Ou.makeParam)("precision",(0,Ou.anyExprType)("number"));return[(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param],(0,Ou.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param,e.param],(0,Ou.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`)]}mv.fnTrunc=L2e;var dh={};Object.defineProperty(dh,"__esModule",{value:!0}),dh.fnStringAggDistinct=dh.fnStringAgg=void 0;const Cn=ge;function I2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAgg=I2e;function $2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAggDistinct=$2e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=cf,n=lv,r=cv,i=fv,s=xv,o=fh,u=dv,a=hv,l=pv,c=xh,f=gv,x=mv,h=dh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}($M),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=$M;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(IM),Object.defineProperty(av,"__esModule",{value:!0}),av.SnowflakeDialect=void 0;const B2e=Vt,cr=ne,BM=IM,dp=lf,k2e={day_of_week:"dayofweek",day_of_year:"dayofyear"},P2e={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 M2e extends dp.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=BM.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,this.supportsPipelinesInViews=!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=>`
|
|
153
|
+
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,Ht.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Ht.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,Ht.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,"''")+"'"}getGlobalFunctionDef(e){return m2e.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 n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return E2e[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}}XA.DuckDBDialect=A2e,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(XA,t)}(gO);var yO={},av={},IM={},$M={},lv={};Object.defineProperty(lv,"__esModule",{value:!0}),lv.fnChr=void 0;const fp=ge;function v2e(){const t=(0,fp.makeParam)("value",(0,fp.anyExprType)("number"));return[(0,fp.overload)((0,fp.minScalar)("string"),[t.param],(0,fp.sql)`COALESCE(CHR(${t.arg}), '')`)]}lv.fnChr=v2e;var cv={};Object.defineProperty(cv,"__esModule",{value:!0}),cv.fnDiv=void 0;const bf=ge;function S2e(){const t=(0,bf.makeParam)("dividend",(0,bf.anyExprType)("number")),e=(0,bf.makeParam)("divisor",(0,bf.anyExprType)("number"));return[(0,bf.overload)((0,bf.minScalar)("number"),[t.param,e.param],(0,bf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}cv.fnDiv=S2e;var fv={};Object.defineProperty(fv,"__esModule",{value:!0}),fv.fnIsInf=void 0;const xp=ge;function _2e(){const t=(0,xp.makeParam)("value",(0,xp.anyExprType)("number"));return[(0,xp.overload)((0,xp.minScalar)("boolean"),[t.param],(0,xp.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}fv.fnIsInf=_2e;var xv={};Object.defineProperty(xv,"__esModule",{value:!0}),xv.fnIsNan=void 0;const ch=ge;function C2e(){return[(0,ch.overload)((0,ch.minScalar)("boolean"),[(0,ch.param)("value",(0,ch.anyExprType)("number"))],(0,ch.sql)`COALESCE(${(0,ch.arg)("value")} = 'NAN'::FLOAT, false)`)]}xv.fnIsNan=C2e;var fh={};Object.defineProperty(fh,"__esModule",{value:!0}),fh.fnByteLength=fh.fnLength=void 0;const to=ge;function b2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`LENGTH(${(0,to.arg)("value")})`)]}fh.fnLength=b2e;function T2e(){return[(0,to.overload)((0,to.minScalar)("number"),[(0,to.param)("value",(0,to.anyExprType)("string"))],(0,to.sql)`CEIL(BIT_LENGTH(${(0,to.arg)("value")}) / 8)`)]}fh.fnByteLength=T2e;var dv={};Object.defineProperty(dv,"__esModule",{value:!0}),dv.fnLog=void 0;const Tf=ge;function R2e(){const t=(0,Tf.makeParam)("value",(0,Tf.anyExprType)("number")),e=(0,Tf.makeParam)("base",(0,Tf.anyExprType)("number"));return[(0,Tf.overload)((0,Tf.minScalar)("number"),[t.param,e.param],(0,Tf.sql)`LOG(${e.arg}, ${t.arg})`)]}dv.fnLog=R2e;var hv={};Object.defineProperty(hv,"__esModule",{value:!0}),hv.fnRand=void 0;const EO=ge;function O2e(){return[(0,EO.overload)((0,EO.minScalar)("number"),[],(0,EO.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}hv.fnRand=O2e;var pv={};Object.defineProperty(pv,"__esModule",{value:!0}),pv.fnRegexpExtract=void 0;const Rf=ge;function N2e(){const t=(0,Rf.makeParam)("value",(0,Rf.anyExprType)("string")),e=(0,Rf.makeParam)("pattern",(0,Rf.anyExprType)("regular expression"));return[(0,Rf.overload)((0,Rf.minScalar)("string"),[t.param,e.param],(0,Rf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}pv.fnRegexpExtract=N2e;var xh={};Object.defineProperty(xh,"__esModule",{value:!0}),xh.fnEndsWith=xh.fnStartsWith=void 0;const Ji=ge;function D2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("prefix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnStartsWith=D2e;function F2e(){const t=(0,Ji.makeParam)("value",(0,Ji.anyExprType)("string")),e=(0,Ji.makeParam)("suffix",(0,Ji.anyExprType)("string"));return[(0,Ji.overload)((0,Ji.minScalar)("boolean"),[t.param,e.param],(0,Ji.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}xh.fnEndsWith=F2e;var gv={};Object.defineProperty(gv,"__esModule",{value:!0}),gv.fnStrpos=void 0;const Of=ge;function w2e(){const t=(0,Of.makeParam)("test_string",(0,Of.anyExprType)("string")),e=(0,Of.makeParam)("search_string",(0,Of.anyExprType)("string"));return[(0,Of.overload)((0,Of.minScalar)("number"),[t.param,e.param],(0,Of.sql)`POSITION(${e.arg}, ${t.arg})`)]}gv.fnStrpos=w2e;var mv={};Object.defineProperty(mv,"__esModule",{value:!0}),mv.fnTrunc=void 0;const Ou=ge;function L2e(){const t=(0,Ou.makeParam)("value",(0,Ou.anyExprType)("number")),e=(0,Ou.makeParam)("precision",(0,Ou.anyExprType)("number"));return[(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param],(0,Ou.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Ou.overload)((0,Ou.minScalar)("number"),[t.param,e.param],(0,Ou.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`)]}mv.fnTrunc=L2e;var dh={};Object.defineProperty(dh,"__esModule",{value:!0}),dh.fnStringAggDistinct=dh.fnStringAgg=void 0;const Cn=ge;function I2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAgg=I2e;function $2e(){const t=(0,Cn.makeParam)("value",(0,Cn.maxScalar)("string")),e=(0,Cn.makeParam)("separator",(0,Cn.literal)((0,Cn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Cn.overload)((0,Cn.minAggregate)("string"),[t.param,e.param],(0,Cn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}dh.fnStringAggDistinct=$2e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=cf,n=lv,r=cv,i=fv,s=xv,o=fh,u=dv,a=hv,l=pv,c=xh,f=gv,x=mv,h=dh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}($M),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=$M;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(IM),Object.defineProperty(av,"__esModule",{value:!0}),av.SnowflakeDialect=void 0;const B2e=Vt,cr=ne,BM=IM,dp=lf,k2e={day_of_week:"dayofweek",day_of_year:"dayofyear"},P2e={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 M2e extends dp.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.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.globalFunctions=BM.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!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=>`
|
|
154
154
|
${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){return s?`,LATERAL FLATTEN(INPUT => ${e}) AS ${n}_1, LATERAL (SELECT ${n}_1.INDEX, object_construct('value', ${n}_1.value) as value ) as ${n}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${n}`}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}) * 0.000000001`}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i,s){if(n==="__row_id")return`${e}.INDEX::varchar`;if(i){let o=r;return r==="string"?o="varchar":r==="struct"&&(o="variant"),`${e}.value:"${n}"::${o}`}else return`${e}."${n}"`}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}"`}sqlCreateTableAsSelect(e,n){return`
|
|
155
155
|
CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
|
|
156
156
|
AS (
|
|
@@ -159,7 +159,8 @@ ${(0,B2e.indent)(n)}
|
|
|
159
159
|
`}sqlTrunc(e,n,r){const i=(0,dp.qtz)(e);let s=n.value;return i&&n.valueType==="timestamp"&&(s=(0,cr.mkExpr)`CONVERT_TIMEZONE('${i}', ${s})`),(0,cr.mkExpr)`DATE_TRUNC('${r}', ${s})`}sqlExtract(e,n,r){const i=k2e[r]||r;let s=n.value;const o=(0,dp.qtz)(e);return o&&n.valueType==="timestamp"&&(s=(0,cr.mkExpr)`CONVERT_TIMEZONE('${o}', ${s})`),(0,cr.mkExpr)`EXTRACT(${i} FROM ${s})`}sqlAlterTime(e,n,r,i){const s=(0,cr.mkExpr)`INTERVAL '${r} ${i}'`;return(0,cr.mkExpr)`((${n.value})${e}${s})`}atTz(e,n){return n!==void 0?(0,cr.mkExpr)`(
|
|
160
160
|
TO_CHAR(${e}::TIMESTAMP_NTZ, 'YYYY-MM-DD HH24:MI:SS.FF9') ||
|
|
161
161
|
TO_CHAR(CONVERT_TIMEZONE('${n}', '1970-01-01 00:00:00'), 'TZHTZM')
|
|
162
|
-
)::TIMESTAMP_TZ`:(0,cr.mkExpr)`${e}::TIMESTAMP_NTZ`}sqlNow(){return(0,cr.mkExpr)`CURRENT_TIMESTAMP()`}sqlCast(e,n){if(n.srcType===n.dstType)return n.expr;if(n.safe)throw new Error(
|
|
162
|
+
)::TIMESTAMP_TZ`:(0,cr.mkExpr)`${e}::TIMESTAMP_NTZ`}sqlNow(){return(0,cr.mkExpr)`CURRENT_TIMESTAMP()`}sqlCast(e,n){if(n.srcType===n.dstType)return n.expr;if(n.safe&&typeof n.srcType!="string")throw new Error(`Snowflake dialect doesn't support safe cast for a few types:
|
|
163
|
+
refer to: https://docs.snowflake.com/en/sql-reference/functions/try_cast`);const r=(0,dp.qtz)(e);if(n.dstType==="date"&&n.srcType==="timestamp"){let o=n.expr;return r&&(o=(0,cr.mkExpr)`CONVERT_TIMEZONE('${r}', ${o})`),(0,cr.mkExpr)`TO_DATE(${o})`}else if(n.dstType==="timestamp"&&n.srcType==="date"){const o=(0,cr.mkExpr)`TO_TIMESTAMP(${n.expr})`;return this.atTz(o,r)}const i=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,s=n.safe?"TRY_CAST":"CAST";return(0,cr.mkExpr)`${s}(${n.expr} AS ${i})`}sqlLiteralTime(e,n,r,i){const s=(0,dp.qtz)(e);let o=`'${n}'::TIMESTAMP_NTZ`;const u=i??s;if(u){const a=`TO_CHAR(CONVERT_TIMEZONE('${u}', '1970-01-01 00:00:00'), 'TZHTZM')`;o=`${`TO_CHAR(${o}, 'YYYY-MM-DD HH24:MI:SS.FF9')`} || ${a}`,o=`(${o})::TIMESTAMP_TZ`}switch(r){case"date":return`TO_DATE(${o})`;case"timestamp":return o}}sqlMeasureTime(e,n,r){let i="nanoseconds";return(e.valueType==="date"||n.valueType==="date")&&(i="seconds"),(0,cr.mkExpr)`TIMESTAMPDIFF(
|
|
163
164
|
'${r}',
|
|
164
165
|
'1970-01-01 00:00:00'::TIMESTAMP_NTZ,
|
|
165
166
|
TIMESTAMPADD(
|
|
@@ -4285,7 +4285,7 @@ const Mde = Yt, ur = ne, _P = PG, tg = zx, jde = {
|
|
|
4285
4285
|
};
|
|
4286
4286
|
class qde extends tg.Dialect {
|
|
4287
4287
|
constructor() {
|
|
4288
|
-
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 = _P.SNOWFLAKE_FUNCTIONS, this.unnestWithNumbers = !1, this.supportUnnestArrayAgg = !1, this.supportsAggDistinct = !1, this.supportsCTEinCoorelatedSubQueries = !1, this.
|
|
4288
|
+
super(...arguments), this.name = "snowflake", this.defaultNumberType = "NUMBER", this.defaultDecimalType = "NUMBER", this.udfPrefix = "__udf", this.hasFinalStage = !1, this.divisionIsInteger = !1, this.supportsSumDistinctFunction = !1, this.supportsSafeCast = !0, this.supportsNesting = !0, this.defaultSampling = { rows: 5e4 }, this.globalFunctions = _P.SNOWFLAKE_FUNCTIONS, this.unnestWithNumbers = !1, this.supportUnnestArrayAgg = !1, this.supportsAggDistinct = !1, this.supportsCTEinCoorelatedSubQueries = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsPipelinesInViews = !1;
|
|
4289
4289
|
}
|
|
4290
4290
|
// don't mess with the table pathing.
|
|
4291
4291
|
quoteTablePath(e) {
|
|
@@ -4408,18 +4408,19 @@ ${(0, Mde.indent)(n)}
|
|
|
4408
4408
|
sqlCast(e, n) {
|
|
4409
4409
|
if (n.srcType === n.dstType)
|
|
4410
4410
|
return n.expr;
|
|
4411
|
-
if (n.safe)
|
|
4412
|
-
throw new Error(
|
|
4411
|
+
if (n.safe && typeof n.srcType != "string")
|
|
4412
|
+
throw new Error(`Snowflake dialect doesn't support safe cast for a few types:
|
|
4413
|
+
refer to: https://docs.snowflake.com/en/sql-reference/functions/try_cast`);
|
|
4413
4414
|
const r = (0, tg.qtz)(e);
|
|
4414
4415
|
if (n.dstType === "date" && n.srcType === "timestamp") {
|
|
4415
|
-
let
|
|
4416
|
-
return r && (
|
|
4416
|
+
let o = n.expr;
|
|
4417
|
+
return r && (o = (0, ur.mkExpr)`CONVERT_TIMEZONE('${r}', ${o})`), (0, ur.mkExpr)`TO_DATE(${o})`;
|
|
4417
4418
|
} else if (n.dstType === "timestamp" && n.srcType === "date") {
|
|
4418
|
-
const
|
|
4419
|
-
return this.atTz(
|
|
4419
|
+
const o = (0, ur.mkExpr)`TO_TIMESTAMP(${n.expr})`;
|
|
4420
|
+
return this.atTz(o, r);
|
|
4420
4421
|
}
|
|
4421
|
-
const i = typeof n.dstType == "string" ? this.malloyTypeToSQLType({ type: n.dstType }) : n.dstType.raw;
|
|
4422
|
-
return (0, ur.mkExpr)
|
|
4422
|
+
const i = typeof n.dstType == "string" ? this.malloyTypeToSQLType({ type: n.dstType }) : n.dstType.raw, s = n.safe ? "TRY_CAST" : "CAST";
|
|
4423
|
+
return (0, ur.mkExpr)`${s}(${n.expr} AS ${i})`;
|
|
4423
4424
|
}
|
|
4424
4425
|
sqlLiteralTime(e, n, r, i) {
|
|
4425
4426
|
const s = (0, tg.qtz)(e);
|
|
@@ -150,7 +150,7 @@ ${dM}
|
|
|
150
150
|
FROM (
|
|
151
151
|
SELECT UNNEST(list(distinct {key:${e}, ${n.map((i,s)=>`val${s}: ${i}`).join(",")}})) a
|
|
152
152
|
)
|
|
153
|
-
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,qt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,qt.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,qt.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,"''")+"'"}getGlobalFunctionDef(e){return Ede.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 n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Sde[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}}UA.DuckDBDialect=vde,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(UA,t)}(RD);var ND={},JA={},hM={},pM={},ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.fnChr=void 0;const eg=ge;function _de(){const t=(0,eg.makeParam)("value",(0,eg.anyExprType)("number"));return[(0,eg.overload)((0,eg.minScalar)("string"),[t.param],(0,eg.sql)`COALESCE(CHR(${t.arg}), '')`)]}ZA.fnChr=_de;var eS={};Object.defineProperty(eS,"__esModule",{value:!0}),eS.fnDiv=void 0;const hf=ge;function Cde(){const t=(0,hf.makeParam)("dividend",(0,hf.anyExprType)("number")),e=(0,hf.makeParam)("divisor",(0,hf.anyExprType)("number"));return[(0,hf.overload)((0,hf.minScalar)("number"),[t.param,e.param],(0,hf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}eS.fnDiv=Cde;var tS={};Object.defineProperty(tS,"__esModule",{value:!0}),tS.fnIsInf=void 0;const tg=ge;function bde(){const t=(0,tg.makeParam)("value",(0,tg.anyExprType)("number"));return[(0,tg.overload)((0,tg.minScalar)("boolean"),[t.param],(0,tg.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}tS.fnIsInf=bde;var nS={};Object.defineProperty(nS,"__esModule",{value:!0}),nS.fnIsNan=void 0;const Zd=ge;function Tde(){return[(0,Zd.overload)((0,Zd.minScalar)("boolean"),[(0,Zd.param)("value",(0,Zd.anyExprType)("number"))],(0,Zd.sql)`COALESCE(${(0,Zd.arg)("value")} = 'NAN'::FLOAT, false)`)]}nS.fnIsNan=Tde;var eh={};Object.defineProperty(eh,"__esModule",{value:!0}),eh.fnByteLength=eh.fnLength=void 0;const Xs=ge;function Rde(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`LENGTH(${(0,Xs.arg)("value")})`)]}eh.fnLength=Rde;function Ode(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`CEIL(BIT_LENGTH(${(0,Xs.arg)("value")}) / 8)`)]}eh.fnByteLength=Ode;var rS={};Object.defineProperty(rS,"__esModule",{value:!0}),rS.fnLog=void 0;const pf=ge;function Nde(){const t=(0,pf.makeParam)("value",(0,pf.anyExprType)("number")),e=(0,pf.makeParam)("base",(0,pf.anyExprType)("number"));return[(0,pf.overload)((0,pf.minScalar)("number"),[t.param,e.param],(0,pf.sql)`LOG(${e.arg}, ${t.arg})`)]}rS.fnLog=Nde;var iS={};Object.defineProperty(iS,"__esModule",{value:!0}),iS.fnRand=void 0;const DD=ge;function Dde(){return[(0,DD.overload)((0,DD.minScalar)("number"),[],(0,DD.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}iS.fnRand=Dde;var sS={};Object.defineProperty(sS,"__esModule",{value:!0}),sS.fnRegexpExtract=void 0;const gf=ge;function Fde(){const t=(0,gf.makeParam)("value",(0,gf.anyExprType)("string")),e=(0,gf.makeParam)("pattern",(0,gf.anyExprType)("regular expression"));return[(0,gf.overload)((0,gf.minScalar)("string"),[t.param,e.param],(0,gf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}sS.fnRegexpExtract=Fde;var th={};Object.defineProperty(th,"__esModule",{value:!0}),th.fnEndsWith=th.fnStartsWith=void 0;const Wi=ge;function wde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("prefix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnStartsWith=wde;function Lde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("suffix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnEndsWith=Lde;var oS={};Object.defineProperty(oS,"__esModule",{value:!0}),oS.fnStrpos=void 0;const mf=ge;function Ide(){const t=(0,mf.makeParam)("test_string",(0,mf.anyExprType)("string")),e=(0,mf.makeParam)("search_string",(0,mf.anyExprType)("string"));return[(0,mf.overload)((0,mf.minScalar)("number"),[t.param,e.param],(0,mf.sql)`POSITION(${e.arg}, ${t.arg})`)]}oS.fnStrpos=Ide;var uS={};Object.defineProperty(uS,"__esModule",{value:!0}),uS.fnTrunc=void 0;const Au=ge;function $de(){const t=(0,Au.makeParam)("value",(0,Au.anyExprType)("number")),e=(0,Au.makeParam)("precision",(0,Au.anyExprType)("number"));return[(0,Au.overload)((0,Au.minScalar)("number"),[t.param],(0,Au.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Au.overload)((0,Au.minScalar)("number"),[t.param,e.param],(0,Au.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`)]}uS.fnTrunc=$de;var nh={};Object.defineProperty(nh,"__esModule",{value:!0}),nh.fnStringAggDistinct=nh.fnStringAgg=void 0;const Sn=ge;function Bde(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAgg=Bde;function kde(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAggDistinct=kde,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=Jc,n=ZA,r=eS,i=tS,s=nS,o=eh,u=rS,a=iS,l=sS,c=th,f=oS,x=uS,h=nh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}(pM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=pM;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(hM),Object.defineProperty(JA,"__esModule",{value:!0}),JA.SnowflakeDialect=void 0;const Pde=Wt,or=ne,gM=hM,ng=Kc,Mde={day_of_week:"dayofweek",day_of_year:"dayofyear"},jde={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 Ude extends ng.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=gM.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,this.supportsPipelinesInViews=!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=>`
|
|
153
|
+
)`}sqlSampleTable(e,n){if(n!==void 0){if((0,qt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,qt.isSamplingRows)(n))return`(SELECT * FROM ${e} USING SAMPLE ${n.rows})`;if((0,qt.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,"''")+"'"}getGlobalFunctionDef(e){return Ede.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 n,r;const i=(r=(n=e.match(/^(\w+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return Sde[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}}UA.DuckDBDialect=vde,function(t){var e=N&&N.__createBinding||(Object.create?function(r,i,s,o){o===void 0&&(o=s);var u=Object.getOwnPropertyDescriptor(i,s);(!u||("get"in u?!i.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(r,o,u)}:function(r,i,s,o){o===void 0&&(o=s),r[o]=i[s]}),n=N&&N.__exportStar||function(r,i){for(var s in r)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,r,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(UA,t)}(RD);var ND={},JA={},hM={},pM={},ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.fnChr=void 0;const eg=ge;function _de(){const t=(0,eg.makeParam)("value",(0,eg.anyExprType)("number"));return[(0,eg.overload)((0,eg.minScalar)("string"),[t.param],(0,eg.sql)`COALESCE(CHR(${t.arg}), '')`)]}ZA.fnChr=_de;var eS={};Object.defineProperty(eS,"__esModule",{value:!0}),eS.fnDiv=void 0;const hf=ge;function Cde(){const t=(0,hf.makeParam)("dividend",(0,hf.anyExprType)("number")),e=(0,hf.makeParam)("divisor",(0,hf.anyExprType)("number"));return[(0,hf.overload)((0,hf.minScalar)("number"),[t.param,e.param],(0,hf.sql)`CASE WHEN DIV0(${t.arg}, ${e.arg}) < 0 THEN CEIL(DIV0(${t.arg}, ${e.arg})) ELSE FLOOR(DIV0(${t.arg}, ${e.arg})) END`)]}eS.fnDiv=Cde;var tS={};Object.defineProperty(tS,"__esModule",{value:!0}),tS.fnIsInf=void 0;const tg=ge;function bde(){const t=(0,tg.makeParam)("value",(0,tg.anyExprType)("number"));return[(0,tg.overload)((0,tg.minScalar)("boolean"),[t.param],(0,tg.sql)`COALESCE(${t.arg} = 'inf'::FLOAT OR ${t.arg} = '-inf'::FLOAT, false)`)]}tS.fnIsInf=bde;var nS={};Object.defineProperty(nS,"__esModule",{value:!0}),nS.fnIsNan=void 0;const Zd=ge;function Tde(){return[(0,Zd.overload)((0,Zd.minScalar)("boolean"),[(0,Zd.param)("value",(0,Zd.anyExprType)("number"))],(0,Zd.sql)`COALESCE(${(0,Zd.arg)("value")} = 'NAN'::FLOAT, false)`)]}nS.fnIsNan=Tde;var eh={};Object.defineProperty(eh,"__esModule",{value:!0}),eh.fnByteLength=eh.fnLength=void 0;const Xs=ge;function Rde(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`LENGTH(${(0,Xs.arg)("value")})`)]}eh.fnLength=Rde;function Ode(){return[(0,Xs.overload)((0,Xs.minScalar)("number"),[(0,Xs.param)("value",(0,Xs.anyExprType)("string"))],(0,Xs.sql)`CEIL(BIT_LENGTH(${(0,Xs.arg)("value")}) / 8)`)]}eh.fnByteLength=Ode;var rS={};Object.defineProperty(rS,"__esModule",{value:!0}),rS.fnLog=void 0;const pf=ge;function Nde(){const t=(0,pf.makeParam)("value",(0,pf.anyExprType)("number")),e=(0,pf.makeParam)("base",(0,pf.anyExprType)("number"));return[(0,pf.overload)((0,pf.minScalar)("number"),[t.param,e.param],(0,pf.sql)`LOG(${e.arg}, ${t.arg})`)]}rS.fnLog=Nde;var iS={};Object.defineProperty(iS,"__esModule",{value:!0}),iS.fnRand=void 0;const DD=ge;function Dde(){return[(0,DD.overload)((0,DD.minScalar)("number"),[],(0,DD.sql)`UNIFORM(0::FLOAT, 1::FLOAT, RANDOM())`)]}iS.fnRand=Dde;var sS={};Object.defineProperty(sS,"__esModule",{value:!0}),sS.fnRegexpExtract=void 0;const gf=ge;function Fde(){const t=(0,gf.makeParam)("value",(0,gf.anyExprType)("string")),e=(0,gf.makeParam)("pattern",(0,gf.anyExprType)("regular expression"));return[(0,gf.overload)((0,gf.minScalar)("string"),[t.param,e.param],(0,gf.sql)`REGEXP_SUBSTR(${t.arg}, ${e.arg}, 1, 1, 'e')`)]}sS.fnRegexpExtract=Fde;var th={};Object.defineProperty(th,"__esModule",{value:!0}),th.fnEndsWith=th.fnStartsWith=void 0;const Wi=ge;function wde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("prefix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(STARTSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnStartsWith=wde;function Lde(){const t=(0,Wi.makeParam)("value",(0,Wi.anyExprType)("string")),e=(0,Wi.makeParam)("suffix",(0,Wi.anyExprType)("string"));return[(0,Wi.overload)((0,Wi.minScalar)("boolean"),[t.param,e.param],(0,Wi.sql)`COALESCE(ENDSWITH(${t.arg}, ${e.arg}), false)`)]}th.fnEndsWith=Lde;var oS={};Object.defineProperty(oS,"__esModule",{value:!0}),oS.fnStrpos=void 0;const mf=ge;function Ide(){const t=(0,mf.makeParam)("test_string",(0,mf.anyExprType)("string")),e=(0,mf.makeParam)("search_string",(0,mf.anyExprType)("string"));return[(0,mf.overload)((0,mf.minScalar)("number"),[t.param,e.param],(0,mf.sql)`POSITION(${e.arg}, ${t.arg})`)]}oS.fnStrpos=Ide;var uS={};Object.defineProperty(uS,"__esModule",{value:!0}),uS.fnTrunc=void 0;const Au=ge;function $de(){const t=(0,Au.makeParam)("value",(0,Au.anyExprType)("number")),e=(0,Au.makeParam)("precision",(0,Au.anyExprType)("number"));return[(0,Au.overload)((0,Au.minScalar)("number"),[t.param],(0,Au.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Au.overload)((0,Au.minScalar)("number"),[t.param,e.param],(0,Au.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`)]}uS.fnTrunc=$de;var nh={};Object.defineProperty(nh,"__esModule",{value:!0}),nh.fnStringAggDistinct=nh.fnStringAgg=void 0;const Sn=ge;function Bde(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAgg=Bde;function kde(){const t=(0,Sn.makeParam)("value",(0,Sn.maxScalar)("string")),e=(0,Sn.makeParam)("separator",(0,Sn.literal)((0,Sn.maxScalar)("string"))),n={type:"aggregate_order_by",prefix:" WITHIN GROUP(",suffix:")"};return[(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ',')${n}`,{supportsOrderBy:!0,supportsLimit:!1}),(0,Sn.overload)((0,Sn.minAggregate)("string"),[t.param,e.param],(0,Sn.sql)`LISTAGG(DISTINCT ${t.arg}, ${e.arg})${n}`,{supportsOrderBy:!0,supportsLimit:!1})]}nh.fnStringAggDistinct=kde,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;const e=Jc,n=ZA,r=eS,i=tS,s=nS,o=eh,u=rS,a=iS,l=sS,c=th,f=oS,x=uS,h=nh;t.SNOWFLAKE_FUNCTIONS=e.FUNCTIONS.clone(),t.SNOWFLAKE_FUNCTIONS.add("byte_length",o.fnByteLength),t.SNOWFLAKE_FUNCTIONS.add("chr",n.fnChr),t.SNOWFLAKE_FUNCTIONS.add("div",r.fnDiv),t.SNOWFLAKE_FUNCTIONS.add("is_inf",i.fnIsInf),t.SNOWFLAKE_FUNCTIONS.add("is_nan",s.fnIsNan),t.SNOWFLAKE_FUNCTIONS.add("length",o.fnLength),t.SNOWFLAKE_FUNCTIONS.add("log",u.fnLog),t.SNOWFLAKE_FUNCTIONS.add("rand",a.fnRand),t.SNOWFLAKE_FUNCTIONS.add("regexp_extract",l.fnRegexpExtract),t.SNOWFLAKE_FUNCTIONS.add("starts_with",c.fnStartsWith),t.SNOWFLAKE_FUNCTIONS.add("ends_with",c.fnEndsWith),t.SNOWFLAKE_FUNCTIONS.add("strpos",f.fnStrpos),t.SNOWFLAKE_FUNCTIONS.add("trunc",x.fnTrunc),t.SNOWFLAKE_FUNCTIONS.add("string_agg",h.fnStringAgg),t.SNOWFLAKE_FUNCTIONS.add("string_agg_distinct",h.fnStringAggDistinct),t.SNOWFLAKE_FUNCTIONS.seal()}(pM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SNOWFLAKE_FUNCTIONS=void 0;var e=pM;Object.defineProperty(t,"SNOWFLAKE_FUNCTIONS",{enumerable:!0,get:function(){return e.SNOWFLAKE_FUNCTIONS}})}(hM),Object.defineProperty(JA,"__esModule",{value:!0}),JA.SnowflakeDialect=void 0;const Pde=Wt,or=ne,gM=hM,ng=Kc,Mde={day_of_week:"dayofweek",day_of_year:"dayofyear"},jde={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 Ude extends ng.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.supportsSafeCast=!0,this.supportsNesting=!0,this.defaultSampling={rows:5e4},this.globalFunctions=gM.SNOWFLAKE_FUNCTIONS,this.unnestWithNumbers=!1,this.supportUnnestArrayAgg=!1,this.supportsAggDistinct=!1,this.supportsCTEinCoorelatedSubQueries=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsPipelinesInViews=!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=>`
|
|
154
154
|
${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){return s?`,LATERAL FLATTEN(INPUT => ${e}) AS ${n}_1, LATERAL (SELECT ${n}_1.INDEX, object_construct('value', ${n}_1.value) as value ) as ${n}`:`LEFT JOIN LATERAL FLATTEN(INPUT => ifnull(${e},[1])) AS ${n}`}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}) * 0.000000001`}sqlGenerateUUID(){return"UUID_STRING()"}sqlFieldReference(e,n,r,i,s){if(n==="__row_id")return`${e}.INDEX::varchar`;if(i){let o=r;return r==="string"?o="varchar":r==="struct"&&(o="variant"),`${e}.value:"${n}"::${o}`}else return`${e}."${n}"`}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}"`}sqlCreateTableAsSelect(e,n){return`
|
|
155
155
|
CREATE TEMP TABLE IF NOT EXISTS \`${e}\`
|
|
156
156
|
AS (
|
|
@@ -159,7 +159,8 @@ ${(0,Pde.indent)(n)}
|
|
|
159
159
|
`}sqlTrunc(e,n,r){const i=(0,ng.qtz)(e);let s=n.value;return i&&n.valueType==="timestamp"&&(s=(0,or.mkExpr)`CONVERT_TIMEZONE('${i}', ${s})`),(0,or.mkExpr)`DATE_TRUNC('${r}', ${s})`}sqlExtract(e,n,r){const i=Mde[r]||r;let s=n.value;const o=(0,ng.qtz)(e);return o&&n.valueType==="timestamp"&&(s=(0,or.mkExpr)`CONVERT_TIMEZONE('${o}', ${s})`),(0,or.mkExpr)`EXTRACT(${i} FROM ${s})`}sqlAlterTime(e,n,r,i){const s=(0,or.mkExpr)`INTERVAL '${r} ${i}'`;return(0,or.mkExpr)`((${n.value})${e}${s})`}atTz(e,n){return n!==void 0?(0,or.mkExpr)`(
|
|
160
160
|
TO_CHAR(${e}::TIMESTAMP_NTZ, 'YYYY-MM-DD HH24:MI:SS.FF9') ||
|
|
161
161
|
TO_CHAR(CONVERT_TIMEZONE('${n}', '1970-01-01 00:00:00'), 'TZHTZM')
|
|
162
|
-
)::TIMESTAMP_TZ`:(0,or.mkExpr)`${e}::TIMESTAMP_NTZ`}sqlNow(){return(0,or.mkExpr)`CURRENT_TIMESTAMP()`}sqlCast(e,n){if(n.srcType===n.dstType)return n.expr;if(n.safe)throw new Error(
|
|
162
|
+
)::TIMESTAMP_TZ`:(0,or.mkExpr)`${e}::TIMESTAMP_NTZ`}sqlNow(){return(0,or.mkExpr)`CURRENT_TIMESTAMP()`}sqlCast(e,n){if(n.srcType===n.dstType)return n.expr;if(n.safe&&typeof n.srcType!="string")throw new Error(`Snowflake dialect doesn't support safe cast for a few types:
|
|
163
|
+
refer to: https://docs.snowflake.com/en/sql-reference/functions/try_cast`);const r=(0,ng.qtz)(e);if(n.dstType==="date"&&n.srcType==="timestamp"){let o=n.expr;return r&&(o=(0,or.mkExpr)`CONVERT_TIMEZONE('${r}', ${o})`),(0,or.mkExpr)`TO_DATE(${o})`}else if(n.dstType==="timestamp"&&n.srcType==="date"){const o=(0,or.mkExpr)`TO_TIMESTAMP(${n.expr})`;return this.atTz(o,r)}const i=typeof n.dstType=="string"?this.malloyTypeToSQLType({type:n.dstType}):n.dstType.raw,s=n.safe?"TRY_CAST":"CAST";return(0,or.mkExpr)`${s}(${n.expr} AS ${i})`}sqlLiteralTime(e,n,r,i){const s=(0,ng.qtz)(e);let o=`'${n}'::TIMESTAMP_NTZ`;const u=i??s;if(u){const a=`TO_CHAR(CONVERT_TIMEZONE('${u}', '1970-01-01 00:00:00'), 'TZHTZM')`;o=`${`TO_CHAR(${o}, 'YYYY-MM-DD HH24:MI:SS.FF9')`} || ${a}`,o=`(${o})::TIMESTAMP_TZ`}switch(r){case"date":return`TO_DATE(${o})`;case"timestamp":return o}}sqlMeasureTime(e,n,r){let i="nanoseconds";return(e.valueType==="date"||n.valueType==="date")&&(i="seconds"),(0,or.mkExpr)`TIMESTAMPDIFF(
|
|
163
164
|
'${r}',
|
|
164
165
|
'1970-01-01 00:00:00'::TIMESTAMP_NTZ,
|
|
165
166
|
TIMESTAMPADD(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloydata/render",
|
|
3
|
-
"version": "0.0.143-
|
|
3
|
+
"version": "0.0.143-dev240418162623",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/module/index.umd.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"build-types": "tsc --build --declaration --emitDeclarationOnly"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@malloydata/malloy": "^0.0.143-
|
|
36
|
+
"@malloydata/malloy": "^0.0.143-dev240418162623",
|
|
37
37
|
"@types/luxon": "^2.4.0",
|
|
38
38
|
"component-register": "^0.8.3",
|
|
39
39
|
"lodash": "^4.17.20",
|