@malloydata/render 0.0.143-dev240413151958 → 0.0.143-dev240416173709

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.
@@ -2999,6 +2999,11 @@ class A2e extends Jd.Dialect {
2999
2999
  sqlAnyValue(e, n) {
3000
3000
  return `FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`;
3001
3001
  }
3002
+ // DuckDB WASM has an issue with returning invalid DecimalBigNum
3003
+ // values unless we explicitly cast to DOUBLE
3004
+ sqlLiteralNumber(e) {
3005
+ return e.includes(".") ? `${e}::${this.defaultNumberType}` : e;
3006
+ }
3002
3007
  mapFields(e) {
3003
3008
  return e.join(", ");
3004
3009
  }
@@ -130,7 +130,7 @@ $$ LANGUAGE SQL;
130
130
  FROM (
131
131
  SELECT UNNEST(array_agg(distinct row_to_json(row(${e},${n.join(",")}))::text)) a
132
132
  ) a
133
- )`}sqlSampleTable(e,n){if(n!==void 0){if((0,jt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,jt.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM_ROWS(${n.rows}))`;if((0,jt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}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 OM.POSTGRES_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\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return t2e[i.trim().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}}BA.PostgresDialect=n2e,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(BA,t)}(hO);var gO={},XA={},DM={},FM={},JA={};Object.defineProperty(JA,"__esModule",{value:!0}),JA.fnByteLength=void 0;const sh=ge;function r2e(){return[(0,sh.overload)((0,sh.minScalar)("number"),[(0,sh.param)("value",(0,sh.anyExprType)("string"))],(0,sh.sql)`(BIT_LENGTH(${(0,sh.arg)("value")}) / 8)`)]}JA.fnByteLength=r2e;var ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.fnDiv=void 0;const Sf=ge;function i2e(){const t=(0,Sf.makeParam)("dividend",(0,Sf.anyExprType)("number")),e=(0,Sf.makeParam)("divisor",(0,Sf.anyExprType)("number"));return[(0,Sf.overload)((0,Sf.minScalar)("number"),[t.param,e.param],(0,Sf.sql)`CASE WHEN ${t.arg} / ${e.arg} < 0 THEN CEIL(${t.arg} / ${e.arg}) ELSE FLOOR(${t.arg} / ${e.arg}) END`)]}ZA.fnDiv=i2e;var ev={};Object.defineProperty(ev,"__esModule",{value:!0}),ev.fnEndsWith=void 0;const _f=ge;function s2e(){const t=(0,_f.makeParam)("value",(0,_f.anyExprType)("string")),e=(0,_f.makeParam)("suffix",(0,_f.anyExprType)("string"));return[(0,_f.overload)((0,_f.minScalar)("boolean"),[t.param,e.param],(0,_f.sql)`COALESCE(SUFFIX(${t.arg}, ${e.arg}), false)`)]}ev.fnEndsWith=s2e;var oh={};Object.defineProperty(oh,"__esModule",{value:!0}),oh.fnLeast=oh.fnGreatest=void 0;const Va=ge,o2e=["string","number","timestamp","date","json"];function wM(t){return o2e.map(e=>(0,Va.overload)((0,Va.minScalar)(e),[(0,Va.params)("values",(0,Va.anyExprType)(e))],[(0,Va.sqlFragment)("CASE WHEN LEN(LIST_FILTER([",(0,Va.spread)((0,Va.arg)("values")),`], x -> x is null)) > 0 THEN NULL ELSE ${t}(`,(0,Va.spread)((0,Va.arg)("values")),") END")]))}const u2e=()=>wM("GREATEST");oh.fnGreatest=u2e;const a2e=()=>wM("LEAST");oh.fnLeast=a2e;var tv={};Object.defineProperty(tv,"__esModule",{value:!0}),tv.fnIsInf=void 0;const uh=ge;function l2e(){return[(0,uh.overload)((0,uh.minScalar)("boolean"),[(0,uh.param)("value",(0,uh.anyExprType)("number"))],(0,uh.sql)`COALESCE(ISINF(${(0,uh.arg)("value")}), false)`)]}tv.fnIsInf=l2e;var nv={};Object.defineProperty(nv,"__esModule",{value:!0}),nv.fnIsNan=void 0;const ah=ge;function c2e(){return[(0,ah.overload)((0,ah.minScalar)("boolean"),[(0,ah.param)("value",(0,ah.anyExprType)("number"))],(0,ah.sql)`COALESCE(ISNAN(${(0,ah.arg)("value")}), false)`)]}nv.fnIsNan=c2e;var rv={};Object.defineProperty(rv,"__esModule",{value:!0}),rv.fnLog=void 0;const Cf=ge;function f2e(){const t=(0,Cf.makeParam)("value",(0,Cf.anyExprType)("number")),e=(0,Cf.makeParam)("base",(0,Cf.anyExprType)("number"));return[(0,Cf.overload)((0,Cf.minScalar)("number"),[t.param,e.param],(0,Cf.sql)`(LN(${t.arg}) / LN(${e.arg}))`)]}rv.fnLog=f2e;var iv={};Object.defineProperty(iv,"__esModule",{value:!0}),iv.fnRand=void 0;const mO=ge;function x2e(){return[(0,mO.overload)((0,mO.minScalar)("number"),[],(0,mO.sql)`RANDOM()`)]}iv.fnRand=x2e;var sv={};Object.defineProperty(sv,"__esModule",{value:!0}),sv.fnReplace=void 0;const Xi=ge;function d2e(){const t=(0,Xi.makeParam)("value",(0,Xi.anyExprType)("string")),e=(0,Xi.makeParam)("pattern",(0,Xi.anyExprType)("string")),n=(0,Xi.makeParam)("pattern",(0,Xi.anyExprType)("regular expression")),r=(0,Xi.makeParam)("replacement",(0,Xi.anyExprType)("string"));return[(0,Xi.overload)((0,Xi.minScalar)("string"),[t.param,e.param,r.param],(0,Xi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Xi.overload)((0,Xi.minScalar)("string"),[t.param,n.param,r.param],(0,Xi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}sv.fnReplace=d2e;var ov={};Object.defineProperty(ov,"__esModule",{value:!0}),ov.fnTrunc=void 0;const Ru=ge;function h2e(){const t=(0,Ru.makeParam)("value",(0,Ru.anyExprType)("number")),e=(0,Ru.makeParam)("precision",(0,Ru.anyExprType)("number"));return[(0,Ru.overload)((0,Ru.minScalar)("number"),[t.param],(0,Ru.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Ru.overload)((0,Ru.minScalar)("number"),[t.param,e.param],(0,Ru.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`)]}ov.fnTrunc=h2e;var uv={};Object.defineProperty(uv,"__esModule",{value:!0}),uv.fnUnicode=void 0;const cp=ge;function p2e(){const t=(0,cp.makeParam)("value",(0,cp.anyExprType)("string"));return[(0,cp.overload)((0,cp.minScalar)("number"),[t.param],(0,cp.sql)`CASE WHEN ${t.arg} = '' THEN 0 ELSE UNICODE(${t.arg}) END`)]}uv.fnUnicode=p2e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;const e=cf,n=JA,r=ZA,i=ev,s=oh,o=tv,u=nv,a=rv,l=iv,c=sv,f=ov,x=uv;t.DUCKDB_FUNCTIONS=e.FUNCTIONS.clone(),t.DUCKDB_FUNCTIONS.add("trunc",f.fnTrunc),t.DUCKDB_FUNCTIONS.add("rand",l.fnRand),t.DUCKDB_FUNCTIONS.add("is_nan",u.fnIsNan),t.DUCKDB_FUNCTIONS.add("is_inf",o.fnIsInf),t.DUCKDB_FUNCTIONS.add("greatest",s.fnGreatest),t.DUCKDB_FUNCTIONS.add("least",s.fnLeast),t.DUCKDB_FUNCTIONS.add("div",r.fnDiv),t.DUCKDB_FUNCTIONS.add("byte_length",n.fnByteLength),t.DUCKDB_FUNCTIONS.add("unicode",x.fnUnicode),t.DUCKDB_FUNCTIONS.add("replace",c.fnReplace),t.DUCKDB_FUNCTIONS.add("ends_with",i.fnEndsWith),t.DUCKDB_FUNCTIONS.add("log",a.fnLog),t.DUCKDB_FUNCTIONS.seal()}(FM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;var e=FM;Object.defineProperty(t,"DUCKDB_FUNCTIONS",{enumerable:!0,get:function(){return e.DUCKDB_FUNCTIONS}})}(DM),Object.defineProperty(XA,"__esModule",{value:!0}),XA.DuckDBDialect=void 0;const Ht=ne,g2e=Vt,m2e=DM,lh=lf,LM="-- hack: split on this",y2e={day_of_week:"dow",day_of_year:"doy"},E2e={BIGINT:{type:"number",numberType:"integer"},INTEGER:{type:"number",numberType:"integer"},TINYINT:{type:"number",numberType:"integer"},SMALLINT:{type:"number",numberType:"integer"},UBIGINT:{type:"number",numberType:"integer"},UINTEGER:{type:"number",numberType:"integer"},UTINYINT:{type:"number",numberType:"integer"},USMALLINT:{type:"number",numberType:"integer"},HUGEINT:{type:"number",numberType:"integer"},DOUBLE:{type:"number",numberType:"float"},FLOAT:{type:"number",numberType:"float"},VARCHAR:{type:"string"},DATE:{type:"date"},TIMESTAMP:{type:"timestamp"},TIME:{type:"string"},DECIMAL:{type:"number",numberType:"float"},BOOLEAN:{type:"boolean"}};class A2e extends lh.Dialect{constructor(){super(...arguments),this.name="duckdb",this.defaultNumberType="DOUBLE",this.defaultDecimalType="NUMERIC",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0}get udfPrefix(){return`__udf${Math.floor(Math.random()*1e5)}`}quoteTablePath(e){return e.match(/[/*:]/)?`'${e}'`:e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT UNNEST(GENERATE_SERIES(0,${e},1)) as group_set ) as group_set`}sqlAnyValue(e,n){return`FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`}mapFields(e){return e.join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(LIST({${n.map(u=>`
133
+ )`}sqlSampleTable(e,n){if(n!==void 0){if((0,jt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,jt.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM_ROWS(${n.rows}))`;if((0,jt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}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 OM.POSTGRES_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\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return t2e[i.trim().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}}BA.PostgresDialect=n2e,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(BA,t)}(hO);var gO={},XA={},DM={},FM={},JA={};Object.defineProperty(JA,"__esModule",{value:!0}),JA.fnByteLength=void 0;const sh=ge;function r2e(){return[(0,sh.overload)((0,sh.minScalar)("number"),[(0,sh.param)("value",(0,sh.anyExprType)("string"))],(0,sh.sql)`(BIT_LENGTH(${(0,sh.arg)("value")}) / 8)`)]}JA.fnByteLength=r2e;var ZA={};Object.defineProperty(ZA,"__esModule",{value:!0}),ZA.fnDiv=void 0;const Sf=ge;function i2e(){const t=(0,Sf.makeParam)("dividend",(0,Sf.anyExprType)("number")),e=(0,Sf.makeParam)("divisor",(0,Sf.anyExprType)("number"));return[(0,Sf.overload)((0,Sf.minScalar)("number"),[t.param,e.param],(0,Sf.sql)`CASE WHEN ${t.arg} / ${e.arg} < 0 THEN CEIL(${t.arg} / ${e.arg}) ELSE FLOOR(${t.arg} / ${e.arg}) END`)]}ZA.fnDiv=i2e;var ev={};Object.defineProperty(ev,"__esModule",{value:!0}),ev.fnEndsWith=void 0;const _f=ge;function s2e(){const t=(0,_f.makeParam)("value",(0,_f.anyExprType)("string")),e=(0,_f.makeParam)("suffix",(0,_f.anyExprType)("string"));return[(0,_f.overload)((0,_f.minScalar)("boolean"),[t.param,e.param],(0,_f.sql)`COALESCE(SUFFIX(${t.arg}, ${e.arg}), false)`)]}ev.fnEndsWith=s2e;var oh={};Object.defineProperty(oh,"__esModule",{value:!0}),oh.fnLeast=oh.fnGreatest=void 0;const Va=ge,o2e=["string","number","timestamp","date","json"];function wM(t){return o2e.map(e=>(0,Va.overload)((0,Va.minScalar)(e),[(0,Va.params)("values",(0,Va.anyExprType)(e))],[(0,Va.sqlFragment)("CASE WHEN LEN(LIST_FILTER([",(0,Va.spread)((0,Va.arg)("values")),`], x -> x is null)) > 0 THEN NULL ELSE ${t}(`,(0,Va.spread)((0,Va.arg)("values")),") END")]))}const u2e=()=>wM("GREATEST");oh.fnGreatest=u2e;const a2e=()=>wM("LEAST");oh.fnLeast=a2e;var tv={};Object.defineProperty(tv,"__esModule",{value:!0}),tv.fnIsInf=void 0;const uh=ge;function l2e(){return[(0,uh.overload)((0,uh.minScalar)("boolean"),[(0,uh.param)("value",(0,uh.anyExprType)("number"))],(0,uh.sql)`COALESCE(ISINF(${(0,uh.arg)("value")}), false)`)]}tv.fnIsInf=l2e;var nv={};Object.defineProperty(nv,"__esModule",{value:!0}),nv.fnIsNan=void 0;const ah=ge;function c2e(){return[(0,ah.overload)((0,ah.minScalar)("boolean"),[(0,ah.param)("value",(0,ah.anyExprType)("number"))],(0,ah.sql)`COALESCE(ISNAN(${(0,ah.arg)("value")}), false)`)]}nv.fnIsNan=c2e;var rv={};Object.defineProperty(rv,"__esModule",{value:!0}),rv.fnLog=void 0;const Cf=ge;function f2e(){const t=(0,Cf.makeParam)("value",(0,Cf.anyExprType)("number")),e=(0,Cf.makeParam)("base",(0,Cf.anyExprType)("number"));return[(0,Cf.overload)((0,Cf.minScalar)("number"),[t.param,e.param],(0,Cf.sql)`(LN(${t.arg}) / LN(${e.arg}))`)]}rv.fnLog=f2e;var iv={};Object.defineProperty(iv,"__esModule",{value:!0}),iv.fnRand=void 0;const mO=ge;function x2e(){return[(0,mO.overload)((0,mO.minScalar)("number"),[],(0,mO.sql)`RANDOM()`)]}iv.fnRand=x2e;var sv={};Object.defineProperty(sv,"__esModule",{value:!0}),sv.fnReplace=void 0;const Xi=ge;function d2e(){const t=(0,Xi.makeParam)("value",(0,Xi.anyExprType)("string")),e=(0,Xi.makeParam)("pattern",(0,Xi.anyExprType)("string")),n=(0,Xi.makeParam)("pattern",(0,Xi.anyExprType)("regular expression")),r=(0,Xi.makeParam)("replacement",(0,Xi.anyExprType)("string"));return[(0,Xi.overload)((0,Xi.minScalar)("string"),[t.param,e.param,r.param],(0,Xi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Xi.overload)((0,Xi.minScalar)("string"),[t.param,n.param,r.param],(0,Xi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}sv.fnReplace=d2e;var ov={};Object.defineProperty(ov,"__esModule",{value:!0}),ov.fnTrunc=void 0;const Ru=ge;function h2e(){const t=(0,Ru.makeParam)("value",(0,Ru.anyExprType)("number")),e=(0,Ru.makeParam)("precision",(0,Ru.anyExprType)("number"));return[(0,Ru.overload)((0,Ru.minScalar)("number"),[t.param],(0,Ru.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Ru.overload)((0,Ru.minScalar)("number"),[t.param,e.param],(0,Ru.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`)]}ov.fnTrunc=h2e;var uv={};Object.defineProperty(uv,"__esModule",{value:!0}),uv.fnUnicode=void 0;const cp=ge;function p2e(){const t=(0,cp.makeParam)("value",(0,cp.anyExprType)("string"));return[(0,cp.overload)((0,cp.minScalar)("number"),[t.param],(0,cp.sql)`CASE WHEN ${t.arg} = '' THEN 0 ELSE UNICODE(${t.arg}) END`)]}uv.fnUnicode=p2e,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;const e=cf,n=JA,r=ZA,i=ev,s=oh,o=tv,u=nv,a=rv,l=iv,c=sv,f=ov,x=uv;t.DUCKDB_FUNCTIONS=e.FUNCTIONS.clone(),t.DUCKDB_FUNCTIONS.add("trunc",f.fnTrunc),t.DUCKDB_FUNCTIONS.add("rand",l.fnRand),t.DUCKDB_FUNCTIONS.add("is_nan",u.fnIsNan),t.DUCKDB_FUNCTIONS.add("is_inf",o.fnIsInf),t.DUCKDB_FUNCTIONS.add("greatest",s.fnGreatest),t.DUCKDB_FUNCTIONS.add("least",s.fnLeast),t.DUCKDB_FUNCTIONS.add("div",r.fnDiv),t.DUCKDB_FUNCTIONS.add("byte_length",n.fnByteLength),t.DUCKDB_FUNCTIONS.add("unicode",x.fnUnicode),t.DUCKDB_FUNCTIONS.add("replace",c.fnReplace),t.DUCKDB_FUNCTIONS.add("ends_with",i.fnEndsWith),t.DUCKDB_FUNCTIONS.add("log",a.fnLog),t.DUCKDB_FUNCTIONS.seal()}(FM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;var e=FM;Object.defineProperty(t,"DUCKDB_FUNCTIONS",{enumerable:!0,get:function(){return e.DUCKDB_FUNCTIONS}})}(DM),Object.defineProperty(XA,"__esModule",{value:!0}),XA.DuckDBDialect=void 0;const Ht=ne,g2e=Vt,m2e=DM,lh=lf,LM="-- hack: split on this",y2e={day_of_week:"dow",day_of_year:"doy"},E2e={BIGINT:{type:"number",numberType:"integer"},INTEGER:{type:"number",numberType:"integer"},TINYINT:{type:"number",numberType:"integer"},SMALLINT:{type:"number",numberType:"integer"},UBIGINT:{type:"number",numberType:"integer"},UINTEGER:{type:"number",numberType:"integer"},UTINYINT:{type:"number",numberType:"integer"},USMALLINT:{type:"number",numberType:"integer"},HUGEINT:{type:"number",numberType:"integer"},DOUBLE:{type:"number",numberType:"float"},FLOAT:{type:"number",numberType:"float"},VARCHAR:{type:"string"},DATE:{type:"date"},TIMESTAMP:{type:"timestamp"},TIME:{type:"string"},DECIMAL:{type:"number",numberType:"float"},BOOLEAN:{type:"boolean"}};class A2e extends lh.Dialect{constructor(){super(...arguments),this.name="duckdb",this.defaultNumberType="DOUBLE",this.defaultDecimalType="NUMERIC",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0}get udfPrefix(){return`__udf${Math.floor(Math.random()*1e5)}`}quoteTablePath(e){return e.match(/[/*:]/)?`'${e}'`:e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT UNNEST(GENERATE_SERIES(0,${e},1)) as group_set ) as group_set`}sqlAnyValue(e,n){return`FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`}sqlLiteralNumber(e){return e.includes(".")?`${e}::${this.defaultNumberType}`:e}mapFields(e){return e.join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(LIST({${n.map(u=>`
134
134
  ${u.sqlOutputName}: ${u.sqlExpression}`).join(", ")}} ${r}) FILTER (WHERE group_set=${e})${s},[])`}sqlAnyValueTurtle(e,n){const r=n.map(i=>`${i.sqlExpression} as ${i.sqlOutputName}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN STRUCT_PACK(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=n.map(s=>`${s.sqlOutputName}: ${s.sqlExpression} `).join(", "),i=n.map(s=>`${s.sqlOutputName}: NULL`).join(", ");return`COALESCE(FIRST({${r}}) FILTER(WHERE group_set=${e}), {${i}})`}sqlUnnestAlias(e,n,r,i,s,o){return this.unnestWithNumbers?`LEFT JOIN (select UNNEST(generate_series(1,
135
135
  ${o?"100000":`array_length(${e})`},
136
136
  1)) as __row_id) as ${n} ON ${n}.__row_id <= array_length(${e})`:i?`LEFT JOIN LATERAL (SELECT UNNEST(GENERATE_SERIES(1, length(${e}),1)) as __row_id, UNNEST(${e}), 1 as ignoreme) as ${n}_outer(__row_id, ${n},ignoreme) ON ${n}_outer.ignoreme=1`:`LEFT JOIN LATERAL (SELECT UNNEST(${e}), 1 as ignoreme) as ${n}_outer(${n},ignoreme) ON ${n}_outer.ignoreme=1`}sqlSumDistinctHashedKey(e){return"uses sumDistinctFunction, should not be called"}sqlGenerateUUID(){return"GEN_RANDOM_UUID()"}sqlDateToString(e){return`(${e})::date::varchar`}sqlFieldReference(e,n,r,i,s){return!this.unnestWithNumbers&&n==="__row_id"?`${e}_outer.__row_id`:s?e:`${e}.${this.sqlMaybeQuoteIdentifier(n)}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`(SELECT UNNEST(${r}) as base)`}sqlCreateFunction(e,n){return`DROP MACRO IF EXISTS ${e};
@@ -3822,6 +3822,11 @@ class _de extends qd.Dialect {
3822
3822
  sqlAnyValue(e, n) {
3823
3823
  return `FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`;
3824
3824
  }
3825
+ // DuckDB WASM has an issue with returning invalid DecimalBigNum
3826
+ // values unless we explicitly cast to DOUBLE
3827
+ sqlLiteralNumber(e) {
3828
+ return e.includes(".") ? `${e}::${this.defaultNumberType}` : e;
3829
+ }
3825
3830
  mapFields(e) {
3826
3831
  return e.join(", ");
3827
3832
  }
@@ -130,7 +130,7 @@ $$ LANGUAGE SQL;
130
130
  FROM (
131
131
  SELECT UNNEST(array_agg(distinct row_to_json(row(${e},${n.join(",")}))::text)) a
132
132
  ) a
133
- )`}sqlSampleTable(e,n){if(n!==void 0){if((0,Mt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Mt.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM_ROWS(${n.rows}))`;if((0,Mt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}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 aM.POSTGRES_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\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return rde[i.trim().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}}TA.PostgresDialect=ide,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(TA,t)}(bD);var RD={},UA={},cM={},fM={},qA={};Object.defineProperty(qA,"__esModule",{value:!0}),qA.fnByteLength=void 0;const Vd=ge;function sde(){return[(0,Vd.overload)((0,Vd.minScalar)("number"),[(0,Vd.param)("value",(0,Vd.anyExprType)("string"))],(0,Vd.sql)`(BIT_LENGTH(${(0,Vd.arg)("value")}) / 8)`)]}qA.fnByteLength=sde;var HA={};Object.defineProperty(HA,"__esModule",{value:!0}),HA.fnDiv=void 0;const ff=ge;function ode(){const t=(0,ff.makeParam)("dividend",(0,ff.anyExprType)("number")),e=(0,ff.makeParam)("divisor",(0,ff.anyExprType)("number"));return[(0,ff.overload)((0,ff.minScalar)("number"),[t.param,e.param],(0,ff.sql)`CASE WHEN ${t.arg} / ${e.arg} < 0 THEN CEIL(${t.arg} / ${e.arg}) ELSE FLOOR(${t.arg} / ${e.arg}) END`)]}HA.fnDiv=ode;var zA={};Object.defineProperty(zA,"__esModule",{value:!0}),zA.fnEndsWith=void 0;const xf=ge;function ude(){const t=(0,xf.makeParam)("value",(0,xf.anyExprType)("string")),e=(0,xf.makeParam)("suffix",(0,xf.anyExprType)("string"));return[(0,xf.overload)((0,xf.minScalar)("boolean"),[t.param,e.param],(0,xf.sql)`COALESCE(SUFFIX(${t.arg}, ${e.arg}), false)`)]}zA.fnEndsWith=ude;var Yd={};Object.defineProperty(Yd,"__esModule",{value:!0}),Yd.fnLeast=Yd.fnGreatest=void 0;const qa=ge,ade=["string","number","timestamp","date","json"];function xM(t){return ade.map(e=>(0,qa.overload)((0,qa.minScalar)(e),[(0,qa.params)("values",(0,qa.anyExprType)(e))],[(0,qa.sqlFragment)("CASE WHEN LEN(LIST_FILTER([",(0,qa.spread)((0,qa.arg)("values")),`], x -> x is null)) > 0 THEN NULL ELSE ${t}(`,(0,qa.spread)((0,qa.arg)("values")),") END")]))}const lde=()=>xM("GREATEST");Yd.fnGreatest=lde;const cde=()=>xM("LEAST");Yd.fnLeast=cde;var QA={};Object.defineProperty(QA,"__esModule",{value:!0}),QA.fnIsInf=void 0;const Xd=ge;function fde(){return[(0,Xd.overload)((0,Xd.minScalar)("boolean"),[(0,Xd.param)("value",(0,Xd.anyExprType)("number"))],(0,Xd.sql)`COALESCE(ISINF(${(0,Xd.arg)("value")}), false)`)]}QA.fnIsInf=fde;var GA={};Object.defineProperty(GA,"__esModule",{value:!0}),GA.fnIsNan=void 0;const Kd=ge;function xde(){return[(0,Kd.overload)((0,Kd.minScalar)("boolean"),[(0,Kd.param)("value",(0,Kd.anyExprType)("number"))],(0,Kd.sql)`COALESCE(ISNAN(${(0,Kd.arg)("value")}), false)`)]}GA.fnIsNan=xde;var WA={};Object.defineProperty(WA,"__esModule",{value:!0}),WA.fnLog=void 0;const df=ge;function dde(){const t=(0,df.makeParam)("value",(0,df.anyExprType)("number")),e=(0,df.makeParam)("base",(0,df.anyExprType)("number"));return[(0,df.overload)((0,df.minScalar)("number"),[t.param,e.param],(0,df.sql)`(LN(${t.arg}) / LN(${e.arg}))`)]}WA.fnLog=dde;var VA={};Object.defineProperty(VA,"__esModule",{value:!0}),VA.fnRand=void 0;const OD=ge;function hde(){return[(0,OD.overload)((0,OD.minScalar)("number"),[],(0,OD.sql)`RANDOM()`)]}VA.fnRand=hde;var YA={};Object.defineProperty(YA,"__esModule",{value:!0}),YA.fnReplace=void 0;const Gi=ge;function pde(){const t=(0,Gi.makeParam)("value",(0,Gi.anyExprType)("string")),e=(0,Gi.makeParam)("pattern",(0,Gi.anyExprType)("string")),n=(0,Gi.makeParam)("pattern",(0,Gi.anyExprType)("regular expression")),r=(0,Gi.makeParam)("replacement",(0,Gi.anyExprType)("string"));return[(0,Gi.overload)((0,Gi.minScalar)("string"),[t.param,e.param,r.param],(0,Gi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Gi.overload)((0,Gi.minScalar)("string"),[t.param,n.param,r.param],(0,Gi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}YA.fnReplace=pde;var XA={};Object.defineProperty(XA,"__esModule",{value:!0}),XA.fnTrunc=void 0;const Eu=ge;function gde(){const t=(0,Eu.makeParam)("value",(0,Eu.anyExprType)("number")),e=(0,Eu.makeParam)("precision",(0,Eu.anyExprType)("number"));return[(0,Eu.overload)((0,Eu.minScalar)("number"),[t.param],(0,Eu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Eu.overload)((0,Eu.minScalar)("number"),[t.param,e.param],(0,Eu.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`)]}XA.fnTrunc=gde;var KA={};Object.defineProperty(KA,"__esModule",{value:!0}),KA.fnUnicode=void 0;const Z2=ge;function mde(){const t=(0,Z2.makeParam)("value",(0,Z2.anyExprType)("string"));return[(0,Z2.overload)((0,Z2.minScalar)("number"),[t.param],(0,Z2.sql)`CASE WHEN ${t.arg} = '' THEN 0 ELSE UNICODE(${t.arg}) END`)]}KA.fnUnicode=mde,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;const e=Jc,n=qA,r=HA,i=zA,s=Yd,o=QA,u=GA,a=WA,l=VA,c=YA,f=XA,x=KA;t.DUCKDB_FUNCTIONS=e.FUNCTIONS.clone(),t.DUCKDB_FUNCTIONS.add("trunc",f.fnTrunc),t.DUCKDB_FUNCTIONS.add("rand",l.fnRand),t.DUCKDB_FUNCTIONS.add("is_nan",u.fnIsNan),t.DUCKDB_FUNCTIONS.add("is_inf",o.fnIsInf),t.DUCKDB_FUNCTIONS.add("greatest",s.fnGreatest),t.DUCKDB_FUNCTIONS.add("least",s.fnLeast),t.DUCKDB_FUNCTIONS.add("div",r.fnDiv),t.DUCKDB_FUNCTIONS.add("byte_length",n.fnByteLength),t.DUCKDB_FUNCTIONS.add("unicode",x.fnUnicode),t.DUCKDB_FUNCTIONS.add("replace",c.fnReplace),t.DUCKDB_FUNCTIONS.add("ends_with",i.fnEndsWith),t.DUCKDB_FUNCTIONS.add("log",a.fnLog),t.DUCKDB_FUNCTIONS.seal()}(fM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;var e=fM;Object.defineProperty(t,"DUCKDB_FUNCTIONS",{enumerable:!0,get:function(){return e.DUCKDB_FUNCTIONS}})}(cM),Object.defineProperty(UA,"__esModule",{value:!0}),UA.DuckDBDialect=void 0;const qt=ne,yde=Wt,Ede=cM,Jd=Kc,dM="-- hack: split on this",Ade={day_of_week:"dow",day_of_year:"doy"},Sde={BIGINT:{type:"number",numberType:"integer"},INTEGER:{type:"number",numberType:"integer"},TINYINT:{type:"number",numberType:"integer"},SMALLINT:{type:"number",numberType:"integer"},UBIGINT:{type:"number",numberType:"integer"},UINTEGER:{type:"number",numberType:"integer"},UTINYINT:{type:"number",numberType:"integer"},USMALLINT:{type:"number",numberType:"integer"},HUGEINT:{type:"number",numberType:"integer"},DOUBLE:{type:"number",numberType:"float"},FLOAT:{type:"number",numberType:"float"},VARCHAR:{type:"string"},DATE:{type:"date"},TIMESTAMP:{type:"timestamp"},TIME:{type:"string"},DECIMAL:{type:"number",numberType:"float"},BOOLEAN:{type:"boolean"}};class vde extends Jd.Dialect{constructor(){super(...arguments),this.name="duckdb",this.defaultNumberType="DOUBLE",this.defaultDecimalType="NUMERIC",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0}get udfPrefix(){return`__udf${Math.floor(Math.random()*1e5)}`}quoteTablePath(e){return e.match(/[/*:]/)?`'${e}'`:e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT UNNEST(GENERATE_SERIES(0,${e},1)) as group_set ) as group_set`}sqlAnyValue(e,n){return`FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`}mapFields(e){return e.join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(LIST({${n.map(u=>`
133
+ )`}sqlSampleTable(e,n){if(n!==void 0){if((0,Mt.isSamplingEnable)(n)&&n.enable&&(n=this.defaultSampling),(0,Mt.isSamplingRows)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM_ROWS(${n.rows}))`;if((0,Mt.isSamplingPercent)(n))return`(SELECT * FROM ${e} TABLESAMPLE SYSTEM (${n.percent}))`}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 aM.POSTGRES_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\s]+)/))===null||n===void 0?void 0:n.at(0))!==null&&r!==void 0?r:e;return rde[i.trim().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}}TA.PostgresDialect=ide,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(TA,t)}(bD);var RD={},UA={},cM={},fM={},qA={};Object.defineProperty(qA,"__esModule",{value:!0}),qA.fnByteLength=void 0;const Vd=ge;function sde(){return[(0,Vd.overload)((0,Vd.minScalar)("number"),[(0,Vd.param)("value",(0,Vd.anyExprType)("string"))],(0,Vd.sql)`(BIT_LENGTH(${(0,Vd.arg)("value")}) / 8)`)]}qA.fnByteLength=sde;var HA={};Object.defineProperty(HA,"__esModule",{value:!0}),HA.fnDiv=void 0;const ff=ge;function ode(){const t=(0,ff.makeParam)("dividend",(0,ff.anyExprType)("number")),e=(0,ff.makeParam)("divisor",(0,ff.anyExprType)("number"));return[(0,ff.overload)((0,ff.minScalar)("number"),[t.param,e.param],(0,ff.sql)`CASE WHEN ${t.arg} / ${e.arg} < 0 THEN CEIL(${t.arg} / ${e.arg}) ELSE FLOOR(${t.arg} / ${e.arg}) END`)]}HA.fnDiv=ode;var zA={};Object.defineProperty(zA,"__esModule",{value:!0}),zA.fnEndsWith=void 0;const xf=ge;function ude(){const t=(0,xf.makeParam)("value",(0,xf.anyExprType)("string")),e=(0,xf.makeParam)("suffix",(0,xf.anyExprType)("string"));return[(0,xf.overload)((0,xf.minScalar)("boolean"),[t.param,e.param],(0,xf.sql)`COALESCE(SUFFIX(${t.arg}, ${e.arg}), false)`)]}zA.fnEndsWith=ude;var Yd={};Object.defineProperty(Yd,"__esModule",{value:!0}),Yd.fnLeast=Yd.fnGreatest=void 0;const qa=ge,ade=["string","number","timestamp","date","json"];function xM(t){return ade.map(e=>(0,qa.overload)((0,qa.minScalar)(e),[(0,qa.params)("values",(0,qa.anyExprType)(e))],[(0,qa.sqlFragment)("CASE WHEN LEN(LIST_FILTER([",(0,qa.spread)((0,qa.arg)("values")),`], x -> x is null)) > 0 THEN NULL ELSE ${t}(`,(0,qa.spread)((0,qa.arg)("values")),") END")]))}const lde=()=>xM("GREATEST");Yd.fnGreatest=lde;const cde=()=>xM("LEAST");Yd.fnLeast=cde;var QA={};Object.defineProperty(QA,"__esModule",{value:!0}),QA.fnIsInf=void 0;const Xd=ge;function fde(){return[(0,Xd.overload)((0,Xd.minScalar)("boolean"),[(0,Xd.param)("value",(0,Xd.anyExprType)("number"))],(0,Xd.sql)`COALESCE(ISINF(${(0,Xd.arg)("value")}), false)`)]}QA.fnIsInf=fde;var GA={};Object.defineProperty(GA,"__esModule",{value:!0}),GA.fnIsNan=void 0;const Kd=ge;function xde(){return[(0,Kd.overload)((0,Kd.minScalar)("boolean"),[(0,Kd.param)("value",(0,Kd.anyExprType)("number"))],(0,Kd.sql)`COALESCE(ISNAN(${(0,Kd.arg)("value")}), false)`)]}GA.fnIsNan=xde;var WA={};Object.defineProperty(WA,"__esModule",{value:!0}),WA.fnLog=void 0;const df=ge;function dde(){const t=(0,df.makeParam)("value",(0,df.anyExprType)("number")),e=(0,df.makeParam)("base",(0,df.anyExprType)("number"));return[(0,df.overload)((0,df.minScalar)("number"),[t.param,e.param],(0,df.sql)`(LN(${t.arg}) / LN(${e.arg}))`)]}WA.fnLog=dde;var VA={};Object.defineProperty(VA,"__esModule",{value:!0}),VA.fnRand=void 0;const OD=ge;function hde(){return[(0,OD.overload)((0,OD.minScalar)("number"),[],(0,OD.sql)`RANDOM()`)]}VA.fnRand=hde;var YA={};Object.defineProperty(YA,"__esModule",{value:!0}),YA.fnReplace=void 0;const Gi=ge;function pde(){const t=(0,Gi.makeParam)("value",(0,Gi.anyExprType)("string")),e=(0,Gi.makeParam)("pattern",(0,Gi.anyExprType)("string")),n=(0,Gi.makeParam)("pattern",(0,Gi.anyExprType)("regular expression")),r=(0,Gi.makeParam)("replacement",(0,Gi.anyExprType)("string"));return[(0,Gi.overload)((0,Gi.minScalar)("string"),[t.param,e.param,r.param],(0,Gi.sql)`REPLACE(${t.arg}, ${e.arg}, ${r.arg})`),(0,Gi.overload)((0,Gi.minScalar)("string"),[t.param,n.param,r.param],(0,Gi.sql)`REGEXP_REPLACE(${t.arg}, ${n.arg}, ${r.arg}, 'g')`)]}YA.fnReplace=pde;var XA={};Object.defineProperty(XA,"__esModule",{value:!0}),XA.fnTrunc=void 0;const Eu=ge;function gde(){const t=(0,Eu.makeParam)("value",(0,Eu.anyExprType)("number")),e=(0,Eu.makeParam)("precision",(0,Eu.anyExprType)("number"));return[(0,Eu.overload)((0,Eu.minScalar)("number"),[t.param],(0,Eu.sql)`CASE WHEN ${t.arg} < 0 THEN CEIL(${t.arg}) ELSE FLOOR(${t.arg}) END`),(0,Eu.overload)((0,Eu.minScalar)("number"),[t.param,e.param],(0,Eu.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`)]}XA.fnTrunc=gde;var KA={};Object.defineProperty(KA,"__esModule",{value:!0}),KA.fnUnicode=void 0;const Z2=ge;function mde(){const t=(0,Z2.makeParam)("value",(0,Z2.anyExprType)("string"));return[(0,Z2.overload)((0,Z2.minScalar)("number"),[t.param],(0,Z2.sql)`CASE WHEN ${t.arg} = '' THEN 0 ELSE UNICODE(${t.arg}) END`)]}KA.fnUnicode=mde,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;const e=Jc,n=qA,r=HA,i=zA,s=Yd,o=QA,u=GA,a=WA,l=VA,c=YA,f=XA,x=KA;t.DUCKDB_FUNCTIONS=e.FUNCTIONS.clone(),t.DUCKDB_FUNCTIONS.add("trunc",f.fnTrunc),t.DUCKDB_FUNCTIONS.add("rand",l.fnRand),t.DUCKDB_FUNCTIONS.add("is_nan",u.fnIsNan),t.DUCKDB_FUNCTIONS.add("is_inf",o.fnIsInf),t.DUCKDB_FUNCTIONS.add("greatest",s.fnGreatest),t.DUCKDB_FUNCTIONS.add("least",s.fnLeast),t.DUCKDB_FUNCTIONS.add("div",r.fnDiv),t.DUCKDB_FUNCTIONS.add("byte_length",n.fnByteLength),t.DUCKDB_FUNCTIONS.add("unicode",x.fnUnicode),t.DUCKDB_FUNCTIONS.add("replace",c.fnReplace),t.DUCKDB_FUNCTIONS.add("ends_with",i.fnEndsWith),t.DUCKDB_FUNCTIONS.add("log",a.fnLog),t.DUCKDB_FUNCTIONS.seal()}(fM),function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.DUCKDB_FUNCTIONS=void 0;var e=fM;Object.defineProperty(t,"DUCKDB_FUNCTIONS",{enumerable:!0,get:function(){return e.DUCKDB_FUNCTIONS}})}(cM),Object.defineProperty(UA,"__esModule",{value:!0}),UA.DuckDBDialect=void 0;const qt=ne,yde=Wt,Ede=cM,Jd=Kc,dM="-- hack: split on this",Ade={day_of_week:"dow",day_of_year:"doy"},Sde={BIGINT:{type:"number",numberType:"integer"},INTEGER:{type:"number",numberType:"integer"},TINYINT:{type:"number",numberType:"integer"},SMALLINT:{type:"number",numberType:"integer"},UBIGINT:{type:"number",numberType:"integer"},UINTEGER:{type:"number",numberType:"integer"},UTINYINT:{type:"number",numberType:"integer"},USMALLINT:{type:"number",numberType:"integer"},HUGEINT:{type:"number",numberType:"integer"},DOUBLE:{type:"number",numberType:"float"},FLOAT:{type:"number",numberType:"float"},VARCHAR:{type:"string"},DATE:{type:"date"},TIMESTAMP:{type:"timestamp"},TIME:{type:"string"},DECIMAL:{type:"number",numberType:"float"},BOOLEAN:{type:"boolean"}};class vde extends Jd.Dialect{constructor(){super(...arguments),this.name="duckdb",this.defaultNumberType="DOUBLE",this.defaultDecimalType="NUMERIC",this.hasFinalStage=!1,this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.dontUnionIndex=!0,this.supportsQualify=!0,this.supportsSafeCast=!0,this.supportsNesting=!0}get udfPrefix(){return`__udf${Math.floor(Math.random()*1e5)}`}quoteTablePath(e){return e.match(/[/*:]/)?`'${e}'`:e}sqlGroupSetTable(e){return`CROSS JOIN (SELECT UNNEST(GENERATE_SERIES(0,${e},1)) as group_set ) as group_set`}sqlAnyValue(e,n){return`FIRST(${n}) FILTER (WHERE ${n} IS NOT NULL)`}sqlLiteralNumber(e){return e.includes(".")?`${e}::${this.defaultNumberType}`:e}mapFields(e){return e.join(", ")}sqlAggregateTurtle(e,n,r,i){let s="";return i!==void 0&&(s+=`[1:${i}]`),`COALESCE(LIST({${n.map(u=>`
134
134
  ${u.sqlOutputName}: ${u.sqlExpression}`).join(", ")}} ${r}) FILTER (WHERE group_set=${e})${s},[])`}sqlAnyValueTurtle(e,n){const r=n.map(i=>`${i.sqlExpression} as ${i.sqlOutputName}`).join(", ");return`ANY_VALUE(CASE WHEN group_set=${e} THEN STRUCT_PACK(${r}))`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=n.map(s=>`${s.sqlOutputName}: ${s.sqlExpression} `).join(", "),i=n.map(s=>`${s.sqlOutputName}: NULL`).join(", ");return`COALESCE(FIRST({${r}}) FILTER(WHERE group_set=${e}), {${i}})`}sqlUnnestAlias(e,n,r,i,s,o){return this.unnestWithNumbers?`LEFT JOIN (select UNNEST(generate_series(1,
135
135
  ${o?"100000":`array_length(${e})`},
136
136
  1)) as __row_id) as ${n} ON ${n}.__row_id <= array_length(${e})`:i?`LEFT JOIN LATERAL (SELECT UNNEST(GENERATE_SERIES(1, length(${e}),1)) as __row_id, UNNEST(${e}), 1 as ignoreme) as ${n}_outer(__row_id, ${n},ignoreme) ON ${n}_outer.ignoreme=1`:`LEFT JOIN LATERAL (SELECT UNNEST(${e}), 1 as ignoreme) as ${n}_outer(${n},ignoreme) ON ${n}_outer.ignoreme=1`}sqlSumDistinctHashedKey(e){return"uses sumDistinctFunction, should not be called"}sqlGenerateUUID(){return"GEN_RANDOM_UUID()"}sqlDateToString(e){return`(${e})::date::varchar`}sqlFieldReference(e,n,r,i,s){return!this.unnestWithNumbers&&n==="__row_id"?`${e}_outer.__row_id`:s?e:`${e}.${this.sqlMaybeQuoteIdentifier(n)}`}sqlUnnestPipelineHead(e,n){let r=n;return e&&(r=`[${r}]`),`(SELECT UNNEST(${r}) as base)`}sqlCreateFunction(e,n){return`DROP MACRO IF EXISTS ${e};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/render",
3
- "version": "0.0.143-dev240413151958",
3
+ "version": "0.0.143-dev240416173709",
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-dev240413151958",
36
+ "@malloydata/malloy": "^0.0.143-dev240416173709",
37
37
  "@types/luxon": "^2.4.0",
38
38
  "component-register": "^0.8.3",
39
39
  "lodash": "^4.17.20",