@malloydata/render 0.0.196-dev241008013446 → 0.0.196

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.
@@ -3836,7 +3836,9 @@ q4.MYSQL_MALLOY_STANDARD_OVERLOADS = {
3836
3836
  }
3837
3837
  },
3838
3838
  byte_length: { sql: "(LENGTH(CAST(${value} AS VARBINARY)))" },
3839
- chr: { sql: "CASE WHEN ${value} = 0 THEN '' ELSE CHR(${value}) END" }
3839
+ chr: {
3840
+ sql: "CASE WHEN ${value} = 0 THEN '' ELSE CHAR(${value} USING latin1) END"
3841
+ }
3840
3842
  };
3841
3843
  Object.defineProperty(j4, "__esModule", { value: !0 });
3842
3844
  j4.MySQLDialect = void 0;
@@ -3879,7 +3881,7 @@ const QT = oe, yce = Rt, i2 = u0, j$ = a0, Ece = U4, Ace = q4, vce = {
3879
3881
  };
3880
3882
  class Cce extends i2.Dialect {
3881
3883
  constructor() {
3882
- super(...arguments), this.name = "mysql", this.defaultNumberType = "DOUBLE PRECISION", this.defaultDecimalType = "DECIMAL", this.udfPrefix = "ms_temp.__udf", this.hasFinalStage = !1, this.stringTypeName = "VARCHAR(255)", this.divisionIsInteger = !0, this.supportsSumDistinctFunction = !0, this.unnestWithNumbers = !1, this.defaultSampling = { rows: 5e4 }, this.supportUnnestArrayAgg = !0, this.supportsAggDistinct = !0, this.supportsCTEinCoorelatedSubQueries = !0, this.supportsSafeCast = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsNesting = !0, this.experimental = !0, this.nativeBoolean = !1, this.supportsFullJoin = !1, this.supportsPipelinesInViews = !1, this.readsNestedData = !1, this.supportsComplexFilteredSources = !1;
3884
+ super(...arguments), this.name = "mysql", this.defaultNumberType = "DOUBLE PRECISION", this.defaultDecimalType = "DECIMAL", this.udfPrefix = "ms_temp.__udf", this.hasFinalStage = !1, this.stringTypeName = "VARCHAR(255)", this.divisionIsInteger = !0, this.supportsSumDistinctFunction = !0, this.unnestWithNumbers = !1, this.defaultSampling = { rows: 5e4 }, this.supportUnnestArrayAgg = !0, this.supportsAggDistinct = !0, this.supportsCTEinCoorelatedSubQueries = !0, this.supportsSafeCast = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsNesting = !0, this.experimental = !0, this.nativeBoolean = !1, this.supportsFullJoin = !1, this.supportsPipelinesInViews = !1, this.readsNestedData = !1, this.supportsComplexFilteredSources = !1, this.supportsArraysInData = !1;
3883
3885
  }
3884
3886
  malloyTypeToSQLType(e) {
3885
3887
  return e.type === "number" ? e.numberType === "integer" ? "BIGINT" : "DOUBLE" : e.type;
@@ -3914,7 +3916,7 @@ class Cce extends i2.Dialect {
3914
3916
  ${r}
3915
3917
  SEPARATOR '${s}'
3916
3918
  )`;
3917
- return i && (o = `SUBSTRING_INDEX(${o}, '${s}', ${i})`, o = `REPLACE(${o},'${s}',',')`), o = `JSON_EXTRACT(CONCAT('[',${o},']'),'$')`, o;
3919
+ return i && (o = `SUBSTRING_INDEX(${o}, '${s}', ${i})`, o = `REPLACE(${o},'${s}',',')`), o = `COALESCE(JSON_EXTRACT(CONCAT('[',${o},']'),'$'),JSON_ARRAY())`, o;
3918
3920
  }
3919
3921
  sqlAnyValueTurtle(e, n) {
3920
3922
  const r = this.mapFieldsForJsonObject(n);
@@ -3928,7 +3930,7 @@ class Cce extends i2.Dialect {
3928
3930
  return `COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`;
3929
3931
  }
3930
3932
  malloyToSQL(e) {
3931
- return e === "number" ? "DOUBLE" : e === "string" ? "TEXT" : e === "struct" ? "JSON" : e;
3933
+ return e === "number" ? "DOUBLE" : e === "string" ? "TEXT" : e === "struct" || e === "array" || e === "record" ? "JSON" : e;
3932
3934
  }
3933
3935
  unnestColumns(e) {
3934
3936
  const n = [];
@@ -282,14 +282,14 @@ ${(0,lB.indent)(n)}
282
282
  CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${n}(value, __row_id_almost_${n})
283
283
  CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}(value) `:i?`-- Simulate a left join
284
284
  CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) WITH ORDINALITY as ${n}_outer(${n}, __row_id_almost_${n})
285
- CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`}}lx.PrestoDialect=mce,function(t){var e=D&&D.__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=D&&D.__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(lx,t)}(sb);var cb={},uy={},ay={};Object.defineProperty(ay,"__esModule",{value:!0}),ay.MYSQL_DIALECT_FUNCTIONS=void 0;const fb={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:})"}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:} SEPARATOR ${separator})"}}},yce={default_separator:{...fb.default_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:})",defaultOrderByArgIndex:0}},with_separator:{...fb.with_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:} SEPARATOR ${separator})",defaultOrderByArgIndex:0}}};ay.MYSQL_DIALECT_FUNCTIONS={string_agg:fb,string_agg_distinct:yce};var ly={};Object.defineProperty(ly,"__esModule",{value:!0}),ly.MYSQL_MALLOY_STANDARD_OVERLOADS=void 0,ly.MYSQL_MALLOY_STANDARD_OVERLOADS={regexp_extract:{function:"REGEXP_SUBSTR"},replace:{regular_expression:{sql:"REGEXP_REPLACE(${value}, ${pattern}, ${replacement}, 1,0)"}},trunc:{to_integer:{sql:"(FLOOR(${value}) + IF(${value} < 0,1,0))"},to_precision:{sql:"(ABS(FLOOR(${value} * POW(10,${precision}))/POW(10,${precision}))*IF(${value} < 0, -1, 1))"}},log:{sql:"log(${base},${value})"},div:{sql:"FLOOR(${dividend} / ${divisor})"},strpos:{sql:"LOCATE(${search_string},${test_string})"},starts_with:{sql:"COALESCE(${value} LIKE CONCAT(${prefix}, '%'),0)"},ends_with:{sql:"COALESCE(${value} LIKE CONCAT('%',${suffix}),0)"},trim:{characters:{sql:"TRIM(BOTH ${trim_characters} FROM ${value})"}},ltrim:{characters:{sql:"TRIM(LEADING ${trim_characters} FROM ${value})"}},rtrim:{characters:{sql:"TRIM(TRAILING ${trim_characters} FROM ${value})"}},byte_length:{sql:"(LENGTH(CAST(${value} AS VARBINARY)))"},chr:{sql:"CASE WHEN ${value} = 0 THEN '' ELSE CHR(${value}) END"}},Object.defineProperty(uy,"__esModule",{value:!0}),uy.MySQLDialect=void 0;const xb=oe,Ece=Rt,s2=sl,xB=ul,Ace=ay,vce=ly,Sce={number:"double precision",string:"varchar(255)"},_ce={day_of_week:"DAYOFWEEK",day_of_year:"DAYOFYEAR"},dB={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},Cce={tinyint:{type:"boolean"},smallint:{type:"number",numberType:"integer"},mediumint:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"tinyint unsigned":{type:"number",numberType:"integer"},"smallint unsigned":{type:"number",numberType:"integer"},"mediumint unsigned":{type:"number",numberType:"integer"},"int unsigned":{type:"number",numberType:"integer"},"bigint unsigned":{type:"number",numberType:"integer"},double:{type:"number",numberType:"float"},varchar:{type:"string"},varbinary:{type:"string"},char:{type:"string"},text:{type:"string"},date:{type:"date"},datetime:{type:"timestamp"},timestamp:{type:"timestamp"},time:{type:"string"},decimal:{type:"number",numberType:"float"},"tinyint(1)":{type:"boolean"}};class Tce extends s2.Dialect{constructor(){super(...arguments),this.name="mysql",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="DECIMAL",this.udfPrefix="ms_temp.__udf",this.hasFinalStage=!1,this.stringTypeName="VARCHAR(255)",this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0,this.experimental=!0,this.nativeBoolean=!1,this.supportsFullJoin=!1,this.supportsPipelinesInViews=!1,this.readsNestedData=!1,this.supportsComplexFilteredSources=!1}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":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 Cce[i.toLowerCase()]||{type:"sql native",rawType:i}}quoteTablePath(e){return e.split(".").map(n=>`\`${n}\``).join(".")}sqlGroupSetTable(e){return`CROSS JOIN (select number - 1 as group_set from JSON_TABLE(cast(concat("[1", repeat(",1", ${e}), "]") as JSON),"$[*]" COLUMNS(number FOR ORDINALITY)) group_set) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`"${n.rawName}", ${n.sqlExpression}`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=i?",xrmmex":",";let o=`GROUP_CONCAT(
285
+ CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`}}lx.PrestoDialect=mce,function(t){var e=D&&D.__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=D&&D.__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(lx,t)}(sb);var cb={},uy={},ay={};Object.defineProperty(ay,"__esModule",{value:!0}),ay.MYSQL_DIALECT_FUNCTIONS=void 0;const fb={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:})"}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:} SEPARATOR ${separator})"}}},yce={default_separator:{...fb.default_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:})",defaultOrderByArgIndex:0}},with_separator:{...fb.with_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:} SEPARATOR ${separator})",defaultOrderByArgIndex:0}}};ay.MYSQL_DIALECT_FUNCTIONS={string_agg:fb,string_agg_distinct:yce};var ly={};Object.defineProperty(ly,"__esModule",{value:!0}),ly.MYSQL_MALLOY_STANDARD_OVERLOADS=void 0,ly.MYSQL_MALLOY_STANDARD_OVERLOADS={regexp_extract:{function:"REGEXP_SUBSTR"},replace:{regular_expression:{sql:"REGEXP_REPLACE(${value}, ${pattern}, ${replacement}, 1,0)"}},trunc:{to_integer:{sql:"(FLOOR(${value}) + IF(${value} < 0,1,0))"},to_precision:{sql:"(ABS(FLOOR(${value} * POW(10,${precision}))/POW(10,${precision}))*IF(${value} < 0, -1, 1))"}},log:{sql:"log(${base},${value})"},div:{sql:"FLOOR(${dividend} / ${divisor})"},strpos:{sql:"LOCATE(${search_string},${test_string})"},starts_with:{sql:"COALESCE(${value} LIKE CONCAT(${prefix}, '%'),0)"},ends_with:{sql:"COALESCE(${value} LIKE CONCAT('%',${suffix}),0)"},trim:{characters:{sql:"TRIM(BOTH ${trim_characters} FROM ${value})"}},ltrim:{characters:{sql:"TRIM(LEADING ${trim_characters} FROM ${value})"}},rtrim:{characters:{sql:"TRIM(TRAILING ${trim_characters} FROM ${value})"}},byte_length:{sql:"(LENGTH(CAST(${value} AS VARBINARY)))"},chr:{sql:"CASE WHEN ${value} = 0 THEN '' ELSE CHAR(${value} USING latin1) END"}},Object.defineProperty(uy,"__esModule",{value:!0}),uy.MySQLDialect=void 0;const xb=oe,Ece=Rt,s2=sl,xB=ul,Ace=ay,vce=ly,Sce={number:"double precision",string:"varchar(255)"},_ce={day_of_week:"DAYOFWEEK",day_of_year:"DAYOFYEAR"},dB={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},Cce={tinyint:{type:"boolean"},smallint:{type:"number",numberType:"integer"},mediumint:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"tinyint unsigned":{type:"number",numberType:"integer"},"smallint unsigned":{type:"number",numberType:"integer"},"mediumint unsigned":{type:"number",numberType:"integer"},"int unsigned":{type:"number",numberType:"integer"},"bigint unsigned":{type:"number",numberType:"integer"},double:{type:"number",numberType:"float"},varchar:{type:"string"},varbinary:{type:"string"},char:{type:"string"},text:{type:"string"},date:{type:"date"},datetime:{type:"timestamp"},timestamp:{type:"timestamp"},time:{type:"string"},decimal:{type:"number",numberType:"float"},"tinyint(1)":{type:"boolean"}};class Tce extends s2.Dialect{constructor(){super(...arguments),this.name="mysql",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="DECIMAL",this.udfPrefix="ms_temp.__udf",this.hasFinalStage=!1,this.stringTypeName="VARCHAR(255)",this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0,this.experimental=!0,this.nativeBoolean=!1,this.supportsFullJoin=!1,this.supportsPipelinesInViews=!1,this.readsNestedData=!1,this.supportsComplexFilteredSources=!1,this.supportsArraysInData=!1}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":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 Cce[i.toLowerCase()]||{type:"sql native",rawType:i}}quoteTablePath(e){return e.split(".").map(n=>`\`${n}\``).join(".")}sqlGroupSetTable(e){return`CROSS JOIN (select number - 1 as group_set from JSON_TABLE(cast(concat("[1", repeat(",1", ${e}), "]") as JSON),"$[*]" COLUMNS(number FOR ORDINALITY)) group_set) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`"${n.rawName}", ${n.sqlExpression}`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=i?",xrmmex":",";let o=`GROUP_CONCAT(
286
286
  IF(group_set=${e},
287
287
  JSON_OBJECT(${this.mapFields(n)})
288
288
  , null
289
289
  )
290
290
  ${r}
291
291
  SEPARATOR '${s}'
292
- )`;return i&&(o=`SUBSTRING_INDEX(${o}, '${s}', ${i})`,o=`REPLACE(${o},'${s}',',')`),o=`JSON_EXTRACT(CONCAT('[',${o},']'),'$')`,o}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForJsonObject(n);return`MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END)`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} AND ${e} IS NOT NULL THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForJsonObject(n),i=this.mapFieldsForJsonObject(n,!0);return`COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`}malloyToSQL(e){return e==="number"?"DOUBLE":e==="string"?"TEXT":e==="struct"?"JSON":e}unnestColumns(e){const n=[];for(const r of e)n.push(`${this.sqlMaybeQuoteIdentifier(r.sqlOutputName)} ${this.malloyToSQL(r.type)} PATH "$.${r.rawName}"`);return n.join(`,
292
+ )`;return i&&(o=`SUBSTRING_INDEX(${o}, '${s}', ${i})`,o=`REPLACE(${o},'${s}',',')`),o=`COALESCE(JSON_EXTRACT(CONCAT('[',${o},']'),'$'),JSON_ARRAY())`,o}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForJsonObject(n);return`MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END)`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} AND ${e} IS NOT NULL THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForJsonObject(n),i=this.mapFieldsForJsonObject(n,!0);return`COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`}malloyToSQL(e){return e==="number"?"DOUBLE":e==="string"?"TEXT":e==="struct"||e==="array"||e==="record"?"JSON":e}unnestColumns(e){const n=[];for(const r of e)n.push(`${this.sqlMaybeQuoteIdentifier(r.sqlOutputName)} ${this.malloyToSQL(r.type)} PATH "$.${r.rawName}"`);return n.join(`,
293
293
  `)}jsonTable(e,n){return`JSON_TABLE(${e}, '$[*]'
294
294
  COLUMNS (
295
295
  __row_id FOR ORDINALITY,
@@ -4759,7 +4759,9 @@ p4.MYSQL_MALLOY_STANDARD_OVERLOADS = {
4759
4759
  }
4760
4760
  },
4761
4761
  byte_length: { sql: "(LENGTH(CAST(${value} AS VARBINARY)))" },
4762
- chr: { sql: "CASE WHEN ${value} = 0 THEN '' ELSE CHR(${value}) END" }
4762
+ chr: {
4763
+ sql: "CASE WHEN ${value} = 0 THEN '' ELSE CHAR(${value} USING latin1) END"
4764
+ }
4763
4765
  };
4764
4766
  Object.defineProperty(d4, "__esModule", { value: !0 });
4765
4767
  d4.MySQLDialect = void 0;
@@ -4802,7 +4804,7 @@ const _T = ce, sxe = Nt, k2 = T0, gB = R0, oxe = h4, uxe = p4, axe = {
4802
4804
  };
4803
4805
  class fxe extends k2.Dialect {
4804
4806
  constructor() {
4805
- super(...arguments), this.name = "mysql", this.defaultNumberType = "DOUBLE PRECISION", this.defaultDecimalType = "DECIMAL", this.udfPrefix = "ms_temp.__udf", this.hasFinalStage = !1, this.stringTypeName = "VARCHAR(255)", this.divisionIsInteger = !0, this.supportsSumDistinctFunction = !0, this.unnestWithNumbers = !1, this.defaultSampling = { rows: 5e4 }, this.supportUnnestArrayAgg = !0, this.supportsAggDistinct = !0, this.supportsCTEinCoorelatedSubQueries = !0, this.supportsSafeCast = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsNesting = !0, this.experimental = !0, this.nativeBoolean = !1, this.supportsFullJoin = !1, this.supportsPipelinesInViews = !1, this.readsNestedData = !1, this.supportsComplexFilteredSources = !1;
4807
+ super(...arguments), this.name = "mysql", this.defaultNumberType = "DOUBLE PRECISION", this.defaultDecimalType = "DECIMAL", this.udfPrefix = "ms_temp.__udf", this.hasFinalStage = !1, this.stringTypeName = "VARCHAR(255)", this.divisionIsInteger = !0, this.supportsSumDistinctFunction = !0, this.unnestWithNumbers = !1, this.defaultSampling = { rows: 5e4 }, this.supportUnnestArrayAgg = !0, this.supportsAggDistinct = !0, this.supportsCTEinCoorelatedSubQueries = !0, this.supportsSafeCast = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsNesting = !0, this.experimental = !0, this.nativeBoolean = !1, this.supportsFullJoin = !1, this.supportsPipelinesInViews = !1, this.readsNestedData = !1, this.supportsComplexFilteredSources = !1, this.supportsArraysInData = !1;
4806
4808
  }
4807
4809
  malloyTypeToSQLType(e) {
4808
4810
  return e.type === "number" ? e.numberType === "integer" ? "BIGINT" : "DOUBLE" : e.type;
@@ -4837,7 +4839,7 @@ class fxe extends k2.Dialect {
4837
4839
  ${r}
4838
4840
  SEPARATOR '${s}'
4839
4841
  )`;
4840
- return i && (o = `SUBSTRING_INDEX(${o}, '${s}', ${i})`, o = `REPLACE(${o},'${s}',',')`), o = `JSON_EXTRACT(CONCAT('[',${o},']'),'$')`, o;
4842
+ return i && (o = `SUBSTRING_INDEX(${o}, '${s}', ${i})`, o = `REPLACE(${o},'${s}',',')`), o = `COALESCE(JSON_EXTRACT(CONCAT('[',${o},']'),'$'),JSON_ARRAY())`, o;
4841
4843
  }
4842
4844
  sqlAnyValueTurtle(e, n) {
4843
4845
  const r = this.mapFieldsForJsonObject(n);
@@ -4851,7 +4853,7 @@ class fxe extends k2.Dialect {
4851
4853
  return `COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`;
4852
4854
  }
4853
4855
  malloyToSQL(e) {
4854
- return e === "number" ? "DOUBLE" : e === "string" ? "TEXT" : e === "struct" ? "JSON" : e;
4856
+ return e === "number" ? "DOUBLE" : e === "string" ? "TEXT" : e === "struct" || e === "array" || e === "record" ? "JSON" : e;
4855
4857
  }
4856
4858
  unnestColumns(e) {
4857
4859
  const n = [];
@@ -282,14 +282,14 @@ ${(0,JB.indent)(n)}
282
282
  CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${n}(value, __row_id_almost_${n})
283
283
  CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}(value) `:i?`-- Simulate a left join
284
284
  CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) WITH ORDINALITY as ${n}_outer(${n}, __row_id_almost_${n})
285
- CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`}}Ix.PrestoDialect=nxe,function(t){var e=D&&D.__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=D&&D.__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(Ix,t)}(QT);var XT={},Jy={},Ky={};Object.defineProperty(Ky,"__esModule",{value:!0}),Ky.MYSQL_DIALECT_FUNCTIONS=void 0;const JT={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:})"}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:} SEPARATOR ${separator})"}}},rxe={default_separator:{...JT.default_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:})",defaultOrderByArgIndex:0}},with_separator:{...JT.with_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:} SEPARATOR ${separator})",defaultOrderByArgIndex:0}}};Ky.MYSQL_DIALECT_FUNCTIONS={string_agg:JT,string_agg_distinct:rxe};var Zy={};Object.defineProperty(Zy,"__esModule",{value:!0}),Zy.MYSQL_MALLOY_STANDARD_OVERLOADS=void 0,Zy.MYSQL_MALLOY_STANDARD_OVERLOADS={regexp_extract:{function:"REGEXP_SUBSTR"},replace:{regular_expression:{sql:"REGEXP_REPLACE(${value}, ${pattern}, ${replacement}, 1,0)"}},trunc:{to_integer:{sql:"(FLOOR(${value}) + IF(${value} < 0,1,0))"},to_precision:{sql:"(ABS(FLOOR(${value} * POW(10,${precision}))/POW(10,${precision}))*IF(${value} < 0, -1, 1))"}},log:{sql:"log(${base},${value})"},div:{sql:"FLOOR(${dividend} / ${divisor})"},strpos:{sql:"LOCATE(${search_string},${test_string})"},starts_with:{sql:"COALESCE(${value} LIKE CONCAT(${prefix}, '%'),0)"},ends_with:{sql:"COALESCE(${value} LIKE CONCAT('%',${suffix}),0)"},trim:{characters:{sql:"TRIM(BOTH ${trim_characters} FROM ${value})"}},ltrim:{characters:{sql:"TRIM(LEADING ${trim_characters} FROM ${value})"}},rtrim:{characters:{sql:"TRIM(TRAILING ${trim_characters} FROM ${value})"}},byte_length:{sql:"(LENGTH(CAST(${value} AS VARBINARY)))"},chr:{sql:"CASE WHEN ${value} = 0 THEN '' ELSE CHR(${value}) END"}},Object.defineProperty(Jy,"__esModule",{value:!0}),Jy.MySQLDialect=void 0;const KT=ce,ixe=Nt,j2=_l,ek=bl,sxe=Ky,oxe=Zy,uxe={number:"double precision",string:"varchar(255)"},axe={day_of_week:"DAYOFWEEK",day_of_year:"DAYOFYEAR"},tk={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},lxe={tinyint:{type:"boolean"},smallint:{type:"number",numberType:"integer"},mediumint:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"tinyint unsigned":{type:"number",numberType:"integer"},"smallint unsigned":{type:"number",numberType:"integer"},"mediumint unsigned":{type:"number",numberType:"integer"},"int unsigned":{type:"number",numberType:"integer"},"bigint unsigned":{type:"number",numberType:"integer"},double:{type:"number",numberType:"float"},varchar:{type:"string"},varbinary:{type:"string"},char:{type:"string"},text:{type:"string"},date:{type:"date"},datetime:{type:"timestamp"},timestamp:{type:"timestamp"},time:{type:"string"},decimal:{type:"number",numberType:"float"},"tinyint(1)":{type:"boolean"}};class cxe extends j2.Dialect{constructor(){super(...arguments),this.name="mysql",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="DECIMAL",this.udfPrefix="ms_temp.__udf",this.hasFinalStage=!1,this.stringTypeName="VARCHAR(255)",this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0,this.experimental=!0,this.nativeBoolean=!1,this.supportsFullJoin=!1,this.supportsPipelinesInViews=!1,this.readsNestedData=!1,this.supportsComplexFilteredSources=!1}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":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 lxe[i.toLowerCase()]||{type:"sql native",rawType:i}}quoteTablePath(e){return e.split(".").map(n=>`\`${n}\``).join(".")}sqlGroupSetTable(e){return`CROSS JOIN (select number - 1 as group_set from JSON_TABLE(cast(concat("[1", repeat(",1", ${e}), "]") as JSON),"$[*]" COLUMNS(number FOR ORDINALITY)) group_set) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`"${n.rawName}", ${n.sqlExpression}`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=i?",xrmmex":",";let o=`GROUP_CONCAT(
285
+ CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`}}Ix.PrestoDialect=nxe,function(t){var e=D&&D.__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=D&&D.__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(Ix,t)}(QT);var XT={},Jy={},Ky={};Object.defineProperty(Ky,"__esModule",{value:!0}),Ky.MYSQL_DIALECT_FUNCTIONS=void 0;const JT={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:})"}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:} SEPARATOR ${separator})"}}},rxe={default_separator:{...JT.default_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:})",defaultOrderByArgIndex:0}},with_separator:{...JT.with_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:} SEPARATOR ${separator})",defaultOrderByArgIndex:0}}};Ky.MYSQL_DIALECT_FUNCTIONS={string_agg:JT,string_agg_distinct:rxe};var Zy={};Object.defineProperty(Zy,"__esModule",{value:!0}),Zy.MYSQL_MALLOY_STANDARD_OVERLOADS=void 0,Zy.MYSQL_MALLOY_STANDARD_OVERLOADS={regexp_extract:{function:"REGEXP_SUBSTR"},replace:{regular_expression:{sql:"REGEXP_REPLACE(${value}, ${pattern}, ${replacement}, 1,0)"}},trunc:{to_integer:{sql:"(FLOOR(${value}) + IF(${value} < 0,1,0))"},to_precision:{sql:"(ABS(FLOOR(${value} * POW(10,${precision}))/POW(10,${precision}))*IF(${value} < 0, -1, 1))"}},log:{sql:"log(${base},${value})"},div:{sql:"FLOOR(${dividend} / ${divisor})"},strpos:{sql:"LOCATE(${search_string},${test_string})"},starts_with:{sql:"COALESCE(${value} LIKE CONCAT(${prefix}, '%'),0)"},ends_with:{sql:"COALESCE(${value} LIKE CONCAT('%',${suffix}),0)"},trim:{characters:{sql:"TRIM(BOTH ${trim_characters} FROM ${value})"}},ltrim:{characters:{sql:"TRIM(LEADING ${trim_characters} FROM ${value})"}},rtrim:{characters:{sql:"TRIM(TRAILING ${trim_characters} FROM ${value})"}},byte_length:{sql:"(LENGTH(CAST(${value} AS VARBINARY)))"},chr:{sql:"CASE WHEN ${value} = 0 THEN '' ELSE CHAR(${value} USING latin1) END"}},Object.defineProperty(Jy,"__esModule",{value:!0}),Jy.MySQLDialect=void 0;const KT=ce,ixe=Nt,j2=_l,ek=bl,sxe=Ky,oxe=Zy,uxe={number:"double precision",string:"varchar(255)"},axe={day_of_week:"DAYOFWEEK",day_of_year:"DAYOFYEAR"},tk={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},lxe={tinyint:{type:"boolean"},smallint:{type:"number",numberType:"integer"},mediumint:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"tinyint unsigned":{type:"number",numberType:"integer"},"smallint unsigned":{type:"number",numberType:"integer"},"mediumint unsigned":{type:"number",numberType:"integer"},"int unsigned":{type:"number",numberType:"integer"},"bigint unsigned":{type:"number",numberType:"integer"},double:{type:"number",numberType:"float"},varchar:{type:"string"},varbinary:{type:"string"},char:{type:"string"},text:{type:"string"},date:{type:"date"},datetime:{type:"timestamp"},timestamp:{type:"timestamp"},time:{type:"string"},decimal:{type:"number",numberType:"float"},"tinyint(1)":{type:"boolean"}};class cxe extends j2.Dialect{constructor(){super(...arguments),this.name="mysql",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="DECIMAL",this.udfPrefix="ms_temp.__udf",this.hasFinalStage=!1,this.stringTypeName="VARCHAR(255)",this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0,this.experimental=!0,this.nativeBoolean=!1,this.supportsFullJoin=!1,this.supportsPipelinesInViews=!1,this.readsNestedData=!1,this.supportsComplexFilteredSources=!1,this.supportsArraysInData=!1}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":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 lxe[i.toLowerCase()]||{type:"sql native",rawType:i}}quoteTablePath(e){return e.split(".").map(n=>`\`${n}\``).join(".")}sqlGroupSetTable(e){return`CROSS JOIN (select number - 1 as group_set from JSON_TABLE(cast(concat("[1", repeat(",1", ${e}), "]") as JSON),"$[*]" COLUMNS(number FOR ORDINALITY)) group_set) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`"${n.rawName}", ${n.sqlExpression}`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=i?",xrmmex":",";let o=`GROUP_CONCAT(
286
286
  IF(group_set=${e},
287
287
  JSON_OBJECT(${this.mapFields(n)})
288
288
  , null
289
289
  )
290
290
  ${r}
291
291
  SEPARATOR '${s}'
292
- )`;return i&&(o=`SUBSTRING_INDEX(${o}, '${s}', ${i})`,o=`REPLACE(${o},'${s}',',')`),o=`JSON_EXTRACT(CONCAT('[',${o},']'),'$')`,o}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForJsonObject(n);return`MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END)`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} AND ${e} IS NOT NULL THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForJsonObject(n),i=this.mapFieldsForJsonObject(n,!0);return`COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`}malloyToSQL(e){return e==="number"?"DOUBLE":e==="string"?"TEXT":e==="struct"?"JSON":e}unnestColumns(e){const n=[];for(const r of e)n.push(`${this.sqlMaybeQuoteIdentifier(r.sqlOutputName)} ${this.malloyToSQL(r.type)} PATH "$.${r.rawName}"`);return n.join(`,
292
+ )`;return i&&(o=`SUBSTRING_INDEX(${o}, '${s}', ${i})`,o=`REPLACE(${o},'${s}',',')`),o=`COALESCE(JSON_EXTRACT(CONCAT('[',${o},']'),'$'),JSON_ARRAY())`,o}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForJsonObject(n);return`MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END)`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} AND ${e} IS NOT NULL THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForJsonObject(n),i=this.mapFieldsForJsonObject(n,!0);return`COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`}malloyToSQL(e){return e==="number"?"DOUBLE":e==="string"?"TEXT":e==="struct"||e==="array"||e==="record"?"JSON":e}unnestColumns(e){const n=[];for(const r of e)n.push(`${this.sqlMaybeQuoteIdentifier(r.sqlOutputName)} ${this.malloyToSQL(r.type)} PATH "$.${r.rawName}"`);return n.join(`,
293
293
  `)}jsonTable(e,n){return`JSON_TABLE(${e}, '$[*]'
294
294
  COLUMNS (
295
295
  __row_id FOR ORDINALITY,
@@ -4759,7 +4759,9 @@ p4.MYSQL_MALLOY_STANDARD_OVERLOADS = {
4759
4759
  }
4760
4760
  },
4761
4761
  byte_length: { sql: "(LENGTH(CAST(${value} AS VARBINARY)))" },
4762
- chr: { sql: "CASE WHEN ${value} = 0 THEN '' ELSE CHR(${value}) END" }
4762
+ chr: {
4763
+ sql: "CASE WHEN ${value} = 0 THEN '' ELSE CHAR(${value} USING latin1) END"
4764
+ }
4763
4765
  };
4764
4766
  Object.defineProperty(d4, "__esModule", { value: !0 });
4765
4767
  d4.MySQLDialect = void 0;
@@ -4802,7 +4804,7 @@ const _T = ce, sxe = Nt, k2 = T0, gB = R0, oxe = h4, uxe = p4, axe = {
4802
4804
  };
4803
4805
  class fxe extends k2.Dialect {
4804
4806
  constructor() {
4805
- super(...arguments), this.name = "mysql", this.defaultNumberType = "DOUBLE PRECISION", this.defaultDecimalType = "DECIMAL", this.udfPrefix = "ms_temp.__udf", this.hasFinalStage = !1, this.stringTypeName = "VARCHAR(255)", this.divisionIsInteger = !0, this.supportsSumDistinctFunction = !0, this.unnestWithNumbers = !1, this.defaultSampling = { rows: 5e4 }, this.supportUnnestArrayAgg = !0, this.supportsAggDistinct = !0, this.supportsCTEinCoorelatedSubQueries = !0, this.supportsSafeCast = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsNesting = !0, this.experimental = !0, this.nativeBoolean = !1, this.supportsFullJoin = !1, this.supportsPipelinesInViews = !1, this.readsNestedData = !1, this.supportsComplexFilteredSources = !1;
4807
+ super(...arguments), this.name = "mysql", this.defaultNumberType = "DOUBLE PRECISION", this.defaultDecimalType = "DECIMAL", this.udfPrefix = "ms_temp.__udf", this.hasFinalStage = !1, this.stringTypeName = "VARCHAR(255)", this.divisionIsInteger = !0, this.supportsSumDistinctFunction = !0, this.unnestWithNumbers = !1, this.defaultSampling = { rows: 5e4 }, this.supportUnnestArrayAgg = !0, this.supportsAggDistinct = !0, this.supportsCTEinCoorelatedSubQueries = !0, this.supportsSafeCast = !1, this.dontUnionIndex = !1, this.supportsQualify = !1, this.supportsNesting = !0, this.experimental = !0, this.nativeBoolean = !1, this.supportsFullJoin = !1, this.supportsPipelinesInViews = !1, this.readsNestedData = !1, this.supportsComplexFilteredSources = !1, this.supportsArraysInData = !1;
4806
4808
  }
4807
4809
  malloyTypeToSQLType(e) {
4808
4810
  return e.type === "number" ? e.numberType === "integer" ? "BIGINT" : "DOUBLE" : e.type;
@@ -4837,7 +4839,7 @@ class fxe extends k2.Dialect {
4837
4839
  ${r}
4838
4840
  SEPARATOR '${s}'
4839
4841
  )`;
4840
- return i && (o = `SUBSTRING_INDEX(${o}, '${s}', ${i})`, o = `REPLACE(${o},'${s}',',')`), o = `JSON_EXTRACT(CONCAT('[',${o},']'),'$')`, o;
4842
+ return i && (o = `SUBSTRING_INDEX(${o}, '${s}', ${i})`, o = `REPLACE(${o},'${s}',',')`), o = `COALESCE(JSON_EXTRACT(CONCAT('[',${o},']'),'$'),JSON_ARRAY())`, o;
4841
4843
  }
4842
4844
  sqlAnyValueTurtle(e, n) {
4843
4845
  const r = this.mapFieldsForJsonObject(n);
@@ -4851,7 +4853,7 @@ class fxe extends k2.Dialect {
4851
4853
  return `COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`;
4852
4854
  }
4853
4855
  malloyToSQL(e) {
4854
- return e === "number" ? "DOUBLE" : e === "string" ? "TEXT" : e === "struct" ? "JSON" : e;
4856
+ return e === "number" ? "DOUBLE" : e === "string" ? "TEXT" : e === "struct" || e === "array" || e === "record" ? "JSON" : e;
4855
4857
  }
4856
4858
  unnestColumns(e) {
4857
4859
  const n = [];
@@ -282,14 +282,14 @@ ${(0,XB.indent)(n)}
282
282
  CROSS JOIN UNNEST(COALESCE(${e},ARRAY[NULL])) WITH ORDINALITY as ${n}(value, __row_id_almost_${n})
283
283
  CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}(value) `:i?`-- Simulate a left join
284
284
  CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) WITH ORDINALITY as ${n}_outer(${n}, __row_id_almost_${n})
285
- CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`}}Ix.PrestoDialect=nxe,function(t){var e=D&&D.__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=D&&D.__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(Ix,t)}(HT);var YT={},Xy={},Jy={};Object.defineProperty(Jy,"__esModule",{value:!0}),Jy.MYSQL_DIALECT_FUNCTIONS=void 0;const XT={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:})"}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:} SEPARATOR ${separator})"}}},rxe={default_separator:{...XT.default_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:})",defaultOrderByArgIndex:0}},with_separator:{...XT.with_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:} SEPARATOR ${separator})",defaultOrderByArgIndex:0}}};Jy.MYSQL_DIALECT_FUNCTIONS={string_agg:XT,string_agg_distinct:rxe};var Ky={};Object.defineProperty(Ky,"__esModule",{value:!0}),Ky.MYSQL_MALLOY_STANDARD_OVERLOADS=void 0,Ky.MYSQL_MALLOY_STANDARD_OVERLOADS={regexp_extract:{function:"REGEXP_SUBSTR"},replace:{regular_expression:{sql:"REGEXP_REPLACE(${value}, ${pattern}, ${replacement}, 1,0)"}},trunc:{to_integer:{sql:"(FLOOR(${value}) + IF(${value} < 0,1,0))"},to_precision:{sql:"(ABS(FLOOR(${value} * POW(10,${precision}))/POW(10,${precision}))*IF(${value} < 0, -1, 1))"}},log:{sql:"log(${base},${value})"},div:{sql:"FLOOR(${dividend} / ${divisor})"},strpos:{sql:"LOCATE(${search_string},${test_string})"},starts_with:{sql:"COALESCE(${value} LIKE CONCAT(${prefix}, '%'),0)"},ends_with:{sql:"COALESCE(${value} LIKE CONCAT('%',${suffix}),0)"},trim:{characters:{sql:"TRIM(BOTH ${trim_characters} FROM ${value})"}},ltrim:{characters:{sql:"TRIM(LEADING ${trim_characters} FROM ${value})"}},rtrim:{characters:{sql:"TRIM(TRAILING ${trim_characters} FROM ${value})"}},byte_length:{sql:"(LENGTH(CAST(${value} AS VARBINARY)))"},chr:{sql:"CASE WHEN ${value} = 0 THEN '' ELSE CHR(${value}) END"}},Object.defineProperty(Xy,"__esModule",{value:!0}),Xy.MySQLDialect=void 0;const JT=ce,ixe=Nt,M2=_l,ZB=bl,sxe=Jy,oxe=Ky,uxe={number:"double precision",string:"varchar(255)"},axe={day_of_week:"DAYOFWEEK",day_of_year:"DAYOFYEAR"},ek={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},lxe={tinyint:{type:"boolean"},smallint:{type:"number",numberType:"integer"},mediumint:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"tinyint unsigned":{type:"number",numberType:"integer"},"smallint unsigned":{type:"number",numberType:"integer"},"mediumint unsigned":{type:"number",numberType:"integer"},"int unsigned":{type:"number",numberType:"integer"},"bigint unsigned":{type:"number",numberType:"integer"},double:{type:"number",numberType:"float"},varchar:{type:"string"},varbinary:{type:"string"},char:{type:"string"},text:{type:"string"},date:{type:"date"},datetime:{type:"timestamp"},timestamp:{type:"timestamp"},time:{type:"string"},decimal:{type:"number",numberType:"float"},"tinyint(1)":{type:"boolean"}};class cxe extends M2.Dialect{constructor(){super(...arguments),this.name="mysql",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="DECIMAL",this.udfPrefix="ms_temp.__udf",this.hasFinalStage=!1,this.stringTypeName="VARCHAR(255)",this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0,this.experimental=!0,this.nativeBoolean=!1,this.supportsFullJoin=!1,this.supportsPipelinesInViews=!1,this.readsNestedData=!1,this.supportsComplexFilteredSources=!1}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":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 lxe[i.toLowerCase()]||{type:"sql native",rawType:i}}quoteTablePath(e){return e.split(".").map(n=>`\`${n}\``).join(".")}sqlGroupSetTable(e){return`CROSS JOIN (select number - 1 as group_set from JSON_TABLE(cast(concat("[1", repeat(",1", ${e}), "]") as JSON),"$[*]" COLUMNS(number FOR ORDINALITY)) group_set) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`"${n.rawName}", ${n.sqlExpression}`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=i?",xrmmex":",";let o=`GROUP_CONCAT(
285
+ CROSS JOIN UNNEST(ARRAY[CASE WHEN ${e} IS NOT NULL THEN __row_id_almost_${n} END]) as ${n}_ignore(__row_id_from_${n})`:`CROSS JOIN UNNEST(COALESCE(${e}, ARRAY[NULL])) as ${n}_outer(${n})`}}Ix.PrestoDialect=nxe,function(t){var e=D&&D.__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=D&&D.__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(Ix,t)}(HT);var YT={},Xy={},Jy={};Object.defineProperty(Jy,"__esModule",{value:!0}),Jy.MYSQL_DIALECT_FUNCTIONS=void 0;const XT={default_separator:{takes:{value:{dimension:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:})"}},with_separator:{takes:{value:{dimension:"string"},separator:{literal:"string"}},returns:{measure:"string"},supportsOrderBy:!0,impl:{sql:"GROUP_CONCAT(${value} ${order_by:} SEPARATOR ${separator})"}}},rxe={default_separator:{...XT.default_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:})",defaultOrderByArgIndex:0}},with_separator:{...XT.with_separator,isSymmetric:!0,supportsOrderBy:"only_default",impl:{sql:"GROUP_CONCAT(DISTINCT ${value} ${order_by:} SEPARATOR ${separator})",defaultOrderByArgIndex:0}}};Jy.MYSQL_DIALECT_FUNCTIONS={string_agg:XT,string_agg_distinct:rxe};var Ky={};Object.defineProperty(Ky,"__esModule",{value:!0}),Ky.MYSQL_MALLOY_STANDARD_OVERLOADS=void 0,Ky.MYSQL_MALLOY_STANDARD_OVERLOADS={regexp_extract:{function:"REGEXP_SUBSTR"},replace:{regular_expression:{sql:"REGEXP_REPLACE(${value}, ${pattern}, ${replacement}, 1,0)"}},trunc:{to_integer:{sql:"(FLOOR(${value}) + IF(${value} < 0,1,0))"},to_precision:{sql:"(ABS(FLOOR(${value} * POW(10,${precision}))/POW(10,${precision}))*IF(${value} < 0, -1, 1))"}},log:{sql:"log(${base},${value})"},div:{sql:"FLOOR(${dividend} / ${divisor})"},strpos:{sql:"LOCATE(${search_string},${test_string})"},starts_with:{sql:"COALESCE(${value} LIKE CONCAT(${prefix}, '%'),0)"},ends_with:{sql:"COALESCE(${value} LIKE CONCAT('%',${suffix}),0)"},trim:{characters:{sql:"TRIM(BOTH ${trim_characters} FROM ${value})"}},ltrim:{characters:{sql:"TRIM(LEADING ${trim_characters} FROM ${value})"}},rtrim:{characters:{sql:"TRIM(TRAILING ${trim_characters} FROM ${value})"}},byte_length:{sql:"(LENGTH(CAST(${value} AS VARBINARY)))"},chr:{sql:"CASE WHEN ${value} = 0 THEN '' ELSE CHAR(${value} USING latin1) END"}},Object.defineProperty(Xy,"__esModule",{value:!0}),Xy.MySQLDialect=void 0;const JT=ce,ixe=Nt,M2=_l,ZB=bl,sxe=Jy,oxe=Ky,uxe={number:"double precision",string:"varchar(255)"},axe={day_of_week:"DAYOFWEEK",day_of_year:"DAYOFYEAR"},ek={second:1,minute:60,hour:3600,day:24*3600,week:7*24*3600},lxe={tinyint:{type:"boolean"},smallint:{type:"number",numberType:"integer"},mediumint:{type:"number",numberType:"integer"},int:{type:"number",numberType:"integer"},bigint:{type:"number",numberType:"integer"},"tinyint unsigned":{type:"number",numberType:"integer"},"smallint unsigned":{type:"number",numberType:"integer"},"mediumint unsigned":{type:"number",numberType:"integer"},"int unsigned":{type:"number",numberType:"integer"},"bigint unsigned":{type:"number",numberType:"integer"},double:{type:"number",numberType:"float"},varchar:{type:"string"},varbinary:{type:"string"},char:{type:"string"},text:{type:"string"},date:{type:"date"},datetime:{type:"timestamp"},timestamp:{type:"timestamp"},time:{type:"string"},decimal:{type:"number",numberType:"float"},"tinyint(1)":{type:"boolean"}};class cxe extends M2.Dialect{constructor(){super(...arguments),this.name="mysql",this.defaultNumberType="DOUBLE PRECISION",this.defaultDecimalType="DECIMAL",this.udfPrefix="ms_temp.__udf",this.hasFinalStage=!1,this.stringTypeName="VARCHAR(255)",this.divisionIsInteger=!0,this.supportsSumDistinctFunction=!0,this.unnestWithNumbers=!1,this.defaultSampling={rows:5e4},this.supportUnnestArrayAgg=!0,this.supportsAggDistinct=!0,this.supportsCTEinCoorelatedSubQueries=!0,this.supportsSafeCast=!1,this.dontUnionIndex=!1,this.supportsQualify=!1,this.supportsNesting=!0,this.experimental=!0,this.nativeBoolean=!1,this.supportsFullJoin=!1,this.supportsPipelinesInViews=!1,this.readsNestedData=!1,this.supportsComplexFilteredSources=!1,this.supportsArraysInData=!1}malloyTypeToSQLType(e){return e.type==="number"?e.numberType==="integer"?"BIGINT":"DOUBLE":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 lxe[i.toLowerCase()]||{type:"sql native",rawType:i}}quoteTablePath(e){return e.split(".").map(n=>`\`${n}\``).join(".")}sqlGroupSetTable(e){return`CROSS JOIN (select number - 1 as group_set from JSON_TABLE(cast(concat("[1", repeat(",1", ${e}), "]") as JSON),"$[*]" COLUMNS(number FOR ORDINALITY)) group_set) as group_set`}sqlAnyValue(e,n){return`MAX(${n})`}mapFields(e){return e.map(n=>`"${n.rawName}", ${n.sqlExpression}`).join(", ")}sqlAggregateTurtle(e,n,r,i){const s=i?",xrmmex":",";let o=`GROUP_CONCAT(
286
286
  IF(group_set=${e},
287
287
  JSON_OBJECT(${this.mapFields(n)})
288
288
  , null
289
289
  )
290
290
  ${r}
291
291
  SEPARATOR '${s}'
292
- )`;return i&&(o=`SUBSTRING_INDEX(${o}, '${s}', ${i})`,o=`REPLACE(${o},'${s}',',')`),o=`JSON_EXTRACT(CONCAT('[',${o},']'),'$')`,o}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForJsonObject(n);return`MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END)`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} AND ${e} IS NOT NULL THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForJsonObject(n),i=this.mapFieldsForJsonObject(n,!0);return`COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`}malloyToSQL(e){return e==="number"?"DOUBLE":e==="string"?"TEXT":e==="struct"?"JSON":e}unnestColumns(e){const n=[];for(const r of e)n.push(`${this.sqlMaybeQuoteIdentifier(r.sqlOutputName)} ${this.malloyToSQL(r.type)} PATH "$.${r.rawName}"`);return n.join(`,
292
+ )`;return i&&(o=`SUBSTRING_INDEX(${o}, '${s}', ${i})`,o=`REPLACE(${o},'${s}',',')`),o=`COALESCE(JSON_EXTRACT(CONCAT('[',${o},']'),'$'),JSON_ARRAY())`,o}sqlAnyValueTurtle(e,n){const r=this.mapFieldsForJsonObject(n);return`MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END)`}sqlAnyValueLastTurtle(e,n,r){return`MAX(CASE WHEN group_set=${n} AND ${e} IS NOT NULL THEN ${e} END) as ${r}`}sqlCoaleseMeasuresInline(e,n){const r=this.mapFieldsForJsonObject(n),i=this.mapFieldsForJsonObject(n,!0);return`COALESCE(MAX(CASE WHEN group_set=${e} THEN JSON_OBJECT(${r}) END),JSON_OBJECT(${i}))`}malloyToSQL(e){return e==="number"?"DOUBLE":e==="string"?"TEXT":e==="struct"||e==="array"||e==="record"?"JSON":e}unnestColumns(e){const n=[];for(const r of e)n.push(`${this.sqlMaybeQuoteIdentifier(r.sqlOutputName)} ${this.malloyToSQL(r.type)} PATH "$.${r.rawName}"`);return n.join(`,
293
293
  `)}jsonTable(e,n){return`JSON_TABLE(${e}, '$[*]'
294
294
  COLUMNS (
295
295
  __row_id FOR ORDINALITY,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/render",
3
- "version": "0.0.196-dev241008013446",
3
+ "version": "0.0.196",
4
4
  "license": "MIT",
5
5
  "main": "dist/module/index.umd.js",
6
6
  "types": "dist/index.d.ts",
@@ -32,7 +32,7 @@
32
32
  "build-types": "tsc --build --declaration --emitDeclarationOnly"
33
33
  },
34
34
  "dependencies": {
35
- "@malloydata/malloy": "^0.0.196-dev241008013446",
35
+ "@malloydata/malloy": "^0.0.196",
36
36
  "@tanstack/solid-virtual": "^3.10.4",
37
37
  "component-register": "^0.8.6",
38
38
  "lodash": "^4.17.20",