@hdnax/sqlingo.js 0.0.5 → 0.1.0

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.
Files changed (243) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.repo.md +1 -2
  3. package/dist/chunk-2YNOERAO.cjs +2 -0
  4. package/dist/chunk-2YNOERAO.cjs.map +1 -0
  5. package/dist/chunk-2Z3O2CFM.cjs +19 -0
  6. package/dist/chunk-2Z3O2CFM.cjs.map +1 -0
  7. package/dist/chunk-4ZMKB6PV.cjs +2 -0
  8. package/dist/chunk-4ZMKB6PV.cjs.map +1 -0
  9. package/dist/chunk-53OWF4GG.js +2 -0
  10. package/dist/chunk-53OWF4GG.js.map +1 -0
  11. package/dist/chunk-C4CLTVOW.cjs +2 -0
  12. package/dist/chunk-C4CLTVOW.cjs.map +1 -0
  13. package/dist/chunk-DOKMTZYO.cjs +4 -0
  14. package/dist/chunk-DOKMTZYO.cjs.map +1 -0
  15. package/dist/chunk-FCGUTI7Y.js +2 -0
  16. package/dist/chunk-FCGUTI7Y.js.map +1 -0
  17. package/dist/chunk-IPCIXWCY.js +2 -0
  18. package/dist/chunk-IPCIXWCY.js.map +1 -0
  19. package/dist/chunk-KCNOE4DZ.js +19 -0
  20. package/dist/chunk-KCNOE4DZ.js.map +1 -0
  21. package/dist/chunk-NRJHX2GZ.js +2 -0
  22. package/dist/chunk-NRJHX2GZ.js.map +1 -0
  23. package/dist/chunk-O2J5RKBN.js +2 -0
  24. package/dist/chunk-O2J5RKBN.js.map +1 -0
  25. package/dist/chunk-PXUASP5I.js +2 -0
  26. package/dist/chunk-PXUASP5I.js.map +1 -0
  27. package/dist/chunk-R7C3ZHVK.cjs +2 -0
  28. package/dist/chunk-R7C3ZHVK.cjs.map +1 -0
  29. package/dist/chunk-UHWHUDLE.cjs +2 -0
  30. package/dist/chunk-UHWHUDLE.cjs.map +1 -0
  31. package/dist/chunk-WRNYJ54A.cjs +2 -0
  32. package/dist/chunk-WRNYJ54A.cjs.map +1 -0
  33. package/dist/chunk-XZQFOICX.cjs +3 -0
  34. package/dist/chunk-XZQFOICX.cjs.map +1 -0
  35. package/dist/chunk-YLOQRUXC.js +2 -0
  36. package/dist/chunk-YLOQRUXC.js.map +1 -0
  37. package/dist/chunk-YSS2WVCM.cjs +2 -0
  38. package/dist/chunk-YSS2WVCM.cjs.map +1 -0
  39. package/dist/chunk-Z5V6VOIN.js +3 -0
  40. package/dist/chunk-Z5V6VOIN.js.map +1 -0
  41. package/dist/chunk-ZBFGQPJR.js +4 -0
  42. package/dist/chunk-ZBFGQPJR.js.map +1 -0
  43. package/dist/dialects/athena.cjs +2 -0
  44. package/dist/dialects/athena.cjs.map +1 -0
  45. package/dist/dialects/athena.d.cts +66 -0
  46. package/dist/dialects/athena.d.ts +66 -0
  47. package/dist/dialects/athena.js +2 -0
  48. package/dist/dialects/athena.js.map +1 -0
  49. package/dist/dialects/bigquery.cjs +3 -0
  50. package/dist/dialects/bigquery.cjs.map +1 -0
  51. package/dist/dialects/bigquery.d.cts +651 -0
  52. package/dist/dialects/bigquery.d.ts +651 -0
  53. package/dist/dialects/bigquery.js +3 -0
  54. package/dist/dialects/bigquery.js.map +1 -0
  55. package/dist/dialects/clickhouse.cjs +2 -0
  56. package/dist/dialects/clickhouse.cjs.map +1 -0
  57. package/dist/dialects/clickhouse.d.cts +634 -0
  58. package/dist/dialects/clickhouse.d.ts +634 -0
  59. package/dist/dialects/clickhouse.js +2 -0
  60. package/dist/dialects/clickhouse.js.map +1 -0
  61. package/dist/dialects/databricks.cjs +2 -0
  62. package/dist/dialects/databricks.cjs.map +1 -0
  63. package/dist/dialects/databricks.d.cts +484 -0
  64. package/dist/dialects/databricks.d.ts +484 -0
  65. package/dist/dialects/databricks.js +2 -0
  66. package/dist/dialects/databricks.js.map +1 -0
  67. package/dist/dialects/doris.cjs +2 -0
  68. package/dist/dialects/doris.cjs.map +1 -0
  69. package/dist/dialects/doris.d.cts +484 -0
  70. package/dist/dialects/doris.d.ts +484 -0
  71. package/dist/dialects/doris.js +2 -0
  72. package/dist/dialects/doris.js.map +1 -0
  73. package/dist/dialects/dremio.cjs +2 -0
  74. package/dist/dialects/dremio.cjs.map +1 -0
  75. package/dist/dialects/dremio.d.cts +522 -0
  76. package/dist/dialects/dremio.d.ts +522 -0
  77. package/dist/dialects/dremio.js +2 -0
  78. package/dist/dialects/dremio.js.map +1 -0
  79. package/dist/dialects/drill.cjs +2 -0
  80. package/dist/dialects/drill.cjs.map +1 -0
  81. package/dist/dialects/drill.d.cts +512 -0
  82. package/dist/dialects/drill.d.ts +512 -0
  83. package/dist/dialects/drill.js +2 -0
  84. package/dist/dialects/drill.js.map +1 -0
  85. package/dist/dialects/druid.cjs +2 -0
  86. package/dist/dialects/druid.cjs.map +1 -0
  87. package/dist/dialects/druid.d.cts +17 -0
  88. package/dist/dialects/druid.d.ts +17 -0
  89. package/dist/dialects/druid.js +2 -0
  90. package/dist/dialects/druid.js.map +1 -0
  91. package/dist/dialects/duckdb.cjs +86 -0
  92. package/dist/dialects/duckdb.cjs.map +1 -0
  93. package/dist/dialects/duckdb.d.cts +756 -0
  94. package/dist/dialects/duckdb.d.ts +756 -0
  95. package/dist/dialects/duckdb.js +86 -0
  96. package/dist/dialects/duckdb.js.map +1 -0
  97. package/dist/dialects/dune.cjs +2 -0
  98. package/dist/dialects/dune.cjs.map +1 -0
  99. package/dist/dialects/dune.d.cts +21 -0
  100. package/dist/dialects/dune.d.ts +21 -0
  101. package/dist/dialects/dune.js +2 -0
  102. package/dist/dialects/dune.js.map +1 -0
  103. package/dist/dialects/exasol.cjs +2 -0
  104. package/dist/dialects/exasol.cjs.map +1 -0
  105. package/dist/dialects/exasol.d.cts +507 -0
  106. package/dist/dialects/exasol.d.ts +507 -0
  107. package/dist/dialects/exasol.js +2 -0
  108. package/dist/dialects/exasol.js.map +1 -0
  109. package/dist/dialects/fabric.cjs +2 -0
  110. package/dist/dialects/fabric.cjs.map +1 -0
  111. package/dist/dialects/fabric.d.cts +463 -0
  112. package/dist/dialects/fabric.d.ts +463 -0
  113. package/dist/dialects/fabric.js +2 -0
  114. package/dist/dialects/fabric.js.map +1 -0
  115. package/dist/dialects/hive.cjs +2 -0
  116. package/dist/dialects/hive.cjs.map +1 -0
  117. package/dist/dialects/hive.d.cts +585 -0
  118. package/dist/dialects/hive.d.ts +585 -0
  119. package/dist/dialects/hive.js +2 -0
  120. package/dist/dialects/hive.js.map +1 -0
  121. package/dist/dialects/materialize.cjs +2 -0
  122. package/dist/dialects/materialize.cjs.map +1 -0
  123. package/dist/dialects/materialize.d.cts +890 -0
  124. package/dist/dialects/materialize.d.ts +890 -0
  125. package/dist/dialects/materialize.js +2 -0
  126. package/dist/dialects/materialize.js.map +1 -0
  127. package/dist/dialects/mysql.cjs +2 -0
  128. package/dist/dialects/mysql.cjs.map +1 -0
  129. package/dist/dialects/mysql.d.cts +292 -0
  130. package/dist/dialects/mysql.d.ts +292 -0
  131. package/dist/dialects/mysql.js +2 -0
  132. package/dist/dialects/mysql.js.map +1 -0
  133. package/dist/dialects/oracle.cjs +2 -0
  134. package/dist/dialects/oracle.cjs.map +1 -0
  135. package/dist/dialects/oracle.d.cts +539 -0
  136. package/dist/dialects/oracle.d.ts +539 -0
  137. package/dist/dialects/oracle.js +2 -0
  138. package/dist/dialects/oracle.js.map +1 -0
  139. package/dist/dialects/postgres.cjs +2 -0
  140. package/dist/dialects/postgres.cjs.map +1 -0
  141. package/dist/dialects/postgres.d.cts +587 -0
  142. package/dist/dialects/postgres.d.ts +587 -0
  143. package/dist/dialects/postgres.js +2 -0
  144. package/dist/dialects/postgres.js.map +1 -0
  145. package/dist/dialects/presto.cjs +2 -0
  146. package/dist/dialects/presto.cjs.map +1 -0
  147. package/dist/dialects/presto.d.cts +173 -0
  148. package/dist/dialects/presto.d.ts +173 -0
  149. package/dist/dialects/presto.js +2 -0
  150. package/dist/dialects/presto.js.map +1 -0
  151. package/dist/dialects/prql.cjs +2 -0
  152. package/dist/dialects/prql.cjs.map +1 -0
  153. package/dist/dialects/prql.d.cts +496 -0
  154. package/dist/dialects/prql.d.ts +496 -0
  155. package/dist/dialects/prql.js +2 -0
  156. package/dist/dialects/prql.js.map +1 -0
  157. package/dist/dialects/redshift.cjs +2 -0
  158. package/dist/dialects/redshift.cjs.map +1 -0
  159. package/dist/dialects/redshift.d.cts +132 -0
  160. package/dist/dialects/redshift.d.ts +132 -0
  161. package/dist/dialects/redshift.js +2 -0
  162. package/dist/dialects/redshift.js.map +1 -0
  163. package/dist/dialects/risingwave.cjs +2 -0
  164. package/dist/dialects/risingwave.cjs.map +1 -0
  165. package/dist/dialects/risingwave.d.cts +478 -0
  166. package/dist/dialects/risingwave.d.ts +478 -0
  167. package/dist/dialects/risingwave.js +2 -0
  168. package/dist/dialects/risingwave.js.map +1 -0
  169. package/dist/dialects/singlestore.cjs +2 -0
  170. package/dist/dialects/singlestore.cjs.map +1 -0
  171. package/dist/dialects/singlestore.d.cts +73 -0
  172. package/dist/dialects/singlestore.d.ts +73 -0
  173. package/dist/dialects/singlestore.js +2 -0
  174. package/dist/dialects/singlestore.js.map +1 -0
  175. package/dist/dialects/snowflake.cjs +3 -0
  176. package/dist/dialects/snowflake.cjs.map +1 -0
  177. package/dist/dialects/snowflake.d.cts +320 -0
  178. package/dist/dialects/snowflake.d.ts +320 -0
  179. package/dist/dialects/snowflake.js +3 -0
  180. package/dist/dialects/snowflake.js.map +1 -0
  181. package/dist/dialects/solr.cjs +2 -0
  182. package/dist/dialects/solr.cjs.map +1 -0
  183. package/dist/dialects/solr.d.cts +458 -0
  184. package/dist/dialects/solr.d.ts +458 -0
  185. package/dist/dialects/solr.js +2 -0
  186. package/dist/dialects/solr.js.map +1 -0
  187. package/dist/dialects/spark.cjs +2 -0
  188. package/dist/dialects/spark.cjs.map +1 -0
  189. package/dist/dialects/spark.d.cts +484 -0
  190. package/dist/dialects/spark.d.ts +484 -0
  191. package/dist/dialects/spark.js +2 -0
  192. package/dist/dialects/spark.js.map +1 -0
  193. package/dist/dialects/spark2.cjs +2 -0
  194. package/dist/dialects/spark2.cjs.map +1 -0
  195. package/dist/dialects/spark2.d.cts +486 -0
  196. package/dist/dialects/spark2.d.ts +486 -0
  197. package/dist/dialects/spark2.js +2 -0
  198. package/dist/dialects/spark2.js.map +1 -0
  199. package/dist/dialects/sqlite.cjs +2 -0
  200. package/dist/dialects/sqlite.cjs.map +1 -0
  201. package/dist/dialects/sqlite.d.cts +510 -0
  202. package/dist/dialects/sqlite.d.ts +510 -0
  203. package/dist/dialects/sqlite.js +2 -0
  204. package/dist/dialects/sqlite.js.map +1 -0
  205. package/dist/dialects/starrocks.cjs +2 -0
  206. package/dist/dialects/starrocks.cjs.map +1 -0
  207. package/dist/dialects/starrocks.d.cts +518 -0
  208. package/dist/dialects/starrocks.d.ts +518 -0
  209. package/dist/dialects/starrocks.js +2 -0
  210. package/dist/dialects/starrocks.js.map +1 -0
  211. package/dist/dialects/tableau.cjs +2 -0
  212. package/dist/dialects/tableau.cjs.map +1 -0
  213. package/dist/dialects/tableau.d.cts +466 -0
  214. package/dist/dialects/tableau.d.ts +466 -0
  215. package/dist/dialects/tableau.js +2 -0
  216. package/dist/dialects/tableau.js.map +1 -0
  217. package/dist/dialects/teradata.cjs +2 -0
  218. package/dist/dialects/teradata.cjs.map +1 -0
  219. package/dist/dialects/teradata.d.cts +539 -0
  220. package/dist/dialects/teradata.d.ts +539 -0
  221. package/dist/dialects/teradata.js +2 -0
  222. package/dist/dialects/teradata.js.map +1 -0
  223. package/dist/dialects/trino.cjs +2 -0
  224. package/dist/dialects/trino.cjs.map +1 -0
  225. package/dist/dialects/trino.d.cts +465 -0
  226. package/dist/dialects/trino.d.ts +465 -0
  227. package/dist/dialects/trino.js +2 -0
  228. package/dist/dialects/trino.js.map +1 -0
  229. package/dist/dialects/tsql.cjs +2 -0
  230. package/dist/dialects/tsql.cjs.map +1 -0
  231. package/dist/dialects/tsql.d.cts +703 -0
  232. package/dist/dialects/tsql.d.ts +703 -0
  233. package/dist/dialects/tsql.js +2 -0
  234. package/dist/dialects/tsql.js.map +1 -0
  235. package/dist/index.cjs +5 -25
  236. package/dist/index.cjs.map +1 -1
  237. package/dist/index.d.cts +3 -14178
  238. package/dist/index.d.ts +3 -14178
  239. package/dist/index.js +5 -25
  240. package/dist/index.js.map +1 -1
  241. package/dist/tokens-VcMD09XM.d.cts +15805 -0
  242. package/dist/tokens-VcMD09XM.d.ts +15805 -0
  243. package/package.json +171 -5
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dialects/singlestore.ts"],"sourcesContent":["import {\n cache,\n} from '../port_internals';\nimport type {\n AllExpr,\n AlterColumnExpr,\n CollateExpr,\n ComputedColumnConstraintExpr,\n CurrentTimeExpr,\n Expression, IdentifierExpr,\n JsonExtractArrayExpr,\n JsonValueExpr,\n StandardHashExpr,\n TruncateTableExpr,\n} from '../expressions';\nimport {\n ApproxDistinctExpr,\n ApproxQuantileExpr,\n CastExpr, DataTypeExprKind,\n DataTypeExpr,\n DataTypeParamExpr,\n LiteralExpr,\n StrToDateExpr, StrToTimeExpr, TimeToStrExpr, ToCharExpr, TsOrDsToDateExpr,\n ParenExpr,\n DayOfWeekExpr,\n StrToUnixExpr,\n UnixToTimeExpr,\n DateBinExpr,\n JsonbExistsExpr,\n JsonbExtractExpr,\n JsonbExtractScalarExpr,\n JsonExtractExpr,\n JsonExtractScalarExpr,\n JsonArrayContainsExpr,\n JsonKeysExpr,\n JsonFormatExpr,\n JsonArrayExpr,\n JsonObjectExpr,\n DateExpr,\n TimestampDiffExpr,\n HllExpr,\n VariancePopExpr,\n ContainsExpr,\n RegexpExtractAllExpr,\n RegexpExtractExpr,\n ReduceExpr,\n JsonArrayAggExpr,\n UtcTimeExpr,\n UtcDateExpr,\n UtcTimestampExpr,\n TryCastExpr,\n JsonExistsExpr,\n RenameColumnExpr,\n JsonPathKeyExpr,\n JsonPathRootExpr,\n JsonPathSubscriptExpr,\n CastToStrTypeExpr,\n TimeToUnixExpr,\n TimeStrToUnixExpr,\n UnixSecondsExpr,\n UnixToStrExpr,\n UnixToTimeStrExpr,\n TimeStrToDateExpr,\n FromTimeZoneExpr,\n DiToDateExpr,\n DateToDiExpr,\n TsOrDiToDiExpr,\n TimeExpr,\n DatetimeAddExpr,\n DatetimeTruncExpr,\n DatetimeSubExpr,\n TimestampTruncExpr,\n DatetimeDiffExpr,\n DateTruncExpr,\n DateDiffExpr,\n TsOrDsDiffExpr,\n CurrentDatetimeExpr,\n CurrentTimestampExpr,\n CurrentDateExpr,\n DayOfWeekIsoExpr,\n DayOfMonthExpr,\n CountIfExpr,\n LogicalOrExpr,\n LogicalAndExpr,\n VarianceExpr,\n XorExpr,\n CbrtExpr,\n PowExpr,\n RegexpLikeExpr,\n RepeatExpr,\n MulExpr,\n IsAsciiExpr,\n Md5DigestExpr,\n RegexpILikeExpr,\n StartsWithExpr,\n FromBaseExpr,\n LowerExpr,\n StuffExpr,\n NationalExpr,\n MatchAgainstExpr,\n ShowExpr,\n DescribeExpr,\n} from '../expressions';\nimport {\n unsupportedArgs, type Generator,\n} from '../generator';\nimport {\n seqGet,\n} from '../helper';\nimport {\n Parser,\n} from '../parser';\nimport type {\n TokenPair,\n} from '../tokens';\nimport {\n TokenType,\n} from '../tokens';\nimport {\n boolXorSql,\n buildFormattedTime,\n buildJsonExtractPath,\n countIfToSum,\n dateAddIntervalSql,\n Dialect, Dialects,\n jsonExtractSegments,\n jsonPathKeyOnlyName,\n renameFunc,\n timestampDiffSql,\n timestampTruncSql,\n NullOrderingSupported,\n} from './dialect';\nimport {\n dateAddSql,\n MySQL, removeTsOrDsToDate, showParser,\n} from './mysql';\n\nfunction castToTime6 (\n expression?: Expression,\n timeType: DataTypeExprKind = DataTypeExprKind.TIME,\n): CastExpr {\n return new CastExpr({\n this: expression,\n to: DataTypeExpr.build(timeType, {\n expressions: [\n new DataTypeParamExpr({\n this: LiteralExpr.number(6),\n }),\n ],\n }),\n });\n}\n\nclass SingleStoreTokenizer extends MySQL.Tokenizer {\n @cache\n static get BYTE_STRINGS (): TokenPair[] {\n return [\n [\n 'e\\'',\n '\\'',\n ],\n [\n 'E\\'',\n '\\'',\n ],\n ];\n }\n\n @cache\n static get ORIGINAL_KEYWORDS (): Record<string, TokenType> {\n return {\n ...MySQL.Tokenizer.KEYWORDS,\n 'BSON': TokenType.JSONB,\n 'GEOGRAPHYPOINT': TokenType.GEOGRAPHYPOINT,\n 'TIMESTAMP': TokenType.TIMESTAMP,\n 'UTC_DATE': TokenType.UTC_DATE,\n 'UTC_TIME': TokenType.UTC_TIME,\n 'UTC_TIMESTAMP': TokenType.UTC_TIMESTAMP,\n ':>': TokenType.COLON_GT,\n '!:>': TokenType.NCOLON_GT,\n '::$': TokenType.DCOLONDOLLAR,\n '::%': TokenType.DCOLONPERCENT,\n '::?': TokenType.DCOLONQMARK,\n 'RECORD': TokenType.STRUCT,\n };\n }\n}\n\nclass SingleStoreParser extends MySQL.Parser {\n @cache\n static get ID_VAR_TOKENS (): Set<TokenType> {\n return new Set([\n ...Parser.ID_VAR_TOKENS,\n TokenType.SESSION_USER,\n TokenType.CURRENT_CATALOG,\n TokenType.STRAIGHT_JOIN,\n ]);\n }\n\n @cache\n static get FUNCTIONS (): Record<string, (args: Expression[], options: {dialect: Dialect}) => Expression> {\n return (() => {\n const functions = {\n ...MySQL.Parser.FUNCTIONS,\n TO_DATE: buildFormattedTime(TsOrDsToDateExpr, {\n dialect: 'singlestore',\n }),\n TO_TIMESTAMP: buildFormattedTime(StrToTimeExpr, {\n dialect: 'singlestore',\n }),\n TO_CHAR: buildFormattedTime(ToCharExpr, {\n dialect: 'singlestore',\n }),\n STR_TO_DATE: buildFormattedTime(StrToDateExpr, {\n dialect: 'mysql',\n }),\n DATE_FORMAT: buildFormattedTime(TimeToStrExpr, {\n dialect: 'mysql',\n }),\n TIME_FORMAT: (args: Expression[]) =>\n new TimeToStrExpr({\n this: castToTime6(seqGet(args, 0)),\n format: MySQL.formatTime(seqGet(args, 1)),\n }),\n HOUR: (args: Expression[]) =>\n new CastExpr({\n this: new TimeToStrExpr({\n this: castToTime6(seqGet(args, 0)),\n format: MySQL.formatTime(LiteralExpr.string('%k')),\n }),\n to: DataTypeExpr.build(DataTypeExprKind.INT),\n }),\n MICROSECOND: (args: Expression[]) =>\n new CastExpr({\n this: new TimeToStrExpr({\n this: castToTime6(seqGet(args, 0)),\n format: MySQL.formatTime(LiteralExpr.string('%f')),\n }),\n to: DataTypeExpr.build(DataTypeExprKind.INT),\n }),\n SECOND: (args: Expression[]) =>\n new CastExpr({\n this: new TimeToStrExpr({\n this: castToTime6(seqGet(args, 0)),\n format: MySQL.formatTime(LiteralExpr.string('%s')),\n }),\n to: DataTypeExpr.build(DataTypeExprKind.INT),\n }),\n MINUTE: (args: Expression[]) =>\n new CastExpr({\n this: new TimeToStrExpr({\n this: castToTime6(seqGet(args, 0)),\n format: MySQL.formatTime(LiteralExpr.string('%i')),\n }),\n to: DataTypeExpr.build(DataTypeExprKind.INT),\n }),\n MONTHNAME: (args: Expression[]) =>\n new TimeToStrExpr({\n this: seqGet(args, 0),\n format: MySQL.formatTime(LiteralExpr.string('%M')),\n }),\n WEEKDAY: (args: Expression[]) =>\n new ParenExpr({\n this: (new DayOfWeekExpr({\n this: seqGet(args, 0),\n }).add(5))\n .mod(7),\n }),\n UNIX_TIMESTAMP: (args: unknown[]) => StrToUnixExpr.fromArgList(args),\n FROM_UNIXTIME: buildFormattedTime(UnixToTimeExpr, {\n dialect: 'mysql',\n }),\n TIME_BUCKET: (args: Expression[]) =>\n new DateBinExpr({\n this: seqGet(args, 0),\n expression: seqGet(args, 1),\n origin: seqGet(args, 2),\n }),\n BSON_EXTRACT_BSON: buildJsonExtractPath(JsonbExtractExpr),\n BSON_EXTRACT_STRING: buildJsonExtractPath(JsonbExtractScalarExpr, {\n jsonType: 'STRING',\n }),\n BSON_EXTRACT_DOUBLE: buildJsonExtractPath(JsonbExtractScalarExpr, {\n jsonType: 'DOUBLE',\n }),\n BSON_EXTRACT_BIGINT: buildJsonExtractPath(JsonbExtractScalarExpr, {\n jsonType: 'BIGINT',\n }),\n JSON_EXTRACT_JSON: buildJsonExtractPath(JsonExtractExpr),\n JSON_EXTRACT_STRING: buildJsonExtractPath(JsonExtractScalarExpr, {\n jsonType: 'STRING',\n }),\n JSON_EXTRACT_DOUBLE: buildJsonExtractPath(JsonExtractScalarExpr, {\n jsonType: 'DOUBLE',\n }),\n JSON_EXTRACT_BIGINT: buildJsonExtractPath(JsonExtractScalarExpr, {\n jsonType: 'BIGINT',\n }),\n JSON_ARRAY_CONTAINS_STRING: (args: Expression[]) =>\n new JsonArrayContainsExpr({\n this: seqGet(args, 1),\n expression: seqGet(args, 0),\n jsonType: 'STRING',\n }),\n JSON_ARRAY_CONTAINS_DOUBLE: (args: Expression[]) =>\n new JsonArrayContainsExpr({\n this: seqGet(args, 1),\n expression: seqGet(args, 0),\n jsonType: 'DOUBLE',\n }),\n JSON_ARRAY_CONTAINS_JSON: (args: Expression[]) =>\n new JsonArrayContainsExpr({\n this: seqGet(args, 1),\n expression: seqGet(args, 0),\n jsonType: 'JSON',\n }),\n JSON_KEYS: (args: Expression[]) =>\n new JsonKeysExpr({\n this: seqGet(args, 0),\n expressions: args.slice(1),\n }),\n JSON_PRETTY: (args: unknown[]) => JsonFormatExpr.fromArgList(args),\n JSON_BUILD_ARRAY: (args: Expression[]) => new JsonArrayExpr({\n expressions: args,\n }),\n JSON_BUILD_OBJECT: (args: Expression[]) => new JsonObjectExpr({\n expressions: args,\n }),\n DATE: (args: unknown[]) => DateExpr.fromArgList(args),\n DAYNAME: (args: Expression[]) =>\n new TimeToStrExpr({\n this: seqGet(args, 0),\n format: MySQL.formatTime(LiteralExpr.string('%W')),\n }),\n TIMESTAMPDIFF: (args: Expression[]) =>\n new TimestampDiffExpr({\n this: seqGet(args, 2),\n expression: seqGet(args, 1),\n unit: seqGet(args, 0),\n }),\n APPROX_COUNT_DISTINCT: (args: unknown[]) => HllExpr.fromArgList(args),\n APPROX_PERCENTILE: (args: Expression[]) =>\n new ApproxQuantileExpr({\n this: seqGet(args, 0),\n quantile: seqGet(args, 1),\n errorTolerance: seqGet(args, 2),\n }),\n VARIANCE: (args: unknown[]) => VariancePopExpr.fromArgList(args),\n INSTR: (args: unknown[]) => ContainsExpr.fromArgList(args),\n REGEXP_MATCH: (args: Expression[]) =>\n new RegexpExtractAllExpr({\n this: seqGet(args, 0),\n expression: seqGet(args, 1),\n parameters: seqGet(args, 2),\n }),\n REGEXP_SUBSTR: (args: Expression[]) =>\n new RegexpExtractExpr({\n this: seqGet(args, 0),\n expression: seqGet(args, 1),\n position: seqGet(args, 2),\n occurrence: seqGet(args, 3),\n parameters: seqGet(args, 4),\n }),\n REDUCE: (args: Expression[]) =>\n new ReduceExpr({\n initial: seqGet(args, 0),\n this: seqGet(args, 1),\n merge: seqGet(args, 2),\n }),\n };\n return functions;\n })();\n }\n\n @cache\n static get FUNCTION_PARSERS (): Partial<Record<string, (this: Parser) => Expression | undefined>> {\n return {\n ...MySQL.Parser.FUNCTION_PARSERS,\n JSON_AGG: function (this: Parser) {\n return this.expression(JsonArrayAggExpr, {\n this: (this as SingleStoreParser).parseTerm(),\n order: (this as SingleStoreParser).parseOrder(),\n });\n },\n };\n }\n\n @cache\n static get NO_PAREN_FUNCTIONS (): Partial<Record<TokenType, typeof Expression>> {\n return {\n ...MySQL.Parser.NO_PAREN_FUNCTIONS,\n [TokenType.UTC_DATE]: UtcDateExpr,\n [TokenType.UTC_TIME]: UtcTimeExpr,\n [TokenType.UTC_TIMESTAMP]: UtcTimestampExpr,\n };\n }\n\n @cache\n static get CAST_COLUMN_OPERATORS () {\n return new Set([\n TokenType.COLON_GT,\n TokenType.NCOLON_GT,\n ]);\n }\n\n @cache\n static get COLUMN_OPERATORS (): Partial<Record<TokenType, undefined | ((this: Parser, this_?: Expression, to?: Expression) => Expression)>> {\n return (() => {\n const operators = {\n ...MySQL.Parser.COLUMN_OPERATORS,\n [TokenType.COLON_GT]: function (this: Parser, thisNode?: Expression, to?: Expression) {\n return this.expression(CastExpr, {\n this: thisNode,\n to,\n });\n },\n [TokenType.NCOLON_GT]: function (this: Parser, thisNode?: Expression, to?: Expression) {\n return this.expression(TryCastExpr, {\n this: thisNode,\n to,\n });\n },\n [TokenType.DCOLON]: function (this: Parser, thisNode?: Expression, path?: Expression) {\n return buildJsonExtractPath(JsonExtractExpr)([\n thisNode,\n LiteralExpr.string((path as IdentifierExpr).name),\n ]);\n },\n [TokenType.DCOLONDOLLAR]: function (this: Parser, thisNode?: Expression, path?: Expression) {\n return buildJsonExtractPath(JsonExtractScalarExpr, {\n jsonType: 'STRING',\n })([\n thisNode,\n LiteralExpr.string((path as IdentifierExpr).name),\n ]);\n },\n [TokenType.DCOLONPERCENT]: function (this: Parser, thisNode?: Expression, path?: Expression) {\n return buildJsonExtractPath(JsonExtractScalarExpr, {\n jsonType: 'DOUBLE',\n })([\n thisNode,\n LiteralExpr.string((path as IdentifierExpr).name),\n ]);\n },\n [TokenType.DCOLONQMARK]: function (this: Parser, thisNode?: Expression, path?: Expression) {\n return this.expression(JsonExistsExpr, {\n this: thisNode,\n path: path?.name,\n fromDcolonqmark: true,\n });\n },\n };\n delete operators[TokenType.ARROW];\n delete operators[TokenType.DARROW];\n delete operators[TokenType.HASH_ARROW];\n delete operators[TokenType.DHASH_ARROW];\n delete operators[TokenType.PLACEHOLDER];\n return operators;\n })();\n }\n\n @cache\n static get SHOW_PARSERS (): Record<string, (this: Parser) => Expression> {\n return {\n ...MySQL.Parser.SHOW_PARSERS,\n 'AGGREGATES': showParser('AGGREGATES'),\n 'CDC EXTRACTOR POOL': showParser('CDC EXTRACTOR POOL'),\n 'CREATE AGGREGATE': showParser('CREATE AGGREGATE', {\n target: true,\n }),\n 'CREATE PIPELINE': showParser('CREATE PIPELINE', {\n target: true,\n }),\n 'CREATE PROJECTION': showParser('CREATE PROJECTION', {\n target: true,\n }),\n 'DATABASE STATUS': showParser('DATABASE STATUS'),\n 'DISTRIBUTED_PLANCACHE STATUS': showParser('DISTRIBUTED_PLANCACHE STATUS'),\n 'FULLTEXT SERVICE METRICS LOCAL': showParser('FULLTEXT SERVICE METRICS LOCAL'),\n 'FULLTEXT SERVICE METRICS FOR NODE': showParser('FULLTEXT SERVICE METRICS FOR NODE', {\n target: true,\n }),\n 'FULLTEXT SERVICE STATUS': showParser('FULLTEXT SERVICE STATUS'),\n 'FUNCTIONS': showParser('FUNCTIONS'),\n 'GROUPS': showParser('GROUPS'),\n 'GROUPS FOR ROLE': showParser('GROUPS FOR ROLE', {\n target: true,\n }),\n 'GROUPS FOR USER': showParser('GROUPS FOR USER', {\n target: true,\n }),\n 'INDEXES': showParser('INDEX', {\n target: 'FROM',\n }),\n 'KEYS': showParser('INDEX', {\n target: 'FROM',\n }),\n 'LINKS': showParser('LINKS', {\n target: 'ON',\n }),\n 'LOAD ERRORS': showParser('LOAD ERRORS'),\n 'LOAD WARNINGS': showParser('LOAD WARNINGS'),\n 'PARTITIONS': showParser('PARTITIONS', {\n target: 'ON',\n }),\n 'PIPELINES': showParser('PIPELINES'),\n 'PLAN': showParser('PLAN', {\n target: true,\n }),\n 'PLANCACHE': showParser('PLANCACHE'),\n 'PROCEDURES': showParser('PROCEDURES'),\n 'PROJECTIONS': showParser('PROJECTIONS', {\n target: 'ON TABLE',\n }),\n 'REPLICATION STATUS': showParser('REPLICATION STATUS'),\n 'REPRODUCTION': showParser('REPRODUCTION'),\n 'RESOURCE POOLS': showParser('RESOURCE POOLS'),\n 'ROLES': showParser('ROLES'),\n 'ROLES FOR USER': showParser('ROLES FOR USER', {\n target: true,\n }),\n 'ROLES FOR GROUP': showParser('ROLES FOR GROUP', {\n target: true,\n }),\n 'STATUS EXTENDED': showParser('STATUS EXTENDED'),\n 'USERS': showParser('USERS'),\n 'USERS FOR ROLE': showParser('USERS FOR ROLE', {\n target: true,\n }),\n 'USERS FOR GROUP': showParser('USERS FOR GROUP', {\n target: true,\n }),\n };\n }\n\n @cache\n static get ALTER_PARSERS (): Partial<Record<string, (this: Parser) => Expression | Expression[] | undefined>> {\n return {\n ...MySQL.Parser.ALTER_PARSERS,\n CHANGE: function (this: Parser) {\n return this.expression(RenameColumnExpr, {\n this: (this as SingleStoreParser).parseColumn(),\n to: (this as SingleStoreParser).parseColumn(),\n });\n },\n };\n }\n\n parseVectorExpressions (expressions: Expression[]): Expression[] {\n let typeName = (expressions[1] as IdentifierExpr).name.toUpperCase();\n const aliases: Record<string, string> = (this.dialect._constructor as typeof SingleStore).VECTOR_TYPE_ALIASES;\n if (typeName in aliases) {\n typeName = aliases[typeName];\n }\n\n return [\n DataTypeExpr.build(typeName, {\n dialect: this.dialect,\n })!,\n expressions[0],\n ];\n }\n\n // port from _Dialect metaclass logic\n @cache\n static get TABLE_ALIAS_TOKENS (): Set<TokenType> {\n return new Set([\n ...MySQL.Parser.TABLE_ALIAS_TOKENS,\n TokenType.STRAIGHT_JOIN,\n ]);\n }\n}\nclass SingleStoreGenerator extends MySQL.Generator {\n // port from _Dialect metaclass logic\n @cache\n static get AFTER_HAVING_MODIFIER_TRANSFORMS () {\n const modifiers = new Map(super.AFTER_HAVING_MODIFIER_TRANSFORMS);\n [\n 'cluster',\n 'distribute',\n 'sort',\n ].forEach((m) => modifiers.delete(m));\n return modifiers;\n }\n\n // port from _Dialect metaclass logic\n static SUPPORTS_DECODE_CASE = false;\n // port from _Dialect metaclass logic\n static TRY_SUPPORTED = false;\n // port from _Dialect metaclass logic\n static SUPPORTS_UESCAPE = false;\n\n @cache\n static get NULL_ORDERING_SUPPORTED () {\n return NullOrderingSupported.SUPPORTED;\n }\n\n static MATCH_AGAINST_TABLE_PREFIX = 'TABLE ';\n @cache\n static get STRUCT_DELIMITER () {\n return [\n '(',\n ')',\n ];\n }\n\n static UNICODE_SUBSTITUTE = (_match: string, group: string) => {\n return String.fromCharCode(parseInt(group, 16));\n };\n\n @cache\n static get SUPPORTED_JSON_PATH_PARTS (): Set<typeof Expression> {\n return new Set([\n JsonPathKeyExpr,\n JsonPathRootExpr,\n JsonPathSubscriptExpr,\n ]);\n }\n\n @cache\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static get ORIGINAL_TRANSFORMS (): Map<typeof Expression, (this: Generator, e: any) => string> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transforms = new Map<typeof Expression, (this: Generator, e: any) => string>([\n ...MySQL.Generator.TRANSFORMS,\n [\n TsOrDsToDateExpr,\n function (this: Generator, e: TsOrDsToDateExpr) {\n return e.args.format\n ? this.func('TO_DATE', [\n e.args.this,\n this.formatTime(e),\n ])\n : this.func('DATE', [\n e.args.this,\n ]);\n },\n ],\n [\n StrToTimeExpr,\n function (this: Generator, e: StrToTimeExpr) {\n return this.func('TO_TIMESTAMP', [\n e.args.this,\n this.formatTime(e),\n ]);\n },\n ],\n [\n ToCharExpr,\n function (this: Generator, e: ToCharExpr) {\n return this.func('TO_CHAR', [\n e.args.this,\n this.formatTime(e),\n ]);\n },\n ],\n [\n StrToDateExpr,\n function (this: Generator, e: StrToDateExpr) {\n return this.func('STR_TO_DATE', [\n e.args.this,\n this.formatTime(\n e,\n MySQL.INVERSE_TIME_MAPPING,\n MySQL.INVERSE_TIME_TRIE,\n ),\n ]);\n },\n ],\n [\n TimeToStrExpr,\n function (this: Generator, e: TimeToStrExpr) {\n return this.func('DATE_FORMAT', [\n e.args.this,\n this.formatTime(\n e,\n MySQL.INVERSE_TIME_MAPPING,\n MySQL.INVERSE_TIME_TRIE,\n ),\n ]);\n },\n ],\n [\n DateExpr,\n function (this: Generator, e: DateExpr) {\n unsupportedArgs.call(this, e, 'zone', 'expressions');\n return renameFunc('DATE').call(this, e);\n },\n ],\n [\n CastExpr,\n function (this: Generator, e: CastExpr) {\n unsupportedArgs.call(this, e, 'format', 'action', 'default');\n return `${this.sql(e.args.this)} :> ${this.sql(e.args.to)}`;\n },\n ],\n [\n TryCastExpr,\n function (this: Generator, e: TryCastExpr) {\n unsupportedArgs.call(this, e, 'format', 'action', 'default');\n return `${this.sql(e.args.this)} !:> ${this.sql(e.args.to)}`;\n },\n ],\n [\n CastToStrTypeExpr,\n function (this: Generator, e: CastToStrTypeExpr) {\n return this.sql(new CastExpr({\n this: e.args.this,\n to: DataTypeExpr.build(e.args.to?.name),\n }));\n },\n ],\n [\n StrToUnixExpr,\n function (this: Generator, e: StrToUnixExpr) {\n unsupportedArgs.call(this, e, 'format');\n return renameFunc('UNIX_TIMESTAMP').call(this, e);\n },\n ],\n [\n TimeToUnixExpr,\n renameFunc('UNIX_TIMESTAMP'),\n ],\n [\n TimeStrToUnixExpr,\n renameFunc('UNIX_TIMESTAMP'),\n ],\n [\n UnixSecondsExpr,\n renameFunc('UNIX_TIMESTAMP'),\n ],\n [\n UnixToStrExpr,\n function (this: Generator, e: UnixToStrExpr) {\n return this.func('FROM_UNIXTIME', [\n e.args.this,\n this.formatTime(\n e,\n MySQL.INVERSE_TIME_MAPPING,\n MySQL.INVERSE_TIME_TRIE,\n ),\n ]);\n },\n ],\n [\n UnixToTimeExpr,\n function (this: Generator, e: UnixToTimeExpr) {\n unsupportedArgs.call(this, e, 'scale', 'zone', 'hours', 'minutes');\n return this.func('FROM_UNIXTIME', [\n e.args.this,\n this.formatTime(\n e,\n MySQL.INVERSE_TIME_MAPPING,\n MySQL.INVERSE_TIME_TRIE,\n ),\n ]);\n },\n ],\n [\n UnixToTimeStrExpr,\n function (this: Generator, e: UnixToTimeStrExpr) {\n return `FROM_UNIXTIME(${this.sql(e.args.this)}) :> TEXT`;\n },\n ],\n [\n DateBinExpr,\n function (this: Generator, e: DateBinExpr) {\n unsupportedArgs.call(this, e, 'unit', 'zone');\n return this.func('TIME_BUCKET', [\n e.args.this,\n e.args.expression,\n e.args.origin,\n ]);\n },\n ],\n [\n TimeStrToDateExpr,\n function (this: Generator, e: TimeStrToDateExpr) {\n return this.sql(new CastExpr({\n this: e.args.this,\n to: DataTypeExpr.build(DataTypeExprKind.DATE),\n }));\n },\n ],\n [\n FromTimeZoneExpr,\n function (this: Generator, e: FromTimeZoneExpr) {\n return this.func('CONVERT_TZ', [\n e.args.this,\n e.args.zone,\n '\\'UTC\\'',\n ]);\n },\n ],\n [\n DiToDateExpr,\n function (this: Generator, e: DiToDateExpr) {\n return `STR_TO_DATE(${this.sql(e.args.this)}, ${SingleStore.DATEINT_FORMAT})`;\n },\n ],\n [\n DateToDiExpr,\n function (this: Generator, e: DateToDiExpr) {\n return `(DATE_FORMAT(${this.sql(e.args.this)}, ${SingleStore.DATEINT_FORMAT}) :> INT)`;\n },\n ],\n [\n TsOrDiToDiExpr,\n function (this: Generator, e: TsOrDiToDiExpr) {\n return `(DATE_FORMAT(${this.sql(e.args.this)}, ${SingleStore.DATEINT_FORMAT}) :> INT)`;\n },\n ],\n [\n TimeExpr,\n function (this: Generator, e: TimeExpr) {\n unsupportedArgs.call(this, e, 'zone');\n return `${this.sql(e.args.this)} :> TIME`;\n },\n ],\n [\n DatetimeAddExpr,\n removeTsOrDsToDate(dateAddSql('ADD')),\n ],\n [\n DatetimeTruncExpr,\n function (this: Generator, e: DatetimeTruncExpr) {\n unsupportedArgs.call(this, e, 'zone');\n return timestampTruncSql().call(this, e as TimestampTruncExpr);\n },\n ],\n [\n DatetimeSubExpr,\n dateAddIntervalSql('DATE', 'SUB'),\n ],\n [\n DatetimeDiffExpr,\n timestampDiffSql,\n ],\n [\n DateTruncExpr,\n function (this: Generator, e: DateTruncExpr) {\n unsupportedArgs.call(this, e, 'zone');\n return timestampTruncSql().call(this, e as TimestampTruncExpr);\n },\n ],\n [\n DateDiffExpr,\n function (this: Generator, e: DateDiffExpr) {\n unsupportedArgs.call(this, e, 'zone');\n return e.args.unit !== undefined\n ? timestampDiffSql.call(this, e)\n : this.func('DATEDIFF', [\n e.args.this,\n e.args.expression,\n ]);\n },\n ],\n [\n TsOrDsDiffExpr,\n function (this: Generator, e: TsOrDsDiffExpr) {\n return e.args.unit !== undefined\n ? timestampDiffSql.call(this, e)\n : this.func('DATEDIFF', [\n e.args.this,\n e.args.expression,\n ]);\n },\n ],\n [\n TimestampTruncExpr,\n function (this: Generator, e: TimestampTruncExpr) {\n unsupportedArgs.call(this, e, 'zone');\n return timestampTruncSql().call(this, e);\n },\n ],\n [\n CurrentDatetimeExpr,\n function (this: Generator, _e: CurrentDatetimeExpr) {\n return this.sql(castToTime6(new CurrentTimestampExpr({\n this: LiteralExpr.number(6),\n }), DataTypeExprKind.DATETIME));\n },\n ],\n [\n JsonExtractExpr,\n function (this: Generator, e: JsonExtractExpr) {\n unsupportedArgs.call(this, e, 'onlyJsonTypes', 'expressions', 'variantExtract', 'jsonQuery', 'option', 'quote', 'onCondition', 'requiresJson');\n return jsonExtractSegments('JSON_EXTRACT_JSON').call(this, e);\n },\n ],\n [\n JsonbExtractExpr,\n jsonExtractSegments('BSON_EXTRACT_BSON'),\n ],\n [\n JsonPathKeyExpr,\n jsonPathKeyOnlyName,\n ],\n [\n JsonPathSubscriptExpr,\n function (this: Generator, e: JsonPathSubscriptExpr) {\n return this.jsonPathPart(e.args.this);\n },\n ],\n [\n JsonPathRootExpr,\n () => '',\n ],\n [\n JsonFormatExpr,\n function (this: Generator, e: JsonFormatExpr) {\n unsupportedArgs.call(this, e, 'options', 'isJson');\n return renameFunc('JSON_PRETTY').call(this, e);\n },\n ],\n [\n JsonArrayAggExpr,\n function (this: Generator, e: JsonArrayAggExpr) {\n unsupportedArgs.call(this, e, 'nullHandling', 'returnType', 'strict');\n return this.func('JSON_AGG', [\n e.args.this,\n ], {\n suffix: `${this.sql(e.args.order)})`,\n });\n },\n ],\n [\n JsonArrayExpr,\n function (this: Generator, e: JsonArrayExpr) {\n unsupportedArgs.call(this, e, 'nullHandling', 'returnType', 'strict');\n return renameFunc('JSON_BUILD_ARRAY').call(this, e);\n },\n ],\n [\n JsonbExistsExpr,\n function (this: Generator, e: JsonbExistsExpr) {\n return this.func('BSON_MATCH_ANY_EXISTS', [\n e.args.this,\n e.args.path,\n ]);\n },\n ],\n [\n JsonExistsExpr,\n function (this: Generator, e: JsonExistsExpr) {\n return e.args.fromDcolonqmark\n ? `${this.sql(e.args.this)}::?${this.sql(e.args.path)}`\n : this.func('JSON_MATCH_ANY_EXISTS', [\n e.args.this,\n e.args.path,\n ]);\n },\n ],\n [\n JsonObjectExpr,\n function (this: Generator, e: JsonObjectExpr) {\n unsupportedArgs.call(this, e, 'nullHandling', 'uniqueKeys', 'returnType', 'encoding');\n return renameFunc('JSON_BUILD_OBJECT').call(this, e);\n },\n ],\n [\n DayOfWeekIsoExpr,\n function (this: Generator, e: DayOfWeekIsoExpr) {\n return `((${this.func('DAYOFWEEK', [\n e.args.this,\n ])} % 7) + 1)`;\n },\n ],\n [\n DayOfMonthExpr,\n renameFunc('DAY'),\n ],\n [\n HllExpr,\n renameFunc('APPROX_COUNT_DISTINCT'),\n ],\n [\n ApproxDistinctExpr,\n renameFunc('APPROX_COUNT_DISTINCT'),\n ],\n [\n CountIfExpr,\n countIfToSum,\n ],\n [\n LogicalOrExpr,\n function (this: Generator, e: LogicalOrExpr) {\n return `MAX(ABS(${this.sql(e.args.this)}))`;\n },\n ],\n [\n LogicalAndExpr,\n function (this: Generator, e: LogicalAndExpr) {\n return `MIN(ABS(${this.sql(e.args.this)}))`;\n },\n ],\n [\n ApproxQuantileExpr,\n function (this: Generator, e: ApproxQuantileExpr) {\n unsupportedArgs.call(this, e, 'accuracy', 'weight');\n return this.func('APPROX_PERCENTILE', [\n e.args.this,\n e.args.quantile,\n e.args.errorTolerance,\n ]);\n },\n ],\n [\n VarianceExpr,\n renameFunc('VAR_SAMP'),\n ],\n [\n VariancePopExpr,\n renameFunc('VAR_POP'),\n ],\n [\n XorExpr,\n boolXorSql,\n ],\n [\n CbrtExpr,\n function (this: Generator, e: CbrtExpr) {\n return this.sql(new PowExpr({\n this: e.args.this as Expression,\n expression: LiteralExpr.number(1).div(LiteralExpr.number(3)),\n }));\n },\n ],\n [\n RegexpLikeExpr,\n function (this: Generator, e: RegexpLikeExpr) {\n return this.binary(e, 'RLIKE');\n },\n ],\n [\n RepeatExpr,\n function (this: Generator, e: RepeatExpr) {\n return this.func('LPAD', [\n LiteralExpr.string(''),\n new MulExpr({\n this: this.func('LENGTH', [\n e.args.this,\n ]),\n expression: e.args.times?.[0],\n }),\n e.args.this,\n ]);\n },\n ],\n [\n IsAsciiExpr,\n function (this: Generator, e: IsAsciiExpr) {\n return `(${this.sql(e.args.this)} RLIKE '^[\\\\x00-\\\\x7f]*$')`;\n },\n ],\n [\n Md5DigestExpr,\n function (this: Generator, e: Md5DigestExpr) {\n return this.func('UNHEX', [\n this.func('MD5', [\n e.args.this,\n ]),\n ]);\n },\n ],\n [\n ContainsExpr,\n renameFunc('INSTR'),\n ],\n [\n RegexpExtractAllExpr,\n function (this: Generator, e: RegexpExtractAllExpr) {\n unsupportedArgs.call(this, e, 'position', 'occurrence', 'group');\n return this.func('REGEXP_MATCH', [\n e.args.this,\n e.args.expression,\n e.args.parameters,\n ]);\n },\n ],\n [\n RegexpExtractExpr,\n function (this: Generator, e: RegexpExtractExpr) {\n unsupportedArgs.call(this, e, 'group');\n return this.func('REGEXP_SUBSTR', [\n e.args.this,\n e.args.expression,\n e.args.position,\n e.args.occurrence,\n e.args.parameters,\n ]);\n },\n ],\n [\n StartsWithExpr,\n function (this: Generator, e: StartsWithExpr) {\n return this.func('REGEXP_INSTR', [\n e.args.this,\n this.func('CONCAT', [\n LiteralExpr.string('^'),\n e.args.expression,\n ]),\n ]);\n },\n ],\n [\n FromBaseExpr,\n function (this: Generator, e: FromBaseExpr) {\n return this.func('CONV', [\n e.args.this,\n e.args.expression,\n LiteralExpr.number(10),\n ]);\n },\n ],\n [\n RegexpILikeExpr,\n function (this: Generator, e: RegexpILikeExpr) {\n return this.binary(\n new RegexpLikeExpr({\n this: new LowerExpr({\n this: e.args.this,\n }),\n expression: new LowerExpr({\n this: e.args.expression,\n }),\n }),\n 'RLIKE',\n );\n },\n ],\n [\n StuffExpr,\n function (this: Generator, e: StuffExpr) {\n return this.func('CONCAT', [\n this.func('SUBSTRING', [\n e.args.this,\n LiteralExpr.number(1),\n e.args.start?.sub(1),\n ]),\n e.args.expression,\n this.func('SUBSTRING', [\n e.args.this,\n e.args.start?.add(e.args.length),\n ]),\n ]);\n },\n ],\n [\n NationalExpr,\n function (this: Generator, e: NationalExpr) {\n return (this as SingleStoreGenerator).nationalSql(e, {\n prefix: '',\n });\n },\n ],\n [\n ReduceExpr,\n function (this: Generator, e: ReduceExpr) {\n unsupportedArgs.call(this, e, 'finish');\n return this.func('REDUCE', [\n e.args.initial,\n e.args.this,\n e.args.merge,\n ]);\n },\n ],\n [\n MatchAgainstExpr,\n function (this: Generator, e: MatchAgainstExpr) {\n unsupportedArgs.call(this, e, 'modifier');\n return this.matchAgainstSql(e);\n },\n ],\n [\n ShowExpr,\n function (this: Generator, e: ShowExpr) {\n unsupportedArgs.call(this, e, 'history', 'terse', 'offset', 'startsWith', 'limit', 'from', 'scope', 'scopeKind', 'mutex', 'query', 'channel', 'log', 'types', 'privileges');\n return this.showSql(e);\n },\n ],\n [\n DescribeExpr,\n function (this: Generator, e: DescribeExpr) {\n unsupportedArgs.call(this, e, 'style', 'kind', 'expressions', 'partition', 'format');\n return this.describeSql(e);\n },\n ],\n ]);\n transforms.delete(JsonExtractScalarExpr);\n transforms.delete(CurrentDateExpr);\n return transforms;\n }\n\n @cache\n static get UNSUPPORTED_TYPES (): Set<DataTypeExprKind> {\n return new Set([\n DataTypeExprKind.ARRAY,\n DataTypeExprKind.AGGREGATEFUNCTION,\n DataTypeExprKind.SIMPLEAGGREGATEFUNCTION,\n DataTypeExprKind.BIGSERIAL,\n DataTypeExprKind.BPCHAR,\n DataTypeExprKind.DATEMULTIRANGE,\n DataTypeExprKind.DATERANGE,\n DataTypeExprKind.DYNAMIC,\n DataTypeExprKind.HLLSKETCH,\n DataTypeExprKind.HSTORE,\n DataTypeExprKind.IMAGE,\n DataTypeExprKind.INET,\n DataTypeExprKind.INT128,\n DataTypeExprKind.INT256,\n DataTypeExprKind.INT4MULTIRANGE,\n DataTypeExprKind.INT4RANGE,\n DataTypeExprKind.INT8MULTIRANGE,\n DataTypeExprKind.INT8RANGE,\n DataTypeExprKind.INTERVAL,\n DataTypeExprKind.IPADDRESS,\n DataTypeExprKind.IPPREFIX,\n DataTypeExprKind.IPV4,\n DataTypeExprKind.IPV6,\n DataTypeExprKind.LIST,\n DataTypeExprKind.MAP,\n DataTypeExprKind.LOWCARDINALITY,\n DataTypeExprKind.MONEY,\n DataTypeExprKind.MULTILINESTRING,\n DataTypeExprKind.NAME,\n DataTypeExprKind.NESTED,\n DataTypeExprKind.NOTHING,\n DataTypeExprKind.NULL,\n DataTypeExprKind.NUMMULTIRANGE,\n DataTypeExprKind.NUMRANGE,\n DataTypeExprKind.OBJECT,\n DataTypeExprKind.RANGE,\n DataTypeExprKind.ROWVERSION,\n DataTypeExprKind.SERIAL,\n DataTypeExprKind.SMALLSERIAL,\n DataTypeExprKind.SMALLMONEY,\n DataTypeExprKind.SUPER,\n DataTypeExprKind.TIMETZ,\n DataTypeExprKind.TIMESTAMPNTZ,\n DataTypeExprKind.TIMESTAMPLTZ,\n DataTypeExprKind.TIMESTAMPTZ,\n DataTypeExprKind.TIMESTAMP_NS,\n DataTypeExprKind.TSMULTIRANGE,\n DataTypeExprKind.TSRANGE,\n DataTypeExprKind.TSTZMULTIRANGE,\n DataTypeExprKind.TSTZRANGE,\n DataTypeExprKind.UINT128,\n DataTypeExprKind.UINT256,\n DataTypeExprKind.UNION,\n DataTypeExprKind.UNKNOWN,\n DataTypeExprKind.USERDEFINED,\n DataTypeExprKind.UUID,\n DataTypeExprKind.VARIANT,\n DataTypeExprKind.XML,\n DataTypeExprKind.TDIGEST,\n ]);\n }\n\n @cache\n static get TYPE_MAPPING () {\n return new Map([\n ...MySQL.Generator.TYPE_MAPPING,\n [\n DataTypeExprKind.BIGDECIMAL,\n 'DECIMAL',\n ],\n [\n DataTypeExprKind.BIT,\n 'BOOLEAN',\n ],\n [\n DataTypeExprKind.DATE32,\n 'DATE',\n ],\n [\n DataTypeExprKind.DATETIME64,\n 'DATETIME',\n ],\n [\n DataTypeExprKind.DECIMAL32,\n 'DECIMAL',\n ],\n [\n DataTypeExprKind.DECIMAL64,\n 'DECIMAL',\n ],\n [\n DataTypeExprKind.DECIMAL128,\n 'DECIMAL',\n ],\n [\n DataTypeExprKind.DECIMAL256,\n 'DECIMAL',\n ],\n [\n DataTypeExprKind.ENUM8,\n 'ENUM',\n ],\n [\n DataTypeExprKind.ENUM16,\n 'ENUM',\n ],\n [\n DataTypeExprKind.FIXEDSTRING,\n 'TEXT',\n ],\n [\n DataTypeExprKind.GEOMETRY,\n 'GEOGRAPHY',\n ],\n [\n DataTypeExprKind.POINT,\n 'GEOGRAPHYPOINT',\n ],\n [\n DataTypeExprKind.RING,\n 'GEOGRAPHY',\n ],\n [\n DataTypeExprKind.LINESTRING,\n 'GEOGRAPHY',\n ],\n [\n DataTypeExprKind.POLYGON,\n 'GEOGRAPHY',\n ],\n [\n DataTypeExprKind.MULTIPOLYGON,\n 'GEOGRAPHY',\n ],\n [\n DataTypeExprKind.STRUCT,\n 'RECORD',\n ],\n [\n DataTypeExprKind.JSONB,\n 'BSON',\n ],\n [\n DataTypeExprKind.TIMESTAMP,\n 'TIMESTAMP',\n ],\n [\n DataTypeExprKind.TIMESTAMP_S,\n 'TIMESTAMP',\n ],\n [\n DataTypeExprKind.TIMESTAMP_MS,\n 'TIMESTAMP(6)',\n ],\n ]);\n }\n\n @cache\n static get RESERVED_KEYWORDS () {\n return new Set([\n 'abs',\n 'absolute',\n 'access',\n 'account',\n 'acos',\n 'action',\n 'add',\n 'adddate',\n 'addtime',\n 'admin',\n 'aes_decrypt',\n 'aes_encrypt',\n 'after',\n 'against',\n 'aggregate',\n 'aggregates',\n 'aggregator',\n 'aggregator_id',\n 'aggregator_plan_hash',\n 'aggregators',\n 'algorithm',\n 'all',\n 'also',\n 'alter',\n 'always',\n 'analyse',\n 'analyze',\n 'and',\n 'anti_join',\n 'any',\n 'any_value',\n 'approx_count_distinct',\n 'approx_count_distinct_accumulate',\n 'approx_count_distinct_combine',\n 'approx_count_distinct_estimate',\n 'approx_geography_intersects',\n 'approx_percentile',\n 'arghistory',\n 'arrange',\n 'arrangement',\n 'array',\n 'as',\n 'asc',\n 'ascii',\n 'asensitive',\n 'asin',\n 'asm',\n 'assertion',\n 'assignment',\n 'ast',\n 'asymmetric',\n 'async',\n 'at',\n 'atan',\n 'atan2',\n 'attach',\n 'attribute',\n 'authorization',\n 'auto',\n 'auto_increment',\n 'auto_reprovision',\n 'autostats',\n 'autostats_cardinality_mode',\n 'autostats_enabled',\n 'autostats_histogram_mode',\n 'autostats_sampling',\n 'availability',\n 'avg',\n 'avg_row_length',\n 'avro',\n 'azure',\n 'background',\n '_background_threads_for_cleanup',\n 'backup',\n 'backup_history',\n 'backup_id',\n 'backward',\n 'batch',\n 'batches',\n 'batch_interval',\n '_batch_size_limit',\n 'before',\n 'begin',\n 'between',\n 'bigint',\n 'bin',\n 'binary',\n '_binary',\n 'bit',\n 'bit_and',\n 'bit_count',\n 'bit_or',\n 'bit_xor',\n 'blob',\n 'bool',\n 'boolean',\n 'bootstrap',\n 'both',\n '_bt',\n 'btree',\n 'bucket_count',\n 'by',\n 'byte',\n 'byte_length',\n 'cache',\n 'call',\n 'call_for_pipeline',\n 'called',\n 'capture',\n 'cascade',\n 'cascaded',\n 'case',\n 'cast',\n 'catalog',\n 'ceil',\n 'ceiling',\n 'chain',\n 'change',\n 'char',\n 'character',\n 'characteristics',\n 'character_length',\n 'char_length',\n 'charset',\n 'check',\n 'checkpoint',\n '_check_can_connect',\n '_check_consistency',\n 'checksum',\n '_checksum',\n 'class',\n 'clear',\n 'client',\n 'client_found_rows',\n 'close',\n 'cluster',\n 'clustered',\n 'cnf',\n 'coalesce',\n 'coercibility',\n 'collate',\n 'collation',\n 'collect',\n 'column',\n 'columnar',\n 'columns',\n 'columnstore',\n 'columnstore_segment_rows',\n 'comment',\n 'comments',\n 'commit',\n 'committed',\n '_commit_log_tail',\n 'compact',\n 'compile',\n 'compressed',\n 'compression',\n 'concat',\n 'concat_ws',\n 'concurrent',\n 'concurrently',\n 'condition',\n 'configuration',\n 'connection',\n 'connection_id',\n 'connections',\n 'config',\n 'constraint',\n 'constraints',\n 'content',\n 'continue',\n '_continue_replay',\n 'conv',\n 'conversion',\n 'convert',\n 'convert_tz',\n 'copy',\n '_core',\n 'cos',\n 'cost',\n 'cot',\n 'count',\n 'create',\n 'credentials',\n 'cross',\n 'cube',\n 'csv',\n 'cume_dist',\n 'curdate',\n 'current',\n 'current_catalog',\n 'current_date',\n 'current_role',\n 'current_schema',\n 'current_security_groups',\n 'current_security_roles',\n 'current_time',\n 'current_timestamp',\n 'current_user',\n 'cursor',\n 'curtime',\n 'cycle',\n 'data',\n 'database',\n 'databases',\n 'date',\n 'date_add',\n 'datediff',\n 'date_format',\n 'date_sub',\n 'date_trunc',\n 'datetime',\n 'day',\n 'day_hour',\n 'day_microsecond',\n 'day_minute',\n 'dayname',\n 'dayofmonth',\n 'dayofweek',\n 'dayofyear',\n 'day_second',\n 'deallocate',\n 'dec',\n 'decimal',\n 'declare',\n 'decode',\n 'default',\n 'defaults',\n 'deferrable',\n 'deferred',\n 'defined',\n 'definer',\n 'degrees',\n 'delayed',\n 'delay_key_write',\n 'delete',\n 'delimiter',\n 'delimiters',\n 'dense_rank',\n 'desc',\n 'describe',\n 'detach',\n 'deterministic',\n 'dictionary',\n 'differential',\n 'directory',\n 'disable',\n 'discard',\n '_disconnect',\n 'disk',\n 'distinct',\n 'distinctrow',\n 'distributed_joins',\n 'div',\n 'do',\n 'document',\n 'domain',\n 'dot_product',\n 'double',\n 'drop',\n '_drop_profile',\n 'dual',\n 'dump',\n 'duplicate',\n 'dynamic',\n 'earliest',\n 'each',\n 'echo',\n 'election',\n 'else',\n 'elseif',\n 'elt',\n 'enable',\n 'enclosed',\n 'encoding',\n 'encrypted',\n 'end',\n 'engine',\n 'engines',\n 'enum',\n 'errors',\n 'escape',\n 'escaped',\n 'estimate',\n 'euclidean_distance',\n 'event',\n 'events',\n 'except',\n 'exclude',\n 'excluding',\n 'exclusive',\n 'execute',\n 'exists',\n 'exit',\n 'exp',\n 'explain',\n 'extended',\n 'extension',\n 'external',\n 'external_host',\n 'external_port',\n 'extract',\n 'extractor',\n 'extractors',\n 'extra_join',\n '_failover',\n 'failed_login_attempts',\n 'failure',\n 'false',\n 'family',\n 'fault',\n 'fetch',\n 'field',\n 'fields',\n 'file',\n 'files',\n 'fill',\n 'first',\n 'first_value',\n 'fix_alter',\n 'fixed',\n 'float',\n 'float4',\n 'float8',\n 'floor',\n 'flush',\n 'following',\n 'for',\n 'force',\n 'force_compiled_mode',\n 'force_interpreter_mode',\n 'foreground',\n 'foreign',\n 'format',\n 'forward',\n 'found_rows',\n 'freeze',\n 'from',\n 'from_base64',\n 'from_days',\n 'from_unixtime',\n 'fs',\n '_fsync',\n 'full',\n 'fulltext',\n 'function',\n 'functions',\n 'gc',\n 'gcs',\n 'get_format',\n '_gc',\n '_gcx',\n 'generate',\n 'geography',\n 'geography_area',\n 'geography_contains',\n 'geography_distance',\n 'geography_intersects',\n 'geography_latitude',\n 'geography_length',\n 'geography_longitude',\n 'geographypoint',\n 'geography_point',\n 'geography_within_distance',\n 'geometry',\n 'geometry_area',\n 'geometry_contains',\n 'geometry_distance',\n 'geometry_filter',\n 'geometry_intersects',\n 'geometry_length',\n 'geometrypoint',\n 'geometry_point',\n 'geometry_within_distance',\n 'geometry_x',\n 'geometry_y',\n 'global',\n '_global_version_timestamp',\n 'grant',\n 'granted',\n 'grants',\n 'greatest',\n 'group',\n 'grouping',\n 'groups',\n 'group_concat',\n 'gzip',\n 'handle',\n 'handler',\n 'hard_cpu_limit_percentage',\n 'hash',\n 'has_temp_tables',\n 'having',\n 'hdfs',\n 'header',\n 'heartbeat_no_logging',\n 'hex',\n 'highlight',\n 'high_priority',\n 'hold',\n 'holding',\n 'host',\n 'hosts',\n 'hour',\n 'hour_microsecond',\n 'hour_minute',\n 'hour_second',\n 'identified',\n 'identity',\n 'if',\n 'ifnull',\n 'ignore',\n 'ifnull',\n 'ilike',\n 'immediate',\n 'immutable',\n 'implicit',\n 'import',\n 'in',\n 'including',\n 'increment',\n 'incremental',\n 'index',\n 'indexes',\n 'inet_aton',\n 'inet_ntoa',\n 'inet6_aton',\n 'inet6_ntoa',\n 'infile',\n 'inherit',\n 'inherits',\n '_init_profile',\n 'init',\n 'initcap',\n 'initialize',\n 'initially',\n 'inject',\n 'inline',\n 'inner',\n 'inout',\n 'input',\n 'insensitive',\n 'insert',\n 'insert_method',\n 'instance',\n 'instead',\n 'instr',\n 'int',\n 'int1',\n 'int2',\n 'int3',\n 'int4',\n 'int8',\n 'integer',\n '_internal_dynamic_typecast',\n 'interpreter_mode',\n 'intersect',\n 'interval',\n 'into',\n 'invoker',\n 'is',\n 'isnull',\n 'isolation',\n 'iterate',\n 'join',\n 'json',\n 'json_agg',\n 'json_array_contains_double',\n 'json_array_contains_json',\n 'json_array_contains_string',\n 'json_array_push_double',\n 'json_array_push_json',\n 'json_array_push_string',\n 'json_delete_key',\n 'json_extract_double',\n 'json_extract_json',\n 'json_extract_string',\n 'json_extract_bigint',\n 'json_get_type',\n 'json_length',\n 'json_set_double',\n 'json_set_json',\n 'json_set_string',\n 'json_splice_double',\n 'json_splice_json',\n 'json_splice_string',\n 'kafka',\n 'key',\n 'key_block_size',\n 'keys',\n 'kill',\n 'killall',\n 'label',\n 'lag',\n 'language',\n 'large',\n 'last',\n 'last_day',\n 'last_insert_id',\n 'last_value',\n 'lateral',\n 'latest',\n 'lc_collate',\n 'lc_ctype',\n 'lcase',\n 'lead',\n 'leading',\n 'leaf',\n 'leakproof',\n 'least',\n 'leave',\n 'leaves',\n 'left',\n 'length',\n 'level',\n 'license',\n 'like',\n 'limit',\n 'lines',\n 'listen',\n 'llvm',\n 'ln',\n 'load',\n 'loaddata_where',\n '_load',\n 'local',\n 'localtime',\n 'localtimestamp',\n 'locate',\n 'location',\n 'lock',\n 'log',\n 'log10',\n 'log2',\n 'long',\n 'longblob',\n 'longtext',\n 'loop',\n 'lower',\n 'low_priority',\n 'lpad',\n '_ls',\n 'ltrim',\n 'lz4',\n 'management',\n '_management_thread',\n 'mapping',\n 'master',\n 'match',\n 'materialized',\n 'max',\n 'maxvalue',\n 'max_concurrency',\n 'max_errors',\n 'max_partitions_per_batch',\n 'max_queue_depth',\n 'max_retries_per_batch_partition',\n 'max_rows',\n 'mbc',\n 'md5',\n 'mpl',\n 'median',\n 'mediumblob',\n 'mediumint',\n 'mediumtext',\n 'member',\n 'memory',\n 'memory_percentage',\n '_memsql_table_id_lookup',\n 'memsql',\n 'memsql_deserialize',\n 'memsql_imitating_kafka',\n 'memsql_serialize',\n 'merge',\n 'metadata',\n 'microsecond',\n 'middleint',\n 'min',\n 'min_rows',\n 'minus',\n 'minute',\n 'minute_microsecond',\n 'minute_second',\n 'minvalue',\n 'mod',\n 'mode',\n 'model',\n 'modifies',\n 'modify',\n 'month',\n 'monthname',\n 'months_between',\n 'move',\n 'mpl',\n 'names',\n 'named',\n 'namespace',\n 'national',\n 'natural',\n 'nchar',\n 'next',\n 'no',\n 'node',\n 'none',\n 'no_query_rewrite',\n 'noparam',\n 'not',\n 'nothing',\n 'notify',\n 'now',\n 'nowait',\n 'no_write_to_binlog',\n 'norely',\n 'nth_value',\n 'ntile',\n 'null',\n 'nullcols',\n 'nullif',\n 'nulls',\n 'numeric',\n 'nvarchar',\n 'object',\n 'octet_length',\n 'of',\n 'off',\n 'offline',\n 'offset',\n 'offsets',\n 'oids',\n 'on',\n 'online',\n 'only',\n 'open',\n 'operator',\n 'optimization',\n 'optimize',\n 'optimizer',\n 'optimizer_state',\n 'option',\n 'options',\n 'optionally',\n 'or',\n 'order',\n 'ordered_serialize',\n 'orphan',\n 'out',\n 'out_of_order',\n 'outer',\n 'outfile',\n 'over',\n 'overlaps',\n 'overlay',\n 'owned',\n 'owner',\n 'pack_keys',\n 'paired',\n 'parser',\n 'parquet',\n 'partial',\n 'partition',\n 'partition_id',\n 'partitioning',\n 'partitions',\n 'passing',\n 'password',\n 'password_lock_time',\n 'pause',\n '_pause_replay',\n 'percent_rank',\n 'percentile_cont',\n 'percentile_disc',\n 'periodic',\n 'persisted',\n 'pi',\n 'pipeline',\n 'pipelines',\n 'pivot',\n 'placing',\n 'plan',\n 'plans',\n 'plancache',\n 'plugins',\n 'pool',\n 'pools',\n 'port',\n 'position',\n 'pow',\n 'power',\n 'preceding',\n 'precision',\n 'prepare',\n 'prepared',\n 'preserve',\n 'primary',\n 'prior',\n 'privileges',\n 'procedural',\n 'procedure',\n 'procedures',\n 'process',\n 'processlist',\n 'profile',\n 'profiles',\n 'program',\n 'promote',\n 'proxy',\n 'purge',\n 'quarter',\n 'queries',\n 'query',\n 'query_timeout',\n 'queue',\n 'quote',\n 'radians',\n 'rand',\n 'range',\n 'rank',\n 'read',\n '_read',\n 'reads',\n 'real',\n 'reassign',\n 'rebalance',\n 'recheck',\n 'record',\n 'recursive',\n 'redundancy',\n 'redundant',\n 'ref',\n 'reference',\n 'references',\n 'refresh',\n 'regexp',\n 'reindex',\n 'relative',\n 'release',\n 'reload',\n 'rely',\n 'remote',\n 'remove',\n 'rename',\n 'repair',\n '_repair_table',\n 'repeat',\n 'repeatable',\n '_repl',\n '_reprovisioning',\n 'replace',\n 'replica',\n 'replicate',\n 'replicating',\n 'replication',\n 'durability',\n 'require',\n 'resource',\n 'resource_pool',\n 'reset',\n 'restart',\n 'restore',\n 'restrict',\n 'result',\n '_resurrect',\n 'retry',\n 'return',\n 'returning',\n 'returns',\n 'reverse',\n 'revoke',\n 'rg_pool',\n 'right',\n 'right_anti_join',\n 'right_semi_join',\n 'right_straight_join',\n 'rlike',\n 'role',\n 'roles',\n 'rollback',\n 'rollup',\n 'round',\n 'routine',\n 'row',\n 'row_count',\n 'row_format',\n 'row_number',\n 'rows',\n 'rowstore',\n 'rule',\n 'rpad',\n '_rpc',\n 'rtrim',\n 'running',\n 's3',\n 'safe',\n 'save',\n 'savepoint',\n 'scalar',\n 'schema',\n 'schemas',\n 'schema_binding',\n 'scroll',\n 'search',\n 'second',\n 'second_microsecond',\n 'sec_to_time',\n 'security',\n 'select',\n 'semi_join',\n '_send_threads',\n 'sensitive',\n 'separator',\n 'sequence',\n 'sequences',\n 'serial',\n 'serializable',\n 'series',\n 'service_user',\n 'server',\n 'session',\n 'session_user',\n 'set',\n 'setof',\n 'security_lists_intersect',\n 'sha',\n 'sha1',\n 'sha2',\n 'shard',\n 'sharded',\n 'sharded_id',\n 'share',\n 'show',\n 'shutdown',\n 'sigmoid',\n 'sign',\n 'signal',\n 'similar',\n 'simple',\n 'site',\n 'signed',\n 'sin',\n 'skip',\n 'skipped_batches',\n 'sleep',\n '_sleep',\n 'smallint',\n 'snapshot',\n '_snapshot',\n '_snapshots',\n 'soft_cpu_limit_percentage',\n 'some',\n 'soname',\n 'sparse',\n 'spatial',\n 'spatial_check_index',\n 'specific',\n 'split',\n 'sql',\n 'sql_big_result',\n 'sql_buffer_result',\n 'sql_cache',\n 'sql_calc_found_rows',\n 'sqlexception',\n 'sql_mode',\n 'sql_no_cache',\n 'sql_no_logging',\n 'sql_small_result',\n 'sqlstate',\n 'sqlwarning',\n 'sqrt',\n 'ssl',\n 'stable',\n 'standalone',\n 'start',\n 'starting',\n 'state',\n 'statement',\n 'statistics',\n 'stats',\n 'status',\n 'std',\n 'stddev',\n 'stddev_pop',\n 'stddev_samp',\n 'stdin',\n 'stdout',\n 'stop',\n 'storage',\n 'str_to_date',\n 'straight_join',\n 'strict',\n 'string',\n 'strip',\n 'subdate',\n 'substr',\n 'substring',\n 'substring_index',\n 'success',\n 'sum',\n 'super',\n 'symmetric',\n 'sync_snapshot',\n 'sync',\n '_sync',\n '_sync2',\n '_sync_partitions',\n '_sync_snapshot',\n 'synchronize',\n 'sysid',\n 'system',\n 'table',\n 'table_checksum',\n 'tables',\n 'tablespace',\n 'tags',\n 'tan',\n 'target_size',\n 'task',\n 'temp',\n 'template',\n 'temporary',\n 'temptable',\n '_term_bump',\n 'terminate',\n 'terminated',\n 'test',\n 'text',\n 'then',\n 'time',\n 'timediff',\n 'time_bucket',\n 'time_format',\n 'timeout',\n 'timestamp',\n 'timestampadd',\n 'timestampdiff',\n 'timezone',\n 'time_to_sec',\n 'tinyblob',\n 'tinyint',\n 'tinytext',\n 'to',\n 'to_base64',\n 'to_char',\n 'to_date',\n 'to_days',\n 'to_json',\n 'to_number',\n 'to_seconds',\n 'to_timestamp',\n 'tracelogs',\n 'traditional',\n 'trailing',\n 'transform',\n 'transaction',\n '_transactions_experimental',\n 'treat',\n 'trigger',\n 'triggers',\n 'trim',\n 'true',\n 'trunc',\n 'truncate',\n 'trusted',\n 'two_phase',\n '_twopcid',\n 'type',\n 'types',\n 'ucase',\n 'unbounded',\n 'uncommitted',\n 'undefined',\n 'undo',\n 'unencrypted',\n 'unenforced',\n 'unhex',\n 'unhold',\n 'unicode',\n 'union',\n 'unique',\n '_unittest',\n 'unix_timestamp',\n 'unknown',\n 'unlisten',\n '_unload',\n 'unlock',\n 'unlogged',\n 'unpivot',\n 'unsigned',\n 'until',\n 'update',\n 'upgrade',\n 'upper',\n 'usage',\n 'use',\n 'user',\n 'users',\n 'using',\n 'utc_date',\n 'utc_time',\n 'utc_timestamp',\n '_utf8',\n 'vacuum',\n 'valid',\n 'validate',\n 'validator',\n 'value',\n 'values',\n 'varbinary',\n 'varchar',\n 'varcharacter',\n 'variables',\n 'variadic',\n 'variance',\n 'var_pop',\n 'var_samp',\n 'varying',\n 'vector_sub',\n 'verbose',\n 'version',\n 'view',\n 'void',\n 'volatile',\n 'voting',\n 'wait',\n '_wake',\n 'warnings',\n 'week',\n 'weekday',\n 'weekofyear',\n 'when',\n 'where',\n 'while',\n 'whitespace',\n 'window',\n 'with',\n 'without',\n 'within',\n '_wm_heartbeat',\n 'work',\n 'workload',\n 'wrapper',\n 'write',\n 'xact_id',\n 'xor',\n 'year',\n 'year_month',\n 'yes',\n 'zerofill',\n 'zone',\n ]);\n }\n\n jsonExtractScalarSql (expression: JsonExtractScalarExpr): string {\n const jsonType = expression.args.jsonType;\n const funcName = jsonType === undefined ? 'JSON_EXTRACT_JSON' : `JSON_EXTRACT_${jsonType}`;\n return jsonExtractSegments(funcName).call(this, expression);\n }\n\n jsonbExtractScalarSql (expression: JsonbExtractScalarExpr): string {\n const jsonType = expression.args.jsonType;\n const funcName = jsonType === undefined ? 'BSON_EXTRACT_BSON' : `BSON_EXTRACT_${jsonType}`;\n return jsonExtractSegments(funcName).call(this, expression);\n }\n\n jsonExtractArraySql (expression: JsonExtractArrayExpr): string {\n this.unsupported('Arrays are not supported in SingleStore');\n return this.functionFallbackSql(expression);\n }\n\n jsonValueSql (expression: JsonValueExpr): string {\n unsupportedArgs.call(this, expression, 'onCondition');\n let res: Expression = new JsonExtractScalarExpr({\n this: expression.args.this,\n expression: expression.args.path,\n jsonType: 'STRING',\n });\n\n const returning = expression.args.returning;\n if (returning !== undefined) {\n res = new CastExpr({\n this: res,\n to: returning,\n });\n }\n\n return this.sql(res);\n }\n\n allSql (expression: AllExpr): string {\n this.unsupported('ALL subquery predicate is not supported in SingleStore');\n return super.allSql(expression);\n }\n\n jsonArrayContainsSql (expression: JsonArrayContainsExpr): string {\n const jsonType = expression.text('jsonType').toUpperCase();\n\n if (jsonType) {\n return this.func(`JSON_ARRAY_CONTAINS_${jsonType}`, [\n expression.args.expression,\n expression.args.this,\n ]);\n }\n\n return this.func('JSON_ARRAY_CONTAINS_JSON', [\n expression.args.expression,\n this.func('TO_JSON', [\n expression.args.this,\n ]),\n ]);\n }\n\n dataTypeSql (expression: DataTypeExpr): string {\n unsupportedArgs.call(this, expression, 'kind', 'values');\n if (expression.args.nested && !expression.isType(DataTypeExprKind.STRUCT)) {\n this.unsupported(\n `Argument 'nested' is not supported for representation of '${expression.args.this}' in SingleStore`,\n );\n }\n\n if (expression.isType(DataTypeExprKind.VARBINARY) && !expression.args.expressions?.length) {\n // VARBINARY must always have a size - if it doesn't, we always generate BLOB\n return 'BLOB';\n }\n\n if (\n expression.isType([\n DataTypeExprKind.DECIMAL32,\n DataTypeExprKind.DECIMAL64,\n DataTypeExprKind.DECIMAL128,\n DataTypeExprKind.DECIMAL256,\n ])\n ) {\n const scale = this.expressions(expression, {\n flat: true,\n });\n let precision: string;\n\n if (expression.isType(DataTypeExprKind.DECIMAL32)) {\n precision = '9';\n } else if (expression.isType(DataTypeExprKind.DECIMAL64)) {\n precision = '18';\n } else if (expression.isType(DataTypeExprKind.DECIMAL128)) {\n precision = '38';\n } else {\n // 65 is a maximum precision supported in SingleStore\n precision = '65';\n }\n\n return scale ? `DECIMAL(${precision}, ${scale[0]})` : `DECIMAL(${precision})`;\n }\n\n if (expression.isType(DataTypeExprKind.VECTOR)) {\n const expressions = expression.args.expressions || [\n ];\n if (expressions.length === 2) {\n let typeName = this.sql(expressions[0]);\n const inverseAliases = (this.dialect.constructor as typeof SingleStore).INVERSE_VECTOR_TYPE_ALIASES;\n if (typeName in inverseAliases) {\n typeName = inverseAliases[typeName];\n }\n\n return `VECTOR(${this.sql(expressions[1])}, ${typeName})`;\n }\n }\n\n return super.dataTypeSql(expression);\n }\n\n // SingleStore does not support setting a collation for column in the SELECT query,\n // so we cast column to a LONGTEXT type with specific collation\n collateSql (expression: CollateExpr): string {\n return this.binary(expression, ':> LONGTEXT COLLATE');\n }\n\n currentDateSql (expression: CurrentDateExpr): string {\n const timezone = expression.args.this;\n if (timezone) {\n if (timezone instanceof LiteralExpr && timezone.args.this?.toLowerCase() === 'utc') {\n return this.func('UTC_DATE', [\n ]);\n }\n this.unsupported('CurrentDate with timezone is not supported in SingleStore');\n }\n\n return this.func('CURRENT_DATE', [\n ]);\n }\n\n currentTimeSql (expression: CurrentTimeExpr): string {\n const arg = expression.args.this;\n if (arg) {\n if (arg instanceof LiteralExpr && arg.args.this?.toLowerCase() === 'utc') {\n return this.func('UTC_TIME', [\n ]);\n }\n if (arg instanceof LiteralExpr && arg.isNumber) {\n return this.func('CURRENT_TIME', [\n arg,\n ]);\n }\n this.unsupported('CurrentTime with timezone is not supported in SingleStore');\n }\n\n return this.func('CURRENT_TIME', [\n ]);\n }\n\n currentTimestampSql (expression: CurrentTimestampExpr): string {\n const arg = expression.args.this;\n if (arg) {\n if (arg instanceof LiteralExpr && arg.args.this?.toLowerCase() === 'utc') {\n return this.func('UTC_TIMESTAMP', [\n ]);\n }\n if (arg instanceof LiteralExpr && arg.isNumber) {\n return this.func('CURRENT_TIMESTAMP', [\n arg,\n ]);\n }\n this.unsupported('CurrentTimestamp with timezone is not supported in SingleStore');\n }\n\n return this.func('CURRENT_TIMESTAMP', [\n ]);\n }\n\n standardHashSql (expression: StandardHashExpr): string {\n const hashFunction = expression.args.expression;\n if (hashFunction === undefined) {\n return this.func('SHA', [\n expression.args.this,\n ]);\n }\n if (hashFunction instanceof LiteralExpr) {\n const name = hashFunction.args.this?.toLowerCase();\n if (name === 'sha') {\n return this.func('SHA', [\n expression.args.this,\n ]);\n }\n if (name === 'md5') {\n return this.func('MD5', [\n expression.args.this,\n ]);\n }\n\n this.unsupported(`${hashFunction.args.this} hash method is not supported in SingleStore`);\n return this.func('SHA', [\n expression.args.this,\n ]);\n }\n\n this.unsupported('STANDARD_HASH function is not supported in SingleStore');\n return this.func('SHA', [\n expression.args.this,\n ]);\n }\n\n truncateTableSql (expression: TruncateTableExpr): string {\n unsupportedArgs.call(this, expression, 'isDatabase', 'exists', 'cluster', 'identity', 'option', 'partition');\n const statements: string[] = [\n ];\n for (const expr of expression.args.expressions ?? [\n ]) {\n statements.push(`TRUNCATE ${this.sql(expr)}`);\n }\n\n return statements.join('; ');\n }\n\n renameColumnSql (expression: RenameColumnExpr): string {\n unsupportedArgs.call(this, expression, 'exists');\n const oldColumn = this.sql(expression, 'this');\n const newColumn = this.sql(expression, 'to');\n return `CHANGE ${oldColumn} ${newColumn}`;\n }\n\n alterColumnSql (expression: AlterColumnExpr): string {\n unsupportedArgs.call(this, expression, 'drop', 'comment', 'allowNull', 'visible', 'using');\n const alter = super.alterColumnSql(expression);\n\n const collate = this.sql(expression, 'collate');\n const collatePart = collate ? ` COLLATE ${collate}` : '';\n return `${alter}${collatePart}`;\n }\n\n computedColumnConstraintSql (expression: ComputedColumnConstraintExpr): string {\n const thisSql = this.sql(expression, 'this');\n const notNull = expression.args.notNull ? ' NOT NULL' : '';\n const type = this.sql(expression, 'dataType') || 'AUTO';\n return `AS ${thisSql} PERSISTED ${type}${notNull}`;\n }\n}\n\nexport class SingleStore extends MySQL {\n static DIALECT_NAME = Dialects.SINGLESTORE;\n static SUPPORTS_ORDER_BY_ALL = true;\n\n @cache\n static get TIME_MAPPING (): Record<string, string> {\n return {\n D: '%u',\n DD: '%d',\n DY: '%a',\n HH: '%I',\n HH12: '%I',\n HH24: '%H',\n MI: '%M',\n MM: '%m',\n MON: '%b',\n MONTH: '%B',\n SS: '%S',\n RR: '%y',\n YY: '%y',\n YYYY: '%Y',\n FF6: '%f',\n };\n }\n\n @cache\n static get VECTOR_TYPE_ALIASES () {\n return {\n I8: 'TINYINT',\n I16: 'SMALLINT',\n I32: 'INT',\n I64: 'BIGINT',\n F32: 'FLOAT',\n F64: 'DOUBLE',\n };\n }\n\n @cache\n static get INVERSE_VECTOR_TYPE_ALIASES () {\n return Object.fromEntries(\n Object.entries(SingleStore.VECTOR_TYPE_ALIASES).map(([\n k,\n v,\n ]) => [\n v,\n k,\n ]),\n );\n }\n\n static Tokenizer = SingleStoreTokenizer;\n static Parser = SingleStoreParser;\n static Generator = SingleStoreGenerator;\n}\n\nDialect.register(Dialects.SINGLESTORE, SingleStore);\n"],"mappings":"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MACF,EACA,UAEE,MACF,EACA,eAEE,MACF,EACA,YAEE,WACF,EACA,SAEE,gBACF,EACA,QAEE,WACF,EACA,cAEE,WACF,EACA,WAEE,WACF,EACA,gBAEE,WACF,EACA,UAEE,QACF,EACA,SAEE,MACF,EACA,aAEE,WACF,EACA,cAEE,WACF,EACA,eAEE,cACF,CACF,CAAC,CACH,CAGA,WAAW,mBAAqB,CAC9B,OAAO,IAAI,IAAI,CACb,MACA,WACA,SACA,UACA,OACA,SACA,MACA,UACA,UACA,QACA,cACA,cACA,QACA,UACA,YACA,aACA,aACA,gBACA,uBACA,cACA,YACA,MACA,OACA,QACA,SACA,UACA,UACA,MACA,YACA,MACA,YACA,wBACA,mCACA,gCACA,iCACA,8BACA,oBACA,aACA,UACA,cACA,QACA,KACA,MACA,QACA,aACA,OACA,MACA,YACA,aACA,MACA,aACA,QACA,KACA,OACA,QACA,SACA,YACA,gBACA,OACA,iBACA,mBACA,YACA,6BACA,oBACA,2BACA,qBACA,eACA,MACA,iBACA,OACA,QACA,aACA,kCACA,SACA,iBACA,YACA,WACA,QACA,UACA,iBACA,oBACA,SACA,QACA,UACA,SACA,MACA,SACA,UACA,MACA,UACA,YACA,SACA,UACA,OACA,OACA,UACA,YACA,OACA,MACA,QACA,eACA,KACA,OACA,cACA,QACA,OACA,oBACA,SACA,UACA,UACA,WACA,OACA,OACA,UACA,OACA,UACA,QACA,SACA,OACA,YACA,kBACA,mBACA,cACA,UACA,QACA,aACA,qBACA,qBACA,WACA,YACA,QACA,QACA,SACA,oBACA,QACA,UACA,YACA,MACA,WACA,eACA,UACA,YACA,UACA,SACA,WACA,UACA,cACA,2BACA,UACA,WACA,SACA,YACA,mBACA,UACA,UACA,aACA,cACA,SACA,YACA,aACA,eACA,YACA,gBACA,aACA,gBACA,cACA,SACA,aACA,cACA,UACA,WACA,mBACA,OACA,aACA,UACA,aACA,OACA,QACA,MACA,OACA,MACA,QACA,SACA,cACA,QACA,OACA,MACA,YACA,UACA,UACA,kBACA,eACA,eACA,iBACA,0BACA,yBACA,eACA,oBACA,eACA,SACA,UACA,QACA,OACA,WACA,YACA,OACA,WACA,WACA,cACA,WACA,aACA,WACA,MACA,WACA,kBACA,aACA,UACA,aACA,YACA,YACA,aACA,aACA,MACA,UACA,UACA,SACA,UACA,WACA,aACA,WACA,UACA,UACA,UACA,UACA,kBACA,SACA,YACA,aACA,aACA,OACA,WACA,SACA,gBACA,aACA,eACA,YACA,UACA,UACA,cACA,OACA,WACA,cACA,oBACA,MACA,KACA,WACA,SACA,cACA,SACA,OACA,gBACA,OACA,OACA,YACA,UACA,WACA,OACA,OACA,WACA,OACA,SACA,MACA,SACA,WACA,WACA,YACA,MACA,SACA,UACA,OACA,SACA,SACA,UACA,WACA,qBACA,QACA,SACA,SACA,UACA,YACA,YACA,UACA,SACA,OACA,MACA,UACA,WACA,YACA,WACA,gBACA,gBACA,UACA,YACA,aACA,aACA,YACA,wBACA,UACA,QACA,SACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,QACA,cACA,YACA,QACA,QACA,SACA,SACA,QACA,QACA,YACA,MACA,QACA,sBACA,yBACA,aACA,UACA,SACA,UACA,aACA,SACA,OACA,cACA,YACA,gBACA,KACA,SACA,OACA,WACA,WACA,YACA,KACA,MACA,aACA,MACA,OACA,WACA,YACA,iBACA,qBACA,qBACA,uBACA,qBACA,mBACA,sBACA,iBACA,kBACA,4BACA,WACA,gBACA,oBACA,oBACA,kBACA,sBACA,kBACA,gBACA,iBACA,2BACA,aACA,aACA,SACA,4BACA,QACA,UACA,SACA,WACA,QACA,WACA,SACA,eACA,OACA,SACA,UACA,4BACA,OACA,kBACA,SACA,OACA,SACA,uBACA,MACA,YACA,gBACA,OACA,UACA,OACA,QACA,OACA,mBACA,cACA,cACA,aACA,WACA,KACA,SACA,SACA,SACA,QACA,YACA,YACA,WACA,SACA,KACA,YACA,YACA,cACA,QACA,UACA,YACA,YACA,aACA,aACA,SACA,UACA,WACA,gBACA,OACA,UACA,aACA,YACA,SACA,SACA,QACA,QACA,QACA,cACA,SACA,gBACA,WACA,UACA,QACA,MACA,OACA,OACA,OACA,OACA,OACA,UACA,6BACA,mBACA,YACA,WACA,OACA,UACA,KACA,SACA,YACA,UACA,OACA,OACA,WACA,6BACA,2BACA,6BACA,yBACA,uBACA,yBACA,kBACA,sBACA,oBACA,sBACA,sBACA,gBACA,cACA,kBACA,gBACA,kBACA,qBACA,mBACA,qBACA,QACA,MACA,iBACA,OACA,OACA,UACA,QACA,MACA,WACA,QACA,OACA,WACA,iBACA,aACA,UACA,SACA,aACA,WACA,QACA,OACA,UACA,OACA,YACA,QACA,QACA,SACA,OACA,SACA,QACA,UACA,OACA,QACA,QACA,SACA,OACA,KACA,OACA,iBACA,QACA,QACA,YACA,iBACA,SACA,WACA,OACA,MACA,QACA,OACA,OACA,WACA,WACA,OACA,QACA,eACA,OACA,MACA,QACA,MACA,aACA,qBACA,UACA,SACA,QACA,eACA,MACA,WACA,kBACA,aACA,2BACA,kBACA,kCACA,WACA,MACA,MACA,MACA,SACA,aACA,YACA,aACA,SACA,SACA,oBACA,0BACA,SACA,qBACA,yBACA,mBACA,QACA,WACA,cACA,YACA,MACA,WACA,QACA,SACA,qBACA,gBACA,WACA,MACA,OACA,QACA,WACA,SACA,QACA,YACA,iBACA,OACA,MACA,QACA,QACA,YACA,WACA,UACA,QACA,OACA,KACA,OACA,OACA,mBACA,UACA,MACA,UACA,SACA,MACA,SACA,qBACA,SACA,YACA,QACA,OACA,WACA,SACA,QACA,UACA,WACA,SACA,eACA,KACA,MACA,UACA,SACA,UACA,OACA,KACA,SACA,OACA,OACA,WACA,eACA,WACA,YACA,kBACA,SACA,UACA,aACA,KACA,QACA,oBACA,SACA,MACA,eACA,QACA,UACA,OACA,WACA,UACA,QACA,QACA,YACA,SACA,SACA,UACA,UACA,YACA,eACA,eACA,aACA,UACA,WACA,qBACA,QACA,gBACA,eACA,kBACA,kBACA,WACA,YACA,KACA,WACA,YACA,QACA,UACA,OACA,QACA,YACA,UACA,OACA,QACA,OACA,WACA,MACA,QACA,YACA,YACA,UACA,WACA,WACA,UACA,QACA,aACA,aACA,YACA,aACA,UACA,cACA,UACA,WACA,UACA,UACA,QACA,QACA,UACA,UACA,QACA,gBACA,QACA,QACA,UACA,OACA,QACA,OACA,OACA,QACA,QACA,OACA,WACA,YACA,UACA,SACA,YACA,aACA,YACA,MACA,YACA,aACA,UACA,SACA,UACA,WACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,gBACA,SACA,aACA,QACA,kBACA,UACA,UACA,YACA,cACA,cACA,aACA,UACA,WACA,gBACA,QACA,UACA,UACA,WACA,SACA,aACA,QACA,SACA,YACA,UACA,UACA,SACA,UACA,QACA,kBACA,kBACA,sBACA,QACA,OACA,QACA,WACA,SACA,QACA,UACA,MACA,YACA,aACA,aACA,OACA,WACA,OACA,OACA,OACA,QACA,UACA,KACA,OACA,OACA,YACA,SACA,SACA,UACA,iBACA,SACA,SACA,SACA,qBACA,cACA,WACA,SACA,YACA,gBACA,YACA,YACA,WACA,YACA,SACA,eACA,SACA,eACA,SACA,UACA,eACA,MACA,QACA,2BACA,MACA,OACA,OACA,QACA,UACA,aACA,QACA,OACA,WACA,UACA,OACA,SACA,UACA,SACA,OACA,SACA,MACA,OACA,kBACA,QACA,SACA,WACA,WACA,YACA,aACA,4BACA,OACA,SACA,SACA,UACA,sBACA,WACA,QACA,MACA,iBACA,oBACA,YACA,sBACA,eACA,WACA,eACA,iBACA,mBACA,WACA,aACA,OACA,MACA,SACA,aACA,QACA,WACA,QACA,YACA,aACA,QACA,SACA,MACA,SACA,aACA,cACA,QACA,SACA,OACA,UACA,cACA,gBACA,SACA,SACA,QACA,UACA,SACA,YACA,kBACA,UACA,MACA,QACA,YACA,gBACA,OACA,QACA,SACA,mBACA,iBACA,cACA,QACA,SACA,QACA,iBACA,SACA,aACA,OACA,MACA,cACA,OACA,OACA,WACA,YACA,YACA,aACA,YACA,aACA,OACA,OACA,OACA,OACA,WACA,cACA,cACA,UACA,YACA,eACA,gBACA,WACA,cACA,WACA,UACA,WACA,KACA,YACA,UACA,UACA,UACA,UACA,YACA,aACA,eACA,YACA,cACA,WACA,YACA,cACA,6BACA,QACA,UACA,WACA,OACA,OACA,QACA,WACA,UACA,YACA,WACA,OACA,QACA,QACA,YACA,cACA,YACA,OACA,cACA,aACA,QACA,SACA,UACA,QACA,SACA,YACA,iBACA,UACA,WACA,UACA,SACA,WACA,UACA,WACA,QACA,SACA,UACA,QACA,QACA,MACA,OACA,QACA,QACA,WACA,WACA,gBACA,QACA,SACA,QACA,WACA,YACA,QACA,SACA,YACA,UACA,eACA,YACA,WACA,WACA,UACA,WACA,UACA,aACA,UACA,UACA,OACA,OACA,WACA,SACA,OACA,QACA,WACA,OACA,UACA,aACA,OACA,QACA,QACA,aACA,SACA,OACA,UACA,SACA,gBACA,OACA,WACA,UACA,QACA,UACA,MACA,OACA,aACA,MACA,WACA,MACF,CAAC,CACH,CAEA,qBAAsBX,EAA2C,CAC/D,IAAMwJ,EAAWxJ,EAAW,KAAK,SAC3ByJ,EAAWD,IAAa,OAAY,oBAAsB,gBAAgBA,CAAQ,GACxF,OAAO9B,EAAoB+B,CAAQ,EAAE,KAAK,KAAMzJ,CAAU,CAC5D,CAEA,sBAAuBA,EAA4C,CACjE,IAAMwJ,EAAWxJ,EAAW,KAAK,SAC3ByJ,EAAWD,IAAa,OAAY,oBAAsB,gBAAgBA,CAAQ,GACxF,OAAO9B,EAAoB+B,CAAQ,EAAE,KAAK,KAAMzJ,CAAU,CAC5D,CAEA,oBAAqBA,EAA0C,CAC7D,YAAK,YAAY,yCAAyC,EACn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","names":["castToTime6","expression","timeType","CastExpr","DataTypeExpr","DataTypeParamExpr","LiteralExpr","_ORIGINAL_KEYWORDS_dec","_BYTE_STRINGS_dec","_a","_init","SingleStoreTokenizer","MySQL","cache","__decoratorStart","__decorateElement","__decoratorMetadata","__runInitializers","_TABLE_ALIAS_TOKENS_dec","_ALTER_PARSERS_dec","_SHOW_PARSERS_dec","_COLUMN_OPERATORS_dec","_CAST_COLUMN_OPERATORS_dec","_NO_PAREN_FUNCTIONS_dec","_FUNCTION_PARSERS_dec","_FUNCTIONS_dec","_ID_VAR_TOKENS_dec","SingleStoreParser","Parser","buildFormattedTime","TsOrDsToDateExpr","StrToTimeExpr","ToCharExpr","StrToDateExpr","TimeToStrExpr","args","seqGet","ParenExpr","DayOfWeekExpr","StrToUnixExpr","UnixToTimeExpr","DateBinExpr","buildJsonExtractPath","JsonbExtractExpr","JsonbExtractScalarExpr","JsonExtractExpr","JsonExtractScalarExpr","JsonArrayContainsExpr","JsonKeysExpr","JsonFormatExpr","JsonArrayExpr","JsonObjectExpr","DateExpr","TimestampDiffExpr","HllExpr","ApproxQuantileExpr","VariancePopExpr","ContainsExpr","RegexpExtractAllExpr","RegexpExtractExpr","ReduceExpr","JsonArrayAggExpr","UtcDateExpr","UtcTimeExpr","UtcTimestampExpr","operators","thisNode","to","TryCastExpr","path","JsonExistsExpr","showParser","RenameColumnExpr","expressions","typeName","aliases","_RESERVED_KEYWORDS_dec","_TYPE_MAPPING_dec","_UNSUPPORTED_TYPES_dec","_ORIGINAL_TRANSFORMS_dec","_SUPPORTED_JSON_PATH_PARTS_dec","_STRUCT_DELIMITER_dec","_NULL_ORDERING_SUPPORTED_dec","_AFTER_HAVING_MODIFIER_TRANSFORMS_dec","SingleStoreGenerator","modifiers","m","JsonPathKeyExpr","JsonPathRootExpr","JsonPathSubscriptExpr","transforms","e","unsupportedArgs","renameFunc","CastToStrTypeExpr","TimeToUnixExpr","TimeStrToUnixExpr","UnixSecondsExpr","UnixToStrExpr","UnixToTimeStrExpr","TimeStrToDateExpr","FromTimeZoneExpr","DiToDateExpr","SingleStore","DateToDiExpr","TsOrDiToDiExpr","TimeExpr","DatetimeAddExpr","removeTsOrDsToDate","dateAddSql","DatetimeTruncExpr","timestampTruncSql","DatetimeSubExpr","dateAddIntervalSql","DatetimeDiffExpr","timestampDiffSql","DateTruncExpr","DateDiffExpr","TsOrDsDiffExpr","TimestampTruncExpr","CurrentDatetimeExpr","_e","CurrentTimestampExpr","jsonExtractSegments","jsonPathKeyOnlyName","JsonbExistsExpr","DayOfWeekIsoExpr","DayOfMonthExpr","ApproxDistinctExpr","CountIfExpr","countIfToSum","LogicalOrExpr","LogicalAndExpr","VarianceExpr","XorExpr","boolXorSql","CbrtExpr","PowExpr","RegexpLikeExpr","RepeatExpr","MulExpr","IsAsciiExpr","Md5DigestExpr","StartsWithExpr","FromBaseExpr","RegexpILikeExpr","LowerExpr","StuffExpr","NationalExpr","MatchAgainstExpr","ShowExpr","DescribeExpr","CurrentDateExpr","jsonType","funcName","res","returning","scale","precision","inverseAliases","timezone","arg","hashFunction","name","statements","expr","oldColumn","newColumn","alter","collate","collatePart","thisSql","notNull","type","_match","group","_INVERSE_VECTOR_TYPE_ALIASES_dec","_VECTOR_TYPE_ALIASES_dec","_TIME_MAPPING_dec","_SingleStore","k","v","Dialect"]}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../chunk-DOKMTZYO.cjs');var _chunk2Z3O2CFMcjs = require('../chunk-2Z3O2CFM.cjs');var HE=new Set(["DAY","WEEK","MONTH","QUARTER","YEAR"]),$t=38,KE=37;function VE(e){return this.annotateByArgs(e,["this"]),e.isType("null")&&this.setType(e,"varchar"),e}function WE(e){return e.args.zone?this.setType(e,"timestamptz"):this.setType(e,"timestamp"),e}function Go(e){let n=e.args.this;return _chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)&&n.isType("date")&&!HE.has(e.text("unit").toUpperCase())?this.setType(e,"timestampntz"):this.annotateByArgs(e,["this"]),e}function vE(e){let n=_nullishCoalesce(e.args.expressions, () => ([])),r=[];for(let s=2;s<n.length;s+=2)r.push(n[s].type);n.length%2===0&&r.push(n[n.length-1].type);let t;for(let s of r){let a=_chunk2Z3O2CFMcjs.n.call(void 0, s,_chunk2Z3O2CFMcjs.ac)?s:void 0;t=this.maybeCoerce(t||a,a)}return this.setType(e,t),e}function wo(e){let n=e.args.this,r=_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)?n.type:void 0;return this.setType(e,e.args.count?"array":_chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.ac)?r:void 0),e}function $E(e){let n=e.args.this,r=e.args.expression,t=_chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.Fb)?_nullishCoalesce(r.args.expressions, () => ([])):[];if((_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.yn)||_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.xn))&&_chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.Fb)&&t.length===1&&_chunk2Z3O2CFMcjs.n.call(void 0, t[0],_chunk2Z3O2CFMcjs.Gb)){let s=t[0].args.this,a=_chunk2Z3O2CFMcjs.n.call(void 0, s,_chunk2Z3O2CFMcjs.Ca)?s.type:void 0;this.setType(e,_chunk2Z3O2CFMcjs.n.call(void 0, a,_chunk2Z3O2CFMcjs.ac)?a:void 0)}return e}function XE(e){this.annotateByArgs(e,["this"]);let n=e.args.this,r=_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)?n.type:void 0;if(!_chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.ac))return e;if(r.isType("double"))this.setType(e,"double");else{let t=_chunk2Z3O2CFMcjs.q.call(void 0, _nullishCoalesce(r.args.expressions, () => ([])),_chunk2Z3O2CFMcjs.Ca),s=t[0]?Number(t[0].text("this")):$t,a=t[1]?Number(t[1].text("this")):0,o=Math.min(s+3,$t),x=Math.min(a+3,KE),u=_chunk2Z3O2CFMcjs.ac.build(`NUMBER(${o}, ${x})`,{dialect:"snowflake"});this.setType(e,u)}return e}function kE(e){this.annotateByArgs(e,["this"]);let n=e.args.this,r=_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)?n.type:void 0;if(!_chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.ac))return e;if(r.isType("decfloat"))this.setType(e,_chunk2Z3O2CFMcjs.ac.build("DECFLOAT",{dialect:"snowflake"}));else if(r.isType(["float","double"]))this.setType(e,"double");else{let t=_chunk2Z3O2CFMcjs.q.call(void 0, _nullishCoalesce(r.args.expressions, () => ([])),_chunk2Z3O2CFMcjs.Ca),s=t[1]?Number(t[1].text("this")):0,a=s===0?6:Math.max(12,s),o=_chunk2Z3O2CFMcjs.ac.build(`NUMBER(${$t}, ${a})`,{dialect:"snowflake"});this.setType(e,o)}return e}function ZE(e){this.annotateByArgs(e,["this"]);let n=e.args.this,r=_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)?n.type:void 0;return _chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.ac)?(r.isType("decfloat")?this.setType(e,_chunk2Z3O2CFMcjs.ac.build("DECFLOAT",{dialect:"snowflake"})):r.isType(["float","double"])?this.setType(e,"double"):this.setType(e,_chunk2Z3O2CFMcjs.ac.build(`NUMBER(${$t}, 12)`,{dialect:"snowflake"})),e):(this.setType(e,_chunk2Z3O2CFMcjs.ac.build(`NUMBER(${$t}, 12)`,{dialect:"snowflake"})),e)}function JE(e){this.annotateByArgs(e,["this"]);let n=e.args.this;if(_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)&&n.isType("decfloat")){let r=n.type;this.setType(e,_chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.ac)?r:void 0)}else this.setType(e,"double");return e}function QE(e){let n=e.args.targetType,r=_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.ac)?n:"timestamp";return this.setType(e,r),e}var Yo,we;Yo=[_chunk2Z3O2CFMcjs.r];var rt=class{static get EXPRESSION_METADATA(){let n=new Map(_chunk2Z3O2CFMcjs.np.EXPRESSION_METADATA),r=(t,s)=>{for(let a of t)n.set(a,s)};return r([_chunk2Z3O2CFMcjs.mk,_chunk2Z3O2CFMcjs.Ig,_chunk2Z3O2CFMcjs.yh,_chunk2Z3O2CFMcjs.Bi,_chunk2Z3O2CFMcjs.Lj,_chunk2Z3O2CFMcjs.un,_chunk2Z3O2CFMcjs.Pf,_chunk2Z3O2CFMcjs.Mj,_chunk2Z3O2CFMcjs.Uk,_chunk2Z3O2CFMcjs.El,_chunk2Z3O2CFMcjs.pl,_chunk2Z3O2CFMcjs.ci,_chunk2Z3O2CFMcjs.bi],{annotator:(t,s)=>t.annotateByArgs(s,["this"])}),r([_chunk2Z3O2CFMcjs.xm,_chunk2Z3O2CFMcjs.Ef,_chunk2Z3O2CFMcjs.Mf,_chunk2Z3O2CFMcjs.Nm,_chunk2Z3O2CFMcjs.fg,_chunk2Z3O2CFMcjs.ig,_chunk2Z3O2CFMcjs.hg,_chunk2Z3O2CFMcjs.lg,_chunk2Z3O2CFMcjs.gg,_chunk2Z3O2CFMcjs.Cf,_chunk2Z3O2CFMcjs.Ag,_chunk2Z3O2CFMcjs.Om,_chunk2Z3O2CFMcjs.Sm,_chunk2Z3O2CFMcjs.ak,_chunk2Z3O2CFMcjs.Jk,_chunk2Z3O2CFMcjs.nl,_chunk2Z3O2CFMcjs.vg],{returns:"array"}),r([_chunk2Z3O2CFMcjs.wf,_chunk2Z3O2CFMcjs.uf,_chunk2Z3O2CFMcjs.vf,_chunk2Z3O2CFMcjs.xi,_chunk2Z3O2CFMcjs.Hm,_chunk2Z3O2CFMcjs.ik,_chunk2Z3O2CFMcjs.jk,_chunk2Z3O2CFMcjs.Ck,_chunk2Z3O2CFMcjs._k,_chunk2Z3O2CFMcjs.lm],{returns:"bigint"}),r([_chunk2Z3O2CFMcjs.Fi,_chunk2Z3O2CFMcjs.sm,_chunk2Z3O2CFMcjs.tm,_chunk2Z3O2CFMcjs.Xi,_chunk2Z3O2CFMcjs.Yi,_chunk2Z3O2CFMcjs.pi,_chunk2Z3O2CFMcjs.qi,_chunk2Z3O2CFMcjs.ti,_chunk2Z3O2CFMcjs.ui,_chunk2Z3O2CFMcjs.Gc,_chunk2Z3O2CFMcjs.hk,_chunk2Z3O2CFMcjs.hl,_chunk2Z3O2CFMcjs.il,_chunk2Z3O2CFMcjs.Ei,_chunk2Z3O2CFMcjs.Ii,_chunk2Z3O2CFMcjs.Ki,_chunk2Z3O2CFMcjs.Ul],{returns:"binary"}),r([_chunk2Z3O2CFMcjs.zf,_chunk2Z3O2CFMcjs.yf,_chunk2Z3O2CFMcjs.Af,_chunk2Z3O2CFMcjs.rm,_chunk2Z3O2CFMcjs.vi,_chunk2Z3O2CFMcjs.fj,_chunk2Z3O2CFMcjs.Zj,_chunk2Z3O2CFMcjs.ul,_chunk2Z3O2CFMcjs.vl,_chunk2Z3O2CFMcjs.Of],{returns:"boolean"}),r([_chunk2Z3O2CFMcjs.im,_chunk2Z3O2CFMcjs.Rh],{returns:"date"}),r([_chunk2Z3O2CFMcjs.om,_chunk2Z3O2CFMcjs.pm,_chunk2Z3O2CFMcjs.qm,_chunk2Z3O2CFMcjs.Qk,_chunk2Z3O2CFMcjs.Ok,_chunk2Z3O2CFMcjs.Sf],{annotator:(t,s)=>t.setType(s,_chunk2Z3O2CFMcjs.ac.build("NUMBER",{dialect:"snowflake"}))}),r([_chunk2Z3O2CFMcjs.Ak,_chunk2Z3O2CFMcjs.Fm,_chunk2Z3O2CFMcjs.of,_chunk2Z3O2CFMcjs.Wn,_chunk2Z3O2CFMcjs.Vn,_chunk2Z3O2CFMcjs.pf,_chunk2Z3O2CFMcjs.qf,_chunk2Z3O2CFMcjs.rf,_chunk2Z3O2CFMcjs.Oh,_chunk2Z3O2CFMcjs.ok],{returns:"double"}),r([_chunk2Z3O2CFMcjs.Uf,_chunk2Z3O2CFMcjs.Vf],{returns:"decfloat"}),r([_chunk2Z3O2CFMcjs.$e,_chunk2Z3O2CFMcjs.af,_chunk2Z3O2CFMcjs.bf,_chunk2Z3O2CFMcjs.cf,_chunk2Z3O2CFMcjs.Ng,_chunk2Z3O2CFMcjs.ff,_chunk2Z3O2CFMcjs.df,_chunk2Z3O2CFMcjs.nf,_chunk2Z3O2CFMcjs.wi,_chunk2Z3O2CFMcjs.Sj,_chunk2Z3O2CFMcjs.Tj,_chunk2Z3O2CFMcjs.zk,_chunk2Z3O2CFMcjs.Tk,_chunk2Z3O2CFMcjs.Gn,_chunk2Z3O2CFMcjs.Fn,_chunk2Z3O2CFMcjs.Hn,_chunk2Z3O2CFMcjs.In,_chunk2Z3O2CFMcjs.Jn,_chunk2Z3O2CFMcjs.Nn,_chunk2Z3O2CFMcjs.Kn,_chunk2Z3O2CFMcjs.Ln,_chunk2Z3O2CFMcjs.Mn,_chunk2Z3O2CFMcjs.Dn,_chunk2Z3O2CFMcjs.En,_chunk2Z3O2CFMcjs.kf,_chunk2Z3O2CFMcjs.Fl,_chunk2Z3O2CFMcjs.lf,_chunk2Z3O2CFMcjs.mf],{annotator:(t,s)=>JE.call(t,s)}),r([_chunk2Z3O2CFMcjs.xf,_chunk2Z3O2CFMcjs.Gm,_chunk2Z3O2CFMcjs.sf,_chunk2Z3O2CFMcjs.ck,_chunk2Z3O2CFMcjs.Vi,_chunk2Z3O2CFMcjs.Pj,_chunk2Z3O2CFMcjs.Wi,_chunk2Z3O2CFMcjs.Xk,_chunk2Z3O2CFMcjs.Yk,_chunk2Z3O2CFMcjs.Zk,_chunk2Z3O2CFMcjs.gm],{returns:"int"}),r([_chunk2Z3O2CFMcjs.Bn,_chunk2Z3O2CFMcjs.Cm,_chunk2Z3O2CFMcjs.ym,_chunk2Z3O2CFMcjs.zm,_chunk2Z3O2CFMcjs.an,_chunk2Z3O2CFMcjs.Hj,_chunk2Z3O2CFMcjs.Gj,_chunk2Z3O2CFMcjs.jm],{returns:"object"}),r([_chunk2Z3O2CFMcjs.Yj,_chunk2Z3O2CFMcjs._j,_chunk2Z3O2CFMcjs.$j,_chunk2Z3O2CFMcjs.bk],{returns:"map"}),n.set(_chunk2Z3O2CFMcjs.Wf,{returns:"file"}),r([_chunk2Z3O2CFMcjs.ii,_chunk2Z3O2CFMcjs.Rl],{returns:"time"}),r([_chunk2Z3O2CFMcjs.fh,_chunk2Z3O2CFMcjs.dh],{returns:"timestampltz"}),n.set(_chunk2Z3O2CFMcjs.Bk,{returns:"tinyint"}),r([_chunk2Z3O2CFMcjs.Pm,_chunk2Z3O2CFMcjs.dg,_chunk2Z3O2CFMcjs.Qm,_chunk2Z3O2CFMcjs.Gi,_chunk2Z3O2CFMcjs.Hi,_chunk2Z3O2CFMcjs.Eg,_chunk2Z3O2CFMcjs.Fg,_chunk2Z3O2CFMcjs.Gg,_chunk2Z3O2CFMcjs.Hg,_chunk2Z3O2CFMcjs.Og,_chunk2Z3O2CFMcjs.Pg,_chunk2Z3O2CFMcjs.Qg,_chunk2Z3O2CFMcjs.Rg,_chunk2Z3O2CFMcjs.Tg,_chunk2Z3O2CFMcjs.Sg,_chunk2Z3O2CFMcjs.Ug,_chunk2Z3O2CFMcjs.Vg,_chunk2Z3O2CFMcjs.Wg,_chunk2Z3O2CFMcjs.Xg,_chunk2Z3O2CFMcjs.Yg,_chunk2Z3O2CFMcjs.Zg,_chunk2Z3O2CFMcjs._g,_chunk2Z3O2CFMcjs.ph,_chunk2Z3O2CFMcjs.mh,_chunk2Z3O2CFMcjs.nh,_chunk2Z3O2CFMcjs.oh,_chunk2Z3O2CFMcjs.ih,_chunk2Z3O2CFMcjs.Zi,_chunk2Z3O2CFMcjs.Si,_chunk2Z3O2CFMcjs.Ti,_chunk2Z3O2CFMcjs.lk,_chunk2Z3O2CFMcjs.Ek,_chunk2Z3O2CFMcjs.Ik,_chunk2Z3O2CFMcjs.Kk,_chunk2Z3O2CFMcjs.Rk,_chunk2Z3O2CFMcjs.Sk,_chunk2Z3O2CFMcjs.ll,_chunk2Z3O2CFMcjs.ml,_chunk2Z3O2CFMcjs.ol,_chunk2Z3O2CFMcjs.Ji,_chunk2Z3O2CFMcjs.Li,_chunk2Z3O2CFMcjs.cm],{returns:"varchar"}),r([_chunk2Z3O2CFMcjs.Dm,_chunk2Z3O2CFMcjs.Em],{returns:"variant"}),r([_chunk2Z3O2CFMcjs.Rn,_chunk2Z3O2CFMcjs.Sn],{annotator:(t,s)=>kE.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.vm,{annotator:(t,s)=>wo.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.wm,{annotator:(t,s)=>wo.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.dn,{annotator:(t,s)=>t.annotateByArgs(s,["expressions"])}),n.set(_chunk2Z3O2CFMcjs.$f,{annotator:(t,s)=>t.setType(s,s.args.sourceTz?"timestampntz":"timestamptz")}),n.set(_chunk2Z3O2CFMcjs.uh,{annotator:(t,s)=>Go.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.oi,{annotator:(t,s)=>vE.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.Jm,{annotator:(t,s)=>t.setType(s,_chunk2Z3O2CFMcjs.ac.build("NUMBER(19, 0)",{dialect:"snowflake"}))}),n.set(_chunk2Z3O2CFMcjs.Tn,{annotator:(t,s)=>ZE.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.tn,{annotator:(t,s)=>XE.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.Nj,{annotator:(t,s)=>VE.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.xl,{annotator:(t,s)=>QE.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.di,{annotator:(t,s)=>Go.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.dm,{annotator:(t,s)=>WE.call(t,s)}),n.set(_chunk2Z3O2CFMcjs.Wa,{annotator:(t,s)=>$E.call(t,s)}),n}};we=_chunk2Z3O2CFMcjs.a.call(void 0, null),_chunk2Z3O2CFMcjs.d.call(void 0, we,10,"EXPRESSION_METADATA",Yo,rt),_chunk2Z3O2CFMcjs.b.call(void 0, we,rt),_chunk2Z3O2CFMcjs.c.call(void 0, we,3,rt);var wE={timestamp:"TO_TIMESTAMP",timestampltz:"TO_TIMESTAMP_LTZ",timestampntz:"TO_TIMESTAMP_NTZ",timestamptz:"TO_TIMESTAMP_TZ"};function zE(e){return e.length===1&&e.push(_chunk2Z3O2CFMcjs.$c.string(" ")),e.length===2&&e.push(_chunk2Z3O2CFMcjs.$c.number(1)),_chunk2Z3O2CFMcjs.ol.fromArgList(e)}function jE(e){return e.length===1&&e.push(_chunk2Z3O2CFMcjs.$c.number(1)),_chunk2Z3O2CFMcjs.xm.fromArgList(e)}function qo(e){return new (0, _chunk2Z3O2CFMcjs.hi)({year:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),month:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),day:_chunk2Z3O2CFMcjs.ca.call(void 0, e,2),allowOverflow:!0})}function M(e,n,r={}){let{safe:t=!1}=r;return s=>{let a=_chunk2Z3O2CFMcjs.ca.call(void 0, s,0),o=_chunk2Z3O2CFMcjs.ca.call(void 0, s,1),x=a instanceof _chunk2Z3O2CFMcjs.rb&&_chunk2Z3O2CFMcjs.fa.call(void 0, a.name),u=o instanceof _chunk2Z3O2CFMcjs.$c&&o.isNumber;if(a instanceof _chunk2Z3O2CFMcjs.$c||a instanceof _chunk2Z3O2CFMcjs.We||a&&o){if(s.length===1&&a instanceof _chunk2Z3O2CFMcjs.$c&&a.isString&&!x)return t?new (0, _chunk2Z3O2CFMcjs.bn)({this:a,to:_chunk2Z3O2CFMcjs.ac.build(n),requiresString:!0}):new (0, _chunk2Z3O2CFMcjs.Cg)({this:a,to:_chunk2Z3O2CFMcjs.ac.build(n)});if(n in wE){if(!t&&(u||x&&o===void 0)){let A=new (0, _chunk2Z3O2CFMcjs.Zl)({this:a,scale:o});return A.setArgKey("targetType",_chunk2Z3O2CFMcjs.ac.build(n,{dialect:"snowflake"})),A}if(o&&!u){let A=_chunk2Z3O2CFMcjs.Kp.call(void 0, _chunk2Z3O2CFMcjs.xl,{dialect:"snowflake"})(s);return A.setArgKey("safe",t),A.setArgKey("targetType",_chunk2Z3O2CFMcjs.ac.build(n,{dialect:"snowflake"})),A}}}let O=o&&!u;if((n==="date"||n==="time")&&(!x||O)){let A=n==="date"?_chunk2Z3O2CFMcjs.Pl:_chunk2Z3O2CFMcjs.Rl,R=_chunk2Z3O2CFMcjs.Kp.call(void 0, A,{dialect:"snowflake"})(s);return R.setArgKey("safe",t),R}return new (0, _chunk2Z3O2CFMcjs.Kf)({this:e,expressions:s})}}function YE(e){let n=_chunk2Z3O2CFMcjs.sa.call(void 0, e);return n instanceof _chunk2Z3O2CFMcjs.dk?n:new (0, _chunk2Z3O2CFMcjs.Cl)({expressions:[..._nullishCoalesce(n.args.keys, () => ([]))].map((r,t)=>new (0, _chunk2Z3O2CFMcjs.Fe)({this:r,expression:_chunk2Z3O2CFMcjs.ca.call(void 0, _nullishCoalesce(n.args.values, () => ([])),t)}))})}function qr(e){return new (0, _chunk2Z3O2CFMcjs.xh)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,2),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),unit:_chunk2Z3O2CFMcjs.wq.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, e,0)),datePartBoundary:!0})}function Xt(e){return n=>new e({this:_chunk2Z3O2CFMcjs.ca.call(void 0, n,2),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, n,1),unit:_chunk2Z3O2CFMcjs.wq.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, n,0))})}function F(e,n){return r=>{if(r.length===3)return e===_chunk2Z3O2CFMcjs.ue||e===_chunk2Z3O2CFMcjs.we||e===_chunk2Z3O2CFMcjs.ye?new e({this:_chunk2Z3O2CFMcjs.ca.call(void 0, r,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, r,1),padside:_chunk2Z3O2CFMcjs.ca.call(void 0, r,2)}):new (0, _chunk2Z3O2CFMcjs.Kf)({this:n,expressions:r});let t=_chunk2Z3O2CFMcjs.iq.call(void 0, e)(r);return(e===_chunk2Z3O2CFMcjs.ve||e===_chunk2Z3O2CFMcjs.xe)&&t.setArgKey("requiresInt128",!0),t}}function tp(e){let n=_chunk2Z3O2CFMcjs.zo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, e,0),_chunk2Z3O2CFMcjs.be),r=_chunk2Z3O2CFMcjs.zo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, e,1),_chunk2Z3O2CFMcjs.be),t=new (0, _chunk2Z3O2CFMcjs.Ce)({this:r,expression:_chunk2Z3O2CFMcjs.$c.number(0)}).and(new (0, _chunk2Z3O2CFMcjs.Ke)({this:n,expression:_chunk2Z3O2CFMcjs.Bo.call(void 0, )}).not()),s=_chunk2Z3O2CFMcjs.$c.number(0),a=new (0, _chunk2Z3O2CFMcjs.ze)({this:n,expression:r});return new (0, _chunk2Z3O2CFMcjs._i)({this:t,true:s,false:a})}function rp(e){let n=_chunk2Z3O2CFMcjs.zo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, e,0),_chunk2Z3O2CFMcjs.be),r=_chunk2Z3O2CFMcjs.zo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, e,1),_chunk2Z3O2CFMcjs.be),t=new (0, _chunk2Z3O2CFMcjs.Ce)({this:r,expression:_chunk2Z3O2CFMcjs.$c.number(0)}).or(new (0, _chunk2Z3O2CFMcjs.Ke)({this:r,expression:_chunk2Z3O2CFMcjs.Bo.call(void 0, )})),s=_chunk2Z3O2CFMcjs.$c.number(0),a=new (0, _chunk2Z3O2CFMcjs.ze)({this:n,expression:r});return new (0, _chunk2Z3O2CFMcjs._i)({this:t,true:s,false:a})}function ep(e){let n=new (0, _chunk2Z3O2CFMcjs.Ke)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),expression:_chunk2Z3O2CFMcjs.Bo.call(void 0, )});return new (0, _chunk2Z3O2CFMcjs._i)({this:n,true:_chunk2Z3O2CFMcjs.$c.number(0),false:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0)})}function sp(e){let n={this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1)};return e.slice(2).forEach(r=>{r instanceof _chunk2Z3O2CFMcjs.Le&&(n[r.name]=r)}),new (0, _chunk2Z3O2CFMcjs.ul)(n)}function np(e){let n=new (0, _chunk2Z3O2CFMcjs.Ce)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),expression:_chunk2Z3O2CFMcjs.$c.number(0)});return new (0, _chunk2Z3O2CFMcjs._i)({this:n,true:_chunk2Z3O2CFMcjs.Bo.call(void 0, ),false:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0)})}function ip(e){let n=e.text("flag");return n.includes("i")||(n+="i"),this.func("REGEXP_LIKE",[e.args.this,e.args.expression,_chunk2Z3O2CFMcjs.$c.string(n)])}function ap(e){let n=_chunk2Z3O2CFMcjs.Kk.fromArgList(e);return n.args.replacement||n.setArgKey("replacement",_chunk2Z3O2CFMcjs.$c.string("")),n}function g(e){return function(){return this.parseShowSnowflake(e)}}function op(e){let n=_chunk2Z3O2CFMcjs.Op.call(void 0, e),r=_chunk2Z3O2CFMcjs.wq.call(void 0, n.args.unit);n.setArgKey("unit",r);let t=_optionalChain([n, 'access', _2 => _2.args, 'access', _3 => _3.this, 'optionalAccess', _4 => _4.isType, 'call', _5 => _5(["time","timetz"])]);return(n instanceof _chunk2Z3O2CFMcjs.bi&&(_chunk2Z3O2CFMcjs.ja.call(void 0, r)||t)||n instanceof _chunk2Z3O2CFMcjs.yh&&!_chunk2Z3O2CFMcjs.ja.call(void 0, r))&&n.setArgKey("inputTypePreserved",!0),n}function Ep(e){if(e instanceof _chunk2Z3O2CFMcjs.Yb){if(e.args.unpivot)return _chunk2Z3O2CFMcjs.dp.call(void 0, e);_optionalChain([e, 'access', _6 => _6.args, 'access', _7 => _7.fields, 'optionalAccess', _8 => _8.forEach, 'call', _9 => _9(n=>{let r=_chunk2Z3O2CFMcjs.ca.call(void 0, _optionalChain([n, 'optionalAccess', _10 => _10.args, 'access', _11 => _11.expressions])||[],0);if(r instanceof _chunk2Z3O2CFMcjs.ic){let t=_chunk2Z3O2CFMcjs.dp.call(void 0, r);_optionalChain([n, 'optionalAccess', _12 => _12.setArgKey, 'call', _13 => _13("expressions",[t],0)])}})])}return e}function pp(e){if(!(e instanceof _chunk2Z3O2CFMcjs.Ja))return e;let n=s=>(s instanceof _chunk2Z3O2CFMcjs.ac&&_chunk2Z3O2CFMcjs.ac.NESTED_TYPES.has(_optionalChain([s, 'access', _14 => _14.args, 'access', _15 => _15.this, 'optionalAccess', _16 => _16.toString, 'call', _17 => _17()]))&&s.setArgKey("expressions",void 0),s),t=_optionalChain([e, 'access', _18 => _18.args, 'access', _19 => _19.properties, 'optionalAccess', _20 => _20.find, 'call', _21 => _21(_chunk2Z3O2CFMcjs.md)]);if(e.args.this instanceof _chunk2Z3O2CFMcjs.Vb&&!t)for(let s of e.args.this.args.expressions||[])s instanceof _chunk2Z3O2CFMcjs.Za&&s.args.kind instanceof _chunk2Z3O2CFMcjs.ac&&s.args.kind.transform(n,{copy:!1});return e}function Tp(e){let n=_optionalChain([e, 'access', _22 => _22.args, 'access', _23 => _23.expressions, 'optionalAccess', _24 => _24[0]]),{start:r,end:t,step:s}=n.args;if(!r||!t||!(s instanceof _chunk2Z3O2CFMcjs.fe)||s.name!=="1")return;let a=s.args.unit;if(!a)return;let o=e.args.alias,x=_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, o,_chunk2Z3O2CFMcjs.Ya), 'optionalAccess', _25 => _25.args, 'access', _26 => _26.columns, 'optionalAccess', _27 => _27[0]])||"value",u=Xt((0, _chunk2Z3O2CFMcjs.uh))([a,new (0, _chunk2Z3O2CFMcjs.Cg)({this:x,to:_chunk2Z3O2CFMcjs.ac.build("int")}),new (0, _chunk2Z3O2CFMcjs.Cg)({this:r,to:_chunk2Z3O2CFMcjs.ac.build("date")})]),O=Hr.FUNCTIONS.ARRAY_GENERATE_RANGE([_chunk2Z3O2CFMcjs.$c.number(0),qr([a,r,t]).add(1)]);e.setArgKey("expressions",[O]);let A=e.parent;if(A instanceof _chunk2Z3O2CFMcjs.Bb){let R=A.parent;if(R instanceof _chunk2Z3O2CFMcjs.Wd){let _=x instanceof _chunk2Z3O2CFMcjs.Ca?x.name:x.toString(),L=_chunk2Z3O2CFMcjs.U.call(void 0, R);if(L)for(let Kr of L.columns)Kr.name.toLowerCase()===_.toLowerCase()&&Kr.replace(Kr.parent instanceof _chunk2Z3O2CFMcjs.Wd?u.as(_):u);let Ke=new (0, _chunk2Z3O2CFMcjs.ne)({this:_optionalChain([A, 'access', _28 => _28.args, 'access', _29 => _29.this, 'optionalAccess', _30 => _30.pop, 'call', _31 => _31()])});A.replace(new (0, _chunk2Z3O2CFMcjs.Bb)({this:Ke}))}}else e.replace(_chunk2Z3O2CFMcjs.jo.call(void 0, u.as(x)).from(e.copy()).subquery(o))}function cp(e){if(e instanceof _chunk2Z3O2CFMcjs.Wd)for(let n of e.findAll(_chunk2Z3O2CFMcjs.Mi)){let r=n.parent;if(!(r instanceof _chunk2Z3O2CFMcjs.Ai)){let t=new (0, _chunk2Z3O2CFMcjs.Ai)({expressions:[n.copy()]});n.replace(_chunk2Z3O2CFMcjs.jo.call(void 0, new (0, _chunk2Z3O2CFMcjs.Nm)({this:new (0, _chunk2Z3O2CFMcjs._b)({})})).from(t).subquery())}r instanceof _chunk2Z3O2CFMcjs.Ai&&(r.parent instanceof _chunk2Z3O2CFMcjs.pb||r.parent instanceof _chunk2Z3O2CFMcjs.Bb)&&_optionalChain([r, 'access', _32 => _32.args, 'access', _33 => _33.expressions, 'optionalAccess', _34 => _34.length])===1&&Tp(r)}return e}function Ye(e){return(n,{dialect:r})=>new e({this:_chunk2Z3O2CFMcjs.ca.call(void 0, n,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, n,1),position:_chunk2Z3O2CFMcjs.ca.call(void 0, n,2),occurrence:_chunk2Z3O2CFMcjs.ca.call(void 0, n,3),parameters:_chunk2Z3O2CFMcjs.ca.call(void 0, n,4),group:_chunk2Z3O2CFMcjs.ca.call(void 0, n,5)||_chunk2Z3O2CFMcjs.$c.number(0),...e===_chunk2Z3O2CFMcjs.Ik?{nullIfPosOverflow:r._constructor.REGEXP_EXTRACT_POSITION_OVERFLOW_RETURNS_NULL}:{}})}function Ho(e){let n=e.args.group;n&&(n instanceof _chunk2Z3O2CFMcjs.rb&&n.name==="0"||n instanceof _chunk2Z3O2CFMcjs.$c&&String(n.args.this)==="0")&&(n=void 0);let r=e.args.parameters||(n?_chunk2Z3O2CFMcjs.$c.string("c"):void 0),t=e.args.occurrence||(r?_chunk2Z3O2CFMcjs.$c.number(1):void 0),s=e.args.position||(t?_chunk2Z3O2CFMcjs.$c.number(1):void 0);return this.func(e instanceof _chunk2Z3O2CFMcjs.Ik?"REGEXP_SUBSTR":"REGEXP_EXTRACT_ALL",[e.args.this,e.args.expression,s,t,r,n])}function Ko(e){let n=new (0, _chunk2Z3O2CFMcjs.uj)({this:e.args.this,expression:e.args.expression}),r=_chunk2Z3O2CFMcjs.eo.call(void 0, "x"),t=e instanceof _chunk2Z3O2CFMcjs.pj?new (0, _chunk2Z3O2CFMcjs.Cg)({this:r,to:_chunk2Z3O2CFMcjs.ac.build("varchar")}):new (0, _chunk2Z3O2CFMcjs.Fj)({this:`TO_JSON(${r})`}),s=new (0, _chunk2Z3O2CFMcjs.zb)({expressions:[r],this:t});return this.func("TRANSFORM",[n,s])}function up(e){if(!(e instanceof _chunk2Z3O2CFMcjs.Wd))return e;let n=_chunk2Z3O2CFMcjs.U.call(void 0, e);if(!n)return e;let r=Array.from(n.findAll(_chunk2Z3O2CFMcjs.Ai));if(r.length===0)return e;let t=new Set(n.sources.keys()),s={},a=new Map,o,x=e.copy();for(let u of r){if(!(u.parent instanceof _chunk2Z3O2CFMcjs.pb||u.parent instanceof _chunk2Z3O2CFMcjs.Bb))continue;let O=new Set;for(let R of u.args.expressions||[])if(R instanceof _chunk2Z3O2CFMcjs.Mf){for(let _ of R.args.expressions||[])if(_ instanceof _chunk2Z3O2CFMcjs.Cl&&0<(_.args.expressions||[]).length&&_optionalChain([_, 'access', _35 => _35.args, 'access', _36 => _36.expressions, 'optionalAccess', _37 => _37.every, 'call', _38 => _38(L=>L instanceof _chunk2Z3O2CFMcjs.Fe)])){_.args.expressions.forEach(L=>{O.add(L.args.this instanceof _chunk2Z3O2CFMcjs.Ca?L.args.this.name.toLowerCase():_nullishCoalesce(_optionalChain([L, 'access', _39 => _39.args, 'access', _40 => _40.this, 'optionalAccess', _41 => _41.toString, 'call', _42 => _42(), 'access', _43 => _43.toLowerCase, 'call', _44 => _44()]), () => ("")))});break}if(0<O.size)break}let A=u.args.alias;if(A){let R=_chunk2Z3O2CFMcjs.p.call(void 0, A,_chunk2Z3O2CFMcjs.Ya),_=_optionalChain([R, 'optionalAccess', _45 => _45.args, 'access', _46 => _46.columns])||[];o=_optionalChain([R, 'optionalAccess', _47 => _47.args, 'access', _48 => _48.this])||_chunk2Z3O2CFMcjs.ca.call(void 0, _,0)}else{let R=_chunk2Z3O2CFMcjs.ea.call(void 0, t,"value");t.add(R);let _=_chunk2Z3O2CFMcjs.ho.call(void 0, u,void 0,{table:[R]});n.replace(u,_),o=_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, _.args.alias,_chunk2Z3O2CFMcjs.Ya), 'optionalAccess', _49 => _49.args, 'access', _50 => _50.columns, 'optionalAccess', _51 => _51[0]])}if(!(o instanceof _chunk2Z3O2CFMcjs.rb))return x;a.set(u,o),O.forEach(R=>{o&&(s[R.toLowerCase()]=o)})}for(let u of n.columns){if(u.args.table)continue;let O=o instanceof _chunk2Z3O2CFMcjs.Ca?o.name:_optionalChain([o, 'optionalAccess', _52 => _52.toString, 'call', _53 => _53()]),A=s[u.name.toLowerCase()];if(o&&!A&&n.sources.size===1&&u.name.toLowerCase()!==_optionalChain([O, 'optionalAccess', _54 => _54.toLowerCase, 'call', _55 => _55()])){let R=u.findAncestor(_chunk2Z3O2CFMcjs.Ai,_chunk2Z3O2CFMcjs.Wd),_=R?a.get(R):void 0;if(R instanceof _chunk2Z3O2CFMcjs.Ai&&_&&_.name.toLowerCase()===_optionalChain([O, 'optionalAccess', _56 => _56.toLowerCase, 'call', _57 => _57()]))continue;A=o}A&&u.setArgKey("table",A instanceof _chunk2Z3O2CFMcjs.Ca?A.copy():A)}return e}function Ap(e){if(e instanceof _chunk2Z3O2CFMcjs.Wd){let n=new Set;for(let r of _chunk2Z3O2CFMcjs.W.call(void 0, e,[_chunk2Z3O2CFMcjs.Ai])){let t=r.args.alias;t instanceof _chunk2Z3O2CFMcjs.Ya&&!t.args.this&&_optionalChain([t, 'access', _58 => _58.args, 'access', _59 => _59.columns, 'optionalAccess', _60 => _60.length])===1&&n.add(t.args.columns[0]instanceof _chunk2Z3O2CFMcjs.Ca?t.args.columns[0].name:t.args.columns[0].toString())}if(0<n.size){for(let r of _chunk2Z3O2CFMcjs.W.call(void 0, e,[_chunk2Z3O2CFMcjs.Ic]))if(r.args.table instanceof _chunk2Z3O2CFMcjs.Ca&&n.has(r.args.table.name)){let t=r.args.table,s=_chunk2Z3O2CFMcjs.$c.string(r.name),a=new (0, _chunk2Z3O2CFMcjs.de)({this:t,expressions:[s]});r.parent===e?r.replace(_chunk2Z3O2CFMcjs.ho.call(void 0, a,r.args.this instanceof _chunk2Z3O2CFMcjs.Ca?r.args.this.copy():_optionalChain([r, 'access', _61 => _61.args, 'access', _62 => _62.this, 'optionalAccess', _63 => _63.toString, 'call', _64 => _64()]))):r.replace(a)}}}return e}function Yr(e){return e.length===2?new (0, _chunk2Z3O2CFMcjs.dm)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1)}):_chunk2Z3O2CFMcjs.dm.fromArgList(e)}function xp(e){let n={EXPR:"this",SCALE:"decimals",ROUNDING_MODE:"truncate"},r={},t=["this","decimals","truncate"],s=0;for(let o of e)if(o instanceof _chunk2Z3O2CFMcjs.Le){let x=_optionalChain([o, 'access', _65 => _65.args, 'access', _66 => _66.this, 'optionalAccess', _67 => _67.name, 'access', _68 => _68.toUpperCase, 'call', _69 => _69()]),u=x!==void 0?n[x]:void 0;u&&(r[u]=o.args.expression)}else s<t.length&&(r[t[s]]=o,s++);let a=new (0, _chunk2Z3O2CFMcjs.Uk)(r);return a.setArgKey("castsNonIntegerDecimals",!0),a}function hp(e){let n={ROWCOUNT:"rowcount",TIMELIMIT:"timeLimit"},r={};for(let t of e)if(t instanceof _chunk2Z3O2CFMcjs.Le){let s=_optionalChain([t, 'access', _70 => _70.args, 'access', _71 => _71.this, 'optionalAccess', _72 => _72.name, 'access', _73 => _73.toUpperCase, 'call', _74 => _74()]),a=s!==void 0?n[s]:void 0;a&&(r[a]=t.args.expression)}return new (0, _chunk2Z3O2CFMcjs.cg)(r)}function qe(e){return new (0, _chunk2Z3O2CFMcjs.Sf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),format:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),precision:_chunk2Z3O2CFMcjs.ca.call(void 0, e,2),scale:_chunk2Z3O2CFMcjs.ca.call(void 0, e,3),safe:!0})}var Vo,Wo,He,ut=class extends(Wo=_chunk2Z3O2CFMcjs.Mo,Vo=[_chunk2Z3O2CFMcjs.r],Wo){static get SINGLE_TOKENS(){let r={..._chunk2Z3O2CFMcjs.Mo.SINGLE_TOKENS};return delete r.$,r}};He=_chunk2Z3O2CFMcjs.a.call(void 0, Wo),_chunk2Z3O2CFMcjs.d.call(void 0, He,10,"SINGLE_TOKENS",Vo,ut),_chunk2Z3O2CFMcjs.b.call(void 0, He,ut),_chunk2Z3O2CFMcjs.c.call(void 0, He,3,ut);var vo,$o,Xo,ko,Zo,Jo,Qo,zo,jo,U,P=class extends(jo=_chunk2Z3O2CFMcjs.Xq,zo=[_chunk2Z3O2CFMcjs.r],Qo=[_chunk2Z3O2CFMcjs.r],Jo=[_chunk2Z3O2CFMcjs.r],Zo=[_chunk2Z3O2CFMcjs.r],ko=[_chunk2Z3O2CFMcjs.r],Xo=[_chunk2Z3O2CFMcjs.r],$o=[_chunk2Z3O2CFMcjs.r],vo=[_chunk2Z3O2CFMcjs.r],jo){static get STRING_ESCAPES(){return["\\","'"]}static get HEX_STRINGS(){return[["x'","'"],["X'","'"]]}static get RAW_STRINGS(){return["$$"]}static get COMMENTS(){return["--","//",["/*","*/"]]}static get ORIGINAL_KEYWORDS(){let r={..._chunk2Z3O2CFMcjs.Xq.KEYWORDS,BYTEINT:"int","FILE://":"uriStart","FILE FORMAT":"fileFormat",GET:"get",MATCH_CONDITION:"matchCondition",MATCH_RECOGNIZE:"matchRecognize",MINUS:"except","NCHAR VARYING":"varchar",PUT:"put",REMOVE:"command",RM:"command",SAMPLE:"tableSample","SEMANTIC VIEW":"semanticView",SQL_DOUBLE:"double",SQL_VARCHAR:"varchar",STAGE:"stage","STORAGE INTEGRATION":"storageIntegration",STREAMLIT:"streamlit",TAG:"tag",TIMESTAMP_TZ:"timestamptz",TOP:"top",WAREHOUSE:"warehouse",FLOAT:"double"};return delete r["/*+"],r}static get SINGLE_TOKENS(){return{..._chunk2Z3O2CFMcjs.Xq.SINGLE_TOKENS,$:"parameter","!":"exclamation"}}static get VAR_SINGLE_TOKENS(){return new Set(["$"])}static get COMMANDS(){return new Set(Array.from(_chunk2Z3O2CFMcjs.Xq.COMMANDS).filter(r=>r!=="show"))}};U=_chunk2Z3O2CFMcjs.a.call(void 0, jo),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"STRING_ESCAPES",zo,P),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"HEX_STRINGS",Qo,P),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"RAW_STRINGS",Jo,P),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"COMMENTS",Zo,P),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"ORIGINAL_KEYWORDS",ko,P),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"SINGLE_TOKENS",Xo,P),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"VAR_SINGLE_TOKENS",$o,P),_chunk2Z3O2CFMcjs.d.call(void 0, U,10,"COMMANDS",vo,P),_chunk2Z3O2CFMcjs.b.call(void 0, U,P),_chunk2Z3O2CFMcjs.c.call(void 0, U,3,P),P.NESTED_COMMENTS=!1;var tE,rE,eE,sE,nE,iE,aE,oE,EE,pE,TE,cE,uE,AE,xE,hE,fE,SE,lE,RE,m,l=class l extends(RE=_chunk2Z3O2CFMcjs.za,lE=[_chunk2Z3O2CFMcjs.r],SE=[_chunk2Z3O2CFMcjs.r],fE=[_chunk2Z3O2CFMcjs.r],hE=[_chunk2Z3O2CFMcjs.r],xE=[_chunk2Z3O2CFMcjs.r],AE=[_chunk2Z3O2CFMcjs.r],uE=[_chunk2Z3O2CFMcjs.r],cE=[_chunk2Z3O2CFMcjs.r],TE=[_chunk2Z3O2CFMcjs.r],pE=[_chunk2Z3O2CFMcjs.r],EE=[_chunk2Z3O2CFMcjs.r],oE=[_chunk2Z3O2CFMcjs.r],aE=[_chunk2Z3O2CFMcjs.r],iE=[_chunk2Z3O2CFMcjs.r],nE=[_chunk2Z3O2CFMcjs.r],sE=[_chunk2Z3O2CFMcjs.r],eE=[_chunk2Z3O2CFMcjs.r],rE=[_chunk2Z3O2CFMcjs.r],tE=[_chunk2Z3O2CFMcjs.r],RE){static get ID_VAR_TOKENS(){return new Set([..._chunk2Z3O2CFMcjs.za.ID_VAR_TOKENS,"sessionUser","currentCatalog","except","matchCondition","straightJoin"])}static get TABLE_ALIAS_TOKENS(){return(()=>{let r=new Set([..._chunk2Z3O2CFMcjs.za.TABLE_ALIAS_TOKENS,"window","straightJoin"]);return r.delete("matchCondition"),r})()}static get COLON_PLACEHOLDER_TOKENS(){return new Set([...l.ID_VAR_TOKENS,"number"])}static get NO_PAREN_FUNCTIONS(){return{..._chunk2Z3O2CFMcjs.za.NO_PAREN_FUNCTIONS,currentTime:_chunk2Z3O2CFMcjs.ch}}static get FUNCTIONS(){return(()=>{let r={..._chunk2Z3O2CFMcjs.za.FUNCTIONS,ADD_MONTHS:t=>new (0, _chunk2Z3O2CFMcjs.mk)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),preserveEndOfMonth:!0}),APPROX_PERCENTILE:t=>_chunk2Z3O2CFMcjs.Zn.fromArgList(t),CURRENT_TIME:t=>new (0, _chunk2Z3O2CFMcjs.ch)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)}),APPROX_TOP_K:jE,ARRAY_CONSTRUCT:t=>new (0, _chunk2Z3O2CFMcjs.Mf)({expressions:t}),ARRAY_CONTAINS:t=>new (0, _chunk2Z3O2CFMcjs.mg)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),ensureVariant:!1}),ARRAY_GENERATE_RANGE:t=>new (0, _chunk2Z3O2CFMcjs.bg)({start:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),end:new (0, _chunk2Z3O2CFMcjs.Se)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),expression:_chunk2Z3O2CFMcjs.$c.number(1)}),step:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2)}),ARRAY_SORT:t=>_chunk2Z3O2CFMcjs.kl.fromArgList(t),ARRAY_FLATTEN:t=>_chunk2Z3O2CFMcjs.Gf.fromArgList(t),BITAND:F(_chunk2Z3O2CFMcjs.ue,"BITAND"),BIT_AND:F(_chunk2Z3O2CFMcjs.ue,"BITAND"),BITNOT:t=>new (0, _chunk2Z3O2CFMcjs.Te)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)}),BIT_NOT:t=>new (0, _chunk2Z3O2CFMcjs.Te)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)}),BITXOR:F(_chunk2Z3O2CFMcjs.ye,"BITXOR"),BIT_XOR:F(_chunk2Z3O2CFMcjs.ye,"BITXOR"),BITOR:F(_chunk2Z3O2CFMcjs.we,"BITOR"),BIT_OR:F(_chunk2Z3O2CFMcjs.we,"BITOR"),BITSHIFTLEFT:F(_chunk2Z3O2CFMcjs.ve,"BITSHIFTLEFT"),BIT_SHIFTLEFT:F(_chunk2Z3O2CFMcjs.ve,"BIT_SHIFTLEFT"),BITSHIFTRIGHT:F(_chunk2Z3O2CFMcjs.xe,"BITSHIFTRIGHT"),BIT_SHIFTRIGHT:F(_chunk2Z3O2CFMcjs.xe,"BITSHIFTRIGHT"),BITANDAGG:t=>_chunk2Z3O2CFMcjs.om.fromArgList(t),BITAND_AGG:t=>_chunk2Z3O2CFMcjs.om.fromArgList(t),BIT_AND_AGG:t=>_chunk2Z3O2CFMcjs.om.fromArgList(t),BIT_ANDAGG:t=>_chunk2Z3O2CFMcjs.om.fromArgList(t),BITORAGG:t=>_chunk2Z3O2CFMcjs.pm.fromArgList(t),BITOR_AGG:t=>_chunk2Z3O2CFMcjs.pm.fromArgList(t),BIT_OR_AGG:t=>_chunk2Z3O2CFMcjs.pm.fromArgList(t),BIT_ORAGG:t=>_chunk2Z3O2CFMcjs.pm.fromArgList(t),BITXORAGG:t=>_chunk2Z3O2CFMcjs.qm.fromArgList(t),BITXOR_AGG:t=>_chunk2Z3O2CFMcjs.qm.fromArgList(t),BIT_XOR_AGG:t=>_chunk2Z3O2CFMcjs.qm.fromArgList(t),BIT_XORAGG:t=>_chunk2Z3O2CFMcjs.qm.fromArgList(t),BITMAP_OR_AGG:t=>_chunk2Z3O2CFMcjs.tm.fromArgList(t),BOOLAND:t=>new (0, _chunk2Z3O2CFMcjs.zf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),roundInput:!0}),BOOLOR:t=>new (0, _chunk2Z3O2CFMcjs.Af)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),roundInput:!0}),BOOLNOT:t=>new (0, _chunk2Z3O2CFMcjs.yf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),roundInput:!0}),BOOLXOR:t=>new (0, _chunk2Z3O2CFMcjs.mn)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),roundInput:!0}),CORR:t=>new (0, _chunk2Z3O2CFMcjs.fm)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),nullOnZeroVariance:!0}),DATE:M("DATE","date"),DATEFROMPARTS:qo,DATE_FROM_PARTS:qo,DATE_TRUNC:op,DATEADD:Xt(_chunk2Z3O2CFMcjs.uh),DATEDIFF:qr,DAYNAME:t=>new (0, _chunk2Z3O2CFMcjs.Jh)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),abbreviated:!0}),DAYOFWEEKISO:t=>_chunk2Z3O2CFMcjs.Gh.fromArgList(t),DIV0:tp,DIV0NULL:rp,EDITDISTANCE:t=>new (0, _chunk2Z3O2CFMcjs.Rj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),maxDist:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2)}),FLATTEN:t=>_chunk2Z3O2CFMcjs.yi.fromArgList(t),GENERATOR:hp,GET:t=>_chunk2Z3O2CFMcjs.Oi.fromArgList(t),GETDATE:t=>_chunk2Z3O2CFMcjs.fh.fromArgList(t),GET_PATH:(t,{dialect:s})=>new (0, _chunk2Z3O2CFMcjs.uj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:s.toJsonPath(_chunk2Z3O2CFMcjs.ca.call(void 0, t,1)),requiresJson:!0}),GREATEST_IGNORE_NULLS:t=>new (0, _chunk2Z3O2CFMcjs.Qi)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expressions:t.slice(1),ignoreNulls:!0}),LEAST_IGNORE_NULLS:t=>new (0, _chunk2Z3O2CFMcjs.Kj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expressions:t.slice(1),ignoreNulls:!0}),HEX_DECODE_BINARY:t=>_chunk2Z3O2CFMcjs.Ul.fromArgList(t),IFF:t=>_chunk2Z3O2CFMcjs._i.fromArgList(t),MD5_HEX:t=>_chunk2Z3O2CFMcjs.gk.fromArgList(t),MD5_BINARY:t=>_chunk2Z3O2CFMcjs.hk.fromArgList(t),MD5_NUMBER_LOWER64:t=>_chunk2Z3O2CFMcjs.ik.fromArgList(t),MD5_NUMBER_UPPER64:t=>_chunk2Z3O2CFMcjs.jk.fromArgList(t),MONTHNAME:t=>new (0, _chunk2Z3O2CFMcjs.lk)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),abbreviated:!0}),LAST_DAY:t=>new (0, _chunk2Z3O2CFMcjs.Qh)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),unit:_chunk2Z3O2CFMcjs.wq.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, t,1))}),LEN:t=>new (0, _chunk2Z3O2CFMcjs.Oj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),binary:!0}),LENGTH:t=>new (0, _chunk2Z3O2CFMcjs.Oj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),binary:!0}),LOCALTIMESTAMP:t=>_chunk2Z3O2CFMcjs.fh.fromArgList(t),NULLIFZERO:np,OBJECT_CONSTRUCT:YE,OBJECT_KEYS:t=>_chunk2Z3O2CFMcjs.ij.fromArgList(t),OCTET_LENGTH:t=>_chunk2Z3O2CFMcjs.xf.fromArgList(t),PARSE_URL:t=>new (0, _chunk2Z3O2CFMcjs.Gj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),permissive:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1)}),REGEXP_EXTRACT_ALL:Ye(_chunk2Z3O2CFMcjs.Jk),REGEXP_REPLACE:ap,REGEXP_SUBSTR:Ye(_chunk2Z3O2CFMcjs.Ik),REGEXP_SUBSTR_ALL:Ye(_chunk2Z3O2CFMcjs.Jk),REPLACE:_chunk2Z3O2CFMcjs.Sq,RLIKE:t=>_chunk2Z3O2CFMcjs.Lk.fromArgList(t),ROUND:xp,SHA1_BINARY:t=>_chunk2Z3O2CFMcjs.hl.fromArgList(t),SHA1_HEX:t=>_chunk2Z3O2CFMcjs.fl.fromArgList(t),SHA2_BINARY:t=>_chunk2Z3O2CFMcjs.il.fromArgList(t),SHA2_HEX:t=>_chunk2Z3O2CFMcjs.gl.fromArgList(t),SQUARE:t=>new (0, _chunk2Z3O2CFMcjs.zk)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.$c.number(2)}),STDDEV_SAMP:t=>_chunk2Z3O2CFMcjs.Pn.fromArgList(t),STRTOK:zE,SYSDATE:t=>new (0, _chunk2Z3O2CFMcjs.fh)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),sysdate:!0}),TABLE:t=>new (0, _chunk2Z3O2CFMcjs.oe)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)}),TIME_ADD:Xt(_chunk2Z3O2CFMcjs.di),TIMEADD:Xt(_chunk2Z3O2CFMcjs.di),TIMEDIFF:qr,TIME_FROM_PARTS:t=>new (0, _chunk2Z3O2CFMcjs.ii)({hour:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),min:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),sec:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),nano:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3),overflow:!0}),TIMEFROMPARTS:t=>new (0, _chunk2Z3O2CFMcjs.ii)({hour:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),min:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),sec:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),nano:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3),overflow:!0}),TIMESTAMPADD:Xt(_chunk2Z3O2CFMcjs.uh),TIMESTAMPDIFF:qr,TIMESTAMPFROMPARTS:Yr,TIMESTAMP_FROM_PARTS:Yr,TIMESTAMPNTZFROMPARTS:Yr,TIMESTAMP_NTZ_FROM_PARTS:Yr,TRUNC:(t,{dialect:s})=>_chunk2Z3O2CFMcjs.kq.call(void 0, t,{dialect:s,dateTruncRequiresPart:!1}),TRUNCATE:(t,{dialect:s})=>_chunk2Z3O2CFMcjs.kq.call(void 0, t,{dialect:s,dateTruncRequiresPart:!1}),TRY_DECRYPT:t=>new (0, _chunk2Z3O2CFMcjs.pi)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),passphrase:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),aad:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),encryptionMethod:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3),safe:!0}),TRY_DECRYPT_RAW:t=>new (0, _chunk2Z3O2CFMcjs.qi)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),key:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),iv:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),aad:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3),encryptionMethod:_chunk2Z3O2CFMcjs.ca.call(void 0, t,4),aead:_chunk2Z3O2CFMcjs.ca.call(void 0, t,5),safe:!0}),TRY_PARSE_JSON:t=>new (0, _chunk2Z3O2CFMcjs.Fj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),safe:!0}),TRY_TO_BINARY:t=>new (0, _chunk2Z3O2CFMcjs.Ei)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),format:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),safe:!0}),TRY_TO_BOOLEAN:t=>new (0, _chunk2Z3O2CFMcjs.Of)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),safe:!0}),TRY_TO_DATE:M("TRY_TO_DATE","date",{safe:!0}),TRY_TO_DECIMAL:qe,TRY_TO_NUMBER:qe,TRY_TO_NUMERIC:qe,TRY_TO_DOUBLE:t=>new (0, _chunk2Z3O2CFMcjs.Tf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),format:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),safe:!0}),TRY_TO_FILE:t=>new (0, _chunk2Z3O2CFMcjs.Wf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),path:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),safe:!0}),TRY_TO_TIME:M("TRY_TO_TIME","time",{safe:!0}),TRY_TO_TIMESTAMP:M("TRY_TO_TIMESTAMP","timestamp",{safe:!0}),TRY_TO_TIMESTAMP_LTZ:M("TRY_TO_TIMESTAMP_LTZ","timestampltz",{safe:!0}),TRY_TO_TIMESTAMP_NTZ:M("TRY_TO_TIMESTAMP_NTZ","timestampntz",{safe:!0}),TRY_TO_TIMESTAMP_TZ:M("TRY_TO_TIMESTAMP_TZ","timestamptz",{safe:!0}),TO_CHAR:_chunk2Z3O2CFMcjs.Rq,TO_DATE:M("TO_DATE","date"),TO_DECIMAL:t=>new (0, _chunk2Z3O2CFMcjs.Sf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),format:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),precision:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),scale:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3)}),TO_NUMBER:t=>new (0, _chunk2Z3O2CFMcjs.Sf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),format:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),precision:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),scale:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3)}),TO_NUMERIC:t=>new (0, _chunk2Z3O2CFMcjs.Sf)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),format:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),precision:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),scale:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3)}),TO_TIME:M("TO_TIME","time"),TO_TIMESTAMP:M("TO_TIMESTAMP","timestamp"),TO_TIMESTAMP_LTZ:M("TO_TIMESTAMP_LTZ","timestampltz"),TO_TIMESTAMP_NTZ:M("TO_TIMESTAMP_NTZ","timestampntz"),TO_TIMESTAMP_TZ:M("TO_TIMESTAMP_TZ","timestamptz"),TO_VARCHAR:_chunk2Z3O2CFMcjs.Rq,TO_JSON:t=>_chunk2Z3O2CFMcjs.zj.fromArgList(t),VECTOR_COSINE_SIMILARITY:t=>_chunk2Z3O2CFMcjs.of.fromArgList(t),VECTOR_INNER_PRODUCT:t=>_chunk2Z3O2CFMcjs.pf.fromArgList(t),VECTOR_L1_DISTANCE:t=>_chunk2Z3O2CFMcjs.rf.fromArgList(t),VECTOR_L2_DISTANCE:t=>_chunk2Z3O2CFMcjs.qf.fromArgList(t),ZEROIFNULL:ep,LIKE:_chunk2Z3O2CFMcjs.Kq.call(void 0, _chunk2Z3O2CFMcjs.Me),ILIKE:_chunk2Z3O2CFMcjs.Kq.call(void 0, _chunk2Z3O2CFMcjs.Ie),SEARCH:sp,SKEW:t=>_chunk2Z3O2CFMcjs.Un.fromArgList(t),SYSTIMESTAMP:t=>_chunk2Z3O2CFMcjs.fh.fromArgList(t),WEEKISO:t=>_chunk2Z3O2CFMcjs.Lh.fromArgList(t),WEEKOFYEAR:t=>_chunk2Z3O2CFMcjs.hm.fromArgList(t)};return delete r.PREDICT,r})()}static get FUNCTION_PARSERS(){return(()=>{let r={..._chunk2Z3O2CFMcjs.za.FUNCTION_PARSERS,DATE_PART:function(){return this.parseDatePart()},DIRECTORY:function(){return this.parseDirectory()},OBJECT_CONSTRUCT_KEEP_NULL:function(){return this.parseJsonObject()},LISTAGG:function(){return this.parseStringAgg()},SEMANTIC_VIEW:function(){return this.parseSemanticView()}};return delete r.TRIM,r})()}static get TIMESTAMPS(){return new Set(Array.from(_chunk2Z3O2CFMcjs.za.TIMESTAMPS).filter(r=>r!=="time"))}static get ALTER_PARSERS(){return{..._chunk2Z3O2CFMcjs.za.ALTER_PARSERS,SESSION:function(){return this.parseAlterSession()},UNSET:function(){return this.expression(_chunk2Z3O2CFMcjs.Qa,{tag:this.matchTextSeq("TAG"),expressions:this.parseCsv(()=>this.parseIdVar()),unset:!0})}}}static get STATEMENT_PARSERS(){return{..._chunk2Z3O2CFMcjs.za.STATEMENT_PARSERS,get:function(){return this.parseGet()},put:function(){return this.parsePut()},show:function(){return this.parseShow()}}}static get PROPERTY_PARSERS(){return{..._chunk2Z3O2CFMcjs.za.PROPERTY_PARSERS,CREDENTIALS:function(){return this.parseCredentialsProperty()},FILE_FORMAT:function(){return this.parseFileFormatProperty()},LOCATION:function(){return this.parseLocationProperty()},TAG:function(){return this.parseTag()},USING:function(){return(this.matchTextSeq("TEMPLATE")||void 0)&&this.expression(_chunk2Z3O2CFMcjs.Nd,{this:this.parseStatement()})}}}static get TYPE_CONVERTERS(){return{decimal:_chunk2Z3O2CFMcjs.Gq.call(void 0, 38,0)}}static get SHOW_PARSERS(){return{DATABASES:g("DATABASES"),"TERSE DATABASES":g("DATABASES"),SCHEMAS:g("SCHEMAS"),"TERSE SCHEMAS":g("SCHEMAS"),OBJECTS:g("OBJECTS"),"TERSE OBJECTS":g("OBJECTS"),TABLES:g("TABLES"),"TERSE TABLES":g("TABLES"),VIEWS:g("VIEWS"),"TERSE VIEWS":g("VIEWS"),"PRIMARY KEYS":g("PRIMARY KEYS"),"TERSE PRIMARY KEYS":g("PRIMARY KEYS"),"IMPORTED KEYS":g("IMPORTED KEYS"),"TERSE IMPORTED KEYS":g("IMPORTED KEYS"),"UNIQUE KEYS":g("UNIQUE KEYS"),"TERSE UNIQUE KEYS":g("UNIQUE KEYS"),SEQUENCES:g("SEQUENCES"),"TERSE SEQUENCES":g("SEQUENCES"),STAGES:g("STAGES"),COLUMNS:g("COLUMNS"),USERS:g("USERS"),"TERSE USERS":g("USERS"),"FILE FORMATS":g("FILE FORMATS"),FUNCTIONS:g("FUNCTIONS"),PROCEDURES:g("PROCEDURES"),WAREHOUSES:g("WAREHOUSES")}}static get CONSTRAINT_PARSERS(){return{..._chunk2Z3O2CFMcjs.za.CONSTRAINT_PARSERS,WITH:function(){return this.parseWithConstraint()},MASKING:function(){return this.parseWithConstraint()},PROJECTION:function(){return this.parseWithConstraint()},TAG:function(){return this.parseWithConstraint()}}}static get STAGED_FILE_SINGLE_TOKENS(){return new Set(["dot","mod","slash"])}static get FLATTEN_COLUMNS(){return["SEQ","KEY","PATH","INDEX","VALUE","THIS"]}static get SCHEMA_KINDS(){return new Set(["OBJECTS","TABLES","VIEWS","SEQUENCES","UNIQUE KEYS","IMPORTED KEYS"])}static get NON_TABLE_CREATABLES(){return new Set(["STORAGE INTEGRATION","TAG","WAREHOUSE","STREAMLIT"])}static get LAMBDAS(){return{..._chunk2Z3O2CFMcjs.za.LAMBDAS,arrow:function(r){return this.expression(_chunk2Z3O2CFMcjs.zb,{this:this.replaceLambda(this.parseAssignment(),r),expressions:r.map(t=>t instanceof _chunk2Z3O2CFMcjs.Cg?t.args.this:t)})}}}static get COLUMN_OPERATORS(){return{..._chunk2Z3O2CFMcjs.za.COLUMN_OPERATORS,exclamation:function(r,t){return this.expression(_chunk2Z3O2CFMcjs.zc,{this:r,expression:t})}}}parseDirectory(){let r=this.parseTableParts();return r instanceof _chunk2Z3O2CFMcjs.Tb&&(r=r.args.this),this.expression(_chunk2Z3O2CFMcjs.kb,{this:r})}parseUse(){if(this.matchTextSeq(["SECONDARY","ROLES"])){let r=this.matchTexts(["ALL","NONE"])&&new (0, _chunk2Z3O2CFMcjs.Ub)({this:_optionalChain([this, 'access', _75 => _75.prev, 'optionalAccess', _76 => _76.text, 'access', _77 => _77.toUpperCase, 'call', _78 => _78()])}),t=r?void 0:this.parseCsv(()=>this.parseTable({schema:!1}));return this.expression(_chunk2Z3O2CFMcjs.Cc,{kind:"SECONDARY ROLES",this:r||void 0,expressions:t})}return super.parseUse()}negateRange(r){if(!r)return r;let t=r.getArgKey("query");return r instanceof _chunk2Z3O2CFMcjs.Ye&&t instanceof _chunk2Z3O2CFMcjs.Fa?this.expression(_chunk2Z3O2CFMcjs.Re,{this:r.args.this,expression:new (0, _chunk2Z3O2CFMcjs.mm)({this:t.unnest()})}):this.expression(_chunk2Z3O2CFMcjs.Ue,{this:r})}parseTag(){return this.expression(_chunk2Z3O2CFMcjs.Ld,{expressions:this.parseWrappedCsv(()=>this.parseProperty())})}parseWithConstraint(){if(_optionalChain([this, 'access', _79 => _79.prev, 'optionalAccess', _80 => _80.tokenType])!=="with"&&this.retreat(this.index-1),this.matchTextSeq(["MASKING","POLICY"])){let r=this.parseColumn();return this.expression(_chunk2Z3O2CFMcjs.Tc,{this:r instanceof _chunk2Z3O2CFMcjs.Ic?r.toDot():r,expressions:this.match("using")&&this.parseWrappedCsv(()=>this.parseIdVar())})}if(this.matchTextSeq(["PROJECTION","POLICY"])){let r=this.parseColumn();return this.expression(_chunk2Z3O2CFMcjs.Xc,{this:r instanceof _chunk2Z3O2CFMcjs.Ic?r.toDot():r})}if(this.match("tag"))return this.parseTag()}parseWithProperty(){return this.match("tag")?this.parseTag():super.parseWithProperty()}parseCreate(){let r=super.parseCreate();if(r instanceof _chunk2Z3O2CFMcjs.Ja&&this.constructor.NON_TABLE_CREATABLES.has(_nullishCoalesce(r.args.kind, () => ("")))){let t=r.args.this;t instanceof _chunk2Z3O2CFMcjs.Tb&&t.replace(t.args.this)}return r}parseDatePart(){let r=this.parseVar()||this.parseType();if(!r)return;let t=this.matchSet(["from","comma"])&&this.parseBitwise();return this.expression(_chunk2Z3O2CFMcjs.Wh,{this:_chunk2Z3O2CFMcjs.wq.call(void 0, r,{dialect:this.dialect}),expression:t||void 0})}parseBracketKeyValue(r={}){let{isMap:t=!1}=r;return t?this.parseSlice(this.parseString())||this.parseAssignment():this.parseSlice(this.parseAlias(this.parseAssignment(),{explicit:!0}))}parseLateral(){let r=super.parseLateral();if(!r)return r;if(r.args.this instanceof _chunk2Z3O2CFMcjs.yi){let t=r.args.alias,s=this.constructor.FLATTEN_COLUMNS.map(a=>_chunk2Z3O2CFMcjs.eo.call(void 0, a));t&&!t.getArgKey("columns")?t.setArgKey("columns",s):t||_chunk2Z3O2CFMcjs.ho.call(void 0, r,"_flattened",{table:s,copy:!1})}return r}parseTableParts(r={}){let{schema:t=!1,isDbReference:s=!1}=r,a;if(this.match("string",{advance:!1})?a=this.parseString():this.matchTextSeq("@",{advance:!1})&&(a=this.parseLocationPath()),a){let o,x,u=this.match("lParen");for(;this.curr&&u&&!this.match("rParen");){if(this.matchTextSeq(["FILE_FORMAT","=>"]))o=this.parseString()||super.parseTableParts({isDbReference:s});else if(this.matchTextSeq(["PATTERN","=>"]))x=this.parseString();else break;this.match("comma")}return this.expression(_chunk2Z3O2CFMcjs.Tb,{this:a,format:o,pattern:x})}return super.parseTableParts({schema:t,isDbReference:s})}parseTable(r={}){let t=super.parseTable(r);if(t instanceof _chunk2Z3O2CFMcjs.Tb&&t.args.this instanceof _chunk2Z3O2CFMcjs.oe){let s=t.args.this;for(let a of _chunk2Z3O2CFMcjs.oe.availableArgs)a!=="this"&&s.setArgKey(a,t.getArgKey(a));t=s}return t}parseIdVar(r={}){let{anyToken:t=!0,tokens:s}=r;if(this.matchTextSeq(["IDENTIFIER","("])){let a=super.parseIdVar({anyToken:t,tokens:s})||this.parseString();return this.matchRParen(),this.expression(_chunk2Z3O2CFMcjs.Kf,{this:"IDENTIFIER",expressions:[a]})}return super.parseIdVar({anyToken:t,tokens:s})}parseShowSnowflake(r){let t,s,a=this.tokens[this.index-2].text.toUpperCase()==="TERSE",o=this.matchTextSeq("HISTORY"),x=this.match("like")?this.parseString():void 0;return this.match("in")&&(this.matchTextSeq("ACCOUNT")?s="ACCOUNT":this.matchTextSeq("CLASS")?(s="CLASS",t=this.parseTableParts()):this.matchTextSeq("APPLICATION")?(s="APPLICATION",this.matchTextSeq("PACKAGE")&&(s+=" PACKAGE"),t=this.parseTableParts()):this.matchSet(this.constructor.DB_CREATABLES)?(s=_optionalChain([this, 'access', _81 => _81.prev, 'optionalAccess', _82 => _82.text, 'access', _83 => _83.toUpperCase, 'call', _84 => _84()]),this.curr&&(t=this.parseTableParts())):this.curr&&(s=this.constructor.SCHEMA_KINDS.has(r)?"SCHEMA":"TABLE",t=this.parseTableParts())),this.expression(_chunk2Z3O2CFMcjs.Ta,{terse:a,this:r,history:o,like:x,scope:t,scopeKind:s,startsWith:this.matchTextSeq(["STARTS","WITH"])?this.parseString():void 0,limit:this.parseLimit(),from:this.match("from")?this.parseString():void 0,privileges:this.matchTextSeq(["WITH","PRIVILEGES"])?this.parseCsv(()=>this.parseVar({anyToken:!0,upper:!0})):void 0})}parsePut(){return _optionalChain([this, 'access', _85 => _85.curr, 'optionalAccess', _86 => _86.tokenType])!=="string"?this.parseAsCommand(this.prev):this.expression(_chunk2Z3O2CFMcjs.Rb,{this:this.parseString(),target:this.parseLocationPath(),properties:this.parseProperties()})}parseGet(){let r=this.prev;if(this.match("lParen"))return this.retreat(this.index-2),this.parseExpression();let t=this.parseLocationPath();return _optionalChain([this, 'access', _87 => _87.curr, 'optionalAccess', _88 => _88.tokenType])==="uriStart"?this.parseAsCommand(r):this.expression(_chunk2Z3O2CFMcjs.Sb,{this:this.parseString(),target:t,properties:this.parseProperties()})}parseLocationProperty(){return this.match("eq"),this.expression(_chunk2Z3O2CFMcjs.pd,{this:this.parseLocationPath()})}parseFileLocation(){return this.match("lParen",{advance:!1})?this.parseSelect({table:!0,parseSubqueryAlias:!1}):this.parseTableParts()}parseLocationPath(){let r=this.curr;for(this.advanceAny({ignoreReserved:!0});this.isConnected()&&!this.matchSet(["comma","lParen","rParen"],{advance:!1});)this.advanceAny({ignoreReserved:!0});return new (0, _chunk2Z3O2CFMcjs.Ub)({this:this.findSql(r,this.prev)})}parseLambdaArg(){let r=super.parseLambdaArg();if(!r)return r;let t=this.parseTypes();return t?this.expression(_chunk2Z3O2CFMcjs.Cg,{this:r,to:t}):r}parseForeignKey(){return this.match("references",{advance:!1})?this.expression(_chunk2Z3O2CFMcjs.lb):super.parseForeignKey()}parseFileFormatProperty(){this.match("eq");let r;return this.match("lParen",{advance:!1})?r=this.parseWrappedOptions():r=[this.parseFormatName()],this.expression(_chunk2Z3O2CFMcjs.kd,{expressions:r})}parseCredentialsProperty(){return this.expression(_chunk2Z3O2CFMcjs.ld,{expressions:this.parseWrappedOptions()})}parseSemanticView(){let r={this:this.parseTableParts()};for(;this.curr&&!this.match("rParen",{advance:!1});)if(this.matchTexts(["DIMENSIONS","METRICS","FACTS"])){let t=_nullishCoalesce(_optionalChain([this, 'access', _89 => _89.prev, 'optionalAccess', _90 => _90.text, 'access', _91 => _91.toLowerCase, 'call', _92 => _92()]), () => (""));r[t]=this.parseCsv(()=>this.parseDisjunction())}else if(this.matchTextSeq("WHERE"))r.where=this.parseExpression();else{this.raiseError("Expecting ) or encountered unexpected keyword");break}return this.expression(_chunk2Z3O2CFMcjs.Mb,r)}parseSet(r={}){let{unset:t=!1,tag:s=!1}=r,a=super.parseSet({unset:t,tag:s});if(a instanceof _chunk2Z3O2CFMcjs.Qa)for(let o of a.args.expressions||[])o instanceof _chunk2Z3O2CFMcjs.Ra&&o.setArgKey("kind","VARIABLE");return a}parseWindow(r,t={}){if(r instanceof _chunk2Z3O2CFMcjs.$m&&this.matchTextSeq("FROM")&&this.matchTexts(["FIRST","LAST"])){let s=_optionalChain([this, 'access', _93 => _93.prev, 'optionalAccess', _94 => _94.text, 'access', _95 => _95.toUpperCase, 'call', _96 => _96()])==="FIRST";r.setArgKey("fromFirst",s)}return super.parseWindow(r,t)}};m=_chunk2Z3O2CFMcjs.a.call(void 0, RE),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"ID_VAR_TOKENS",lE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"TABLE_ALIAS_TOKENS",SE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"COLON_PLACEHOLDER_TOKENS",fE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"NO_PAREN_FUNCTIONS",hE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"FUNCTIONS",xE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"FUNCTION_PARSERS",AE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"TIMESTAMPS",uE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"ALTER_PARSERS",cE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"STATEMENT_PARSERS",TE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"PROPERTY_PARSERS",pE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"TYPE_CONVERTERS",EE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"SHOW_PARSERS",oE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"CONSTRAINT_PARSERS",aE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"STAGED_FILE_SINGLE_TOKENS",iE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"FLATTEN_COLUMNS",nE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"SCHEMA_KINDS",sE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"NON_TABLE_CREATABLES",eE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"LAMBDAS",rE,l),_chunk2Z3O2CFMcjs.d.call(void 0, m,10,"COLUMN_OPERATORS",tE,l),_chunk2Z3O2CFMcjs.b.call(void 0, m,l),_chunk2Z3O2CFMcjs.c.call(void 0, m,3,l),l.IDENTIFY_PIVOT_STRINGS=!0,l.DEFAULT_SAMPLING_METHOD="BERNOULLI",l.COLON_IS_VARIANT_EXTRACT=!0,l.JSON_EXTRACT_REQUIRES_JSON_EXPRESSION=!0;var Hr=l,gE,IE,dE,mE,OE,_E,NE,PE,ME,CE,y,c=class extends(CE=_chunk2Z3O2CFMcjs.lp,ME=[_chunk2Z3O2CFMcjs.r],PE=[_chunk2Z3O2CFMcjs.r],NE=[_chunk2Z3O2CFMcjs.r],_E=[_chunk2Z3O2CFMcjs.r],OE=[_chunk2Z3O2CFMcjs.r],mE=[_chunk2Z3O2CFMcjs.r],dE=[_chunk2Z3O2CFMcjs.r],IE=[_chunk2Z3O2CFMcjs.r],gE=[_chunk2Z3O2CFMcjs.r],CE){static get AFTER_HAVING_MODIFIER_TRANSFORMS(){let r=new Map(super.AFTER_HAVING_MODIFIER_TRANSFORMS);return["cluster","distribute","sort"].forEach(t=>r.delete(t)),r}static get STRUCT_DELIMITER(){return["(",")"]}static get ORIGINAL_TRANSFORMS(){return new Map([..._chunk2Z3O2CFMcjs.lp.TRANSFORMS,[_chunk2Z3O2CFMcjs.Lm,_chunk2Z3O2CFMcjs.pp.call(void 0, "APPROX_COUNT_DISTINCT")],[_chunk2Z3O2CFMcjs.vm,_chunk2Z3O2CFMcjs.pp.call(void 0, "MAX_BY")],[_chunk2Z3O2CFMcjs.wm,_chunk2Z3O2CFMcjs.pp.call(void 0, "MIN_BY")],[_chunk2Z3O2CFMcjs.Mf,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.jp])],[_chunk2Z3O2CFMcjs.hg,_chunk2Z3O2CFMcjs.Hp.call(void 0, "ARRAY_CAT")],[_chunk2Z3O2CFMcjs.fg,_chunk2Z3O2CFMcjs.Gp.call(void 0, "ARRAY_APPEND")],[_chunk2Z3O2CFMcjs.gg,_chunk2Z3O2CFMcjs.Gp.call(void 0, "ARRAY_PREPEND")],[_chunk2Z3O2CFMcjs.mg,function(t){return this.func("ARRAY_CONTAINS",[t.args.ensureVariant===!1?t.args.expression:new (0, _chunk2Z3O2CFMcjs.Cg)({this:t.args.expression,to:_chunk2Z3O2CFMcjs.ac.build("variant")}),t.args.this])}],[_chunk2Z3O2CFMcjs.rg,_chunk2Z3O2CFMcjs.pp.call(void 0, "ARRAY_INTERSECTION")],[_chunk2Z3O2CFMcjs.kc,function(t){return this.func("CONVERT_TIMEZONE",[t.args.zone,t.args.this])}],[_chunk2Z3O2CFMcjs.we,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITOR")],[_chunk2Z3O2CFMcjs.ye,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITXOR")],[_chunk2Z3O2CFMcjs.ue,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITAND")],[_chunk2Z3O2CFMcjs.om,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITANDAGG")],[_chunk2Z3O2CFMcjs.pm,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITORAGG")],[_chunk2Z3O2CFMcjs.qm,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITXORAGG")],[_chunk2Z3O2CFMcjs.Te,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITNOT")],[_chunk2Z3O2CFMcjs.ve,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITSHIFTLEFT")],[_chunk2Z3O2CFMcjs.xe,_chunk2Z3O2CFMcjs.pp.call(void 0, "BITSHIFTRIGHT")],[_chunk2Z3O2CFMcjs.Ja,_chunk2Z3O2CFMcjs.Po.call(void 0, [pp])],[_chunk2Z3O2CFMcjs.fh,function(t){return t.args.sysdate?this.func("SYSDATE",[]):this.functionFallbackSql(t)}],[_chunk2Z3O2CFMcjs.ch,function(t){return t.args.this?this.func("CURRENT_TIME",[t.args.this]):"CURRENT_TIME"}],[_chunk2Z3O2CFMcjs.dh,function(t){return t.args.this?this.func("CURRENT_TIMESTAMP",[t.args.this]):"CURRENT_TIMESTAMP"}],[_chunk2Z3O2CFMcjs.uh,_chunk2Z3O2CFMcjs.sq.call(void 0, "DATEADD")],[_chunk2Z3O2CFMcjs.xh,_chunk2Z3O2CFMcjs.sq.call(void 0, "DATEDIFF")],[_chunk2Z3O2CFMcjs.Ah,_chunk2Z3O2CFMcjs.sq.call(void 0, "TIMESTAMPADD")],[_chunk2Z3O2CFMcjs.Ch,_chunk2Z3O2CFMcjs.Nq],[_chunk2Z3O2CFMcjs.ji,_chunk2Z3O2CFMcjs.Xp],[_chunk2Z3O2CFMcjs.pi,function(t){return this.func(`${t.args.safe?"TRY_":""}DECRYPT`,[t.args.this,t.args.passphrase,t.args.aad,t.args.encryptionMethod])}],[_chunk2Z3O2CFMcjs.qi,function(t){return this.func(`${t.args.safe?"TRY_":""}DECRYPT_RAW`,[t.args.this,t.args.key,t.args.iv,t.args.aad,t.args.encryptionMethod,t.args.aead])}],[_chunk2Z3O2CFMcjs.Hh,_chunk2Z3O2CFMcjs.pp.call(void 0, "DAYOFMONTH")],[_chunk2Z3O2CFMcjs.Fh,_chunk2Z3O2CFMcjs.pp.call(void 0, "DAYOFWEEK")],[_chunk2Z3O2CFMcjs.Gh,_chunk2Z3O2CFMcjs.pp.call(void 0, "DAYOFWEEKISO")],[_chunk2Z3O2CFMcjs.Ih,_chunk2Z3O2CFMcjs.pp.call(void 0, "DAYOFYEAR")],[_chunk2Z3O2CFMcjs.pf,_chunk2Z3O2CFMcjs.pp.call(void 0, "VECTOR_INNER_PRODUCT")],[_chunk2Z3O2CFMcjs.yi,_chunk2Z3O2CFMcjs.pp.call(void 0, "FLATTEN")],[_chunk2Z3O2CFMcjs.Wh,function(t){return this.func("DATE_PART",[_chunk2Z3O2CFMcjs.wq.call(void 0, t.args.this,{dialect:this.dialect}),t.args.expression])}],[_chunk2Z3O2CFMcjs.of,_chunk2Z3O2CFMcjs.pp.call(void 0, "VECTOR_COSINE_SIMILARITY")],[_chunk2Z3O2CFMcjs.qf,_chunk2Z3O2CFMcjs.pp.call(void 0, "VECTOR_L2_DISTANCE")],[_chunk2Z3O2CFMcjs.kd,function(t){return`FILE_FORMAT=(${this.expressions(t,{key:"expressions",sep:" "})})`}],[_chunk2Z3O2CFMcjs.lc,function(t){return this.func("CONVERT_TIMEZONE",[t.args.zone,_chunk2Z3O2CFMcjs.$c.string("UTC"),t.args.this])}],[_chunk2Z3O2CFMcjs.bg,function(t){return this.func("ARRAY_GENERATE_RANGE",[t.args.start,_optionalChain([t, 'access', _97 => _97.args, 'access', _98 => _98.end, 'optionalAccess', _99 => _99.add, 'call', _100 => _100(1)]),t.args.step])}],[_chunk2Z3O2CFMcjs.Oi,_chunk2Z3O2CFMcjs.pp.call(void 0, "GET")],[_chunk2Z3O2CFMcjs.in,function(t){return _chunk2Z3O2CFMcjs.Qq.call(this,t,{sep:""})}],[_chunk2Z3O2CFMcjs._i,_chunk2Z3O2CFMcjs.rp.call(void 0, "IFF","NULL")],[_chunk2Z3O2CFMcjs.vj,Ko],[_chunk2Z3O2CFMcjs.wj,function(t){return this.func("JSON_EXTRACT_PATH_TEXT",[t.args.this,t.args.expression])}],[_chunk2Z3O2CFMcjs.ij,_chunk2Z3O2CFMcjs.pp.call(void 0, "OBJECT_KEYS")],[_chunk2Z3O2CFMcjs.kj,function(t){return this.func("OBJECT_CONSTRUCT_KEEP_NULL",t.args.expressions||[])}],[_chunk2Z3O2CFMcjs.je,()=>""],[_chunk2Z3O2CFMcjs.pj,Ko],[_chunk2Z3O2CFMcjs.Rj,function(t){return _chunk2Z3O2CFMcjs.kp.call(this,t,"insCost","delCost","subCost"),_chunk2Z3O2CFMcjs.pp.call(void 0, "EDITDISTANCE").call(this,t)}],[_chunk2Z3O2CFMcjs.pd,function(t){return`LOCATION=${this.sql(t,"this")}`}],[_chunk2Z3O2CFMcjs.rn,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOLAND_AGG")],[_chunk2Z3O2CFMcjs.qn,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOLOR_AGG")],[_chunk2Z3O2CFMcjs.Vj,function(t){return _chunk2Z3O2CFMcjs.Ip.call(this,t,"OBJECT_CONSTRUCT")}],[_chunk2Z3O2CFMcjs.rf,_chunk2Z3O2CFMcjs.pp.call(void 0, "VECTOR_L1_DISTANCE")],[_chunk2Z3O2CFMcjs.Ph,_chunk2Z3O2CFMcjs.Oq],[_chunk2Z3O2CFMcjs.sn,_chunk2Z3O2CFMcjs.$p],[_chunk2Z3O2CFMcjs.vn,_chunk2Z3O2CFMcjs._p],[_chunk2Z3O2CFMcjs.Fj,function(t){return this.func(`${t.args.safe?"TRY_":""}PARSE_JSON`,[t.args.this])}],[_chunk2Z3O2CFMcjs.Ei,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_BINARY`,[t.args.this,t.args.format])}],[_chunk2Z3O2CFMcjs.Of,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_BOOLEAN`,[t.args.this])}],[_chunk2Z3O2CFMcjs.Tf,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_DOUBLE`,[t.args.this,t.args.format])}],[_chunk2Z3O2CFMcjs.Wf,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_FILE`,[t.args.this,t.args.path])}],[_chunk2Z3O2CFMcjs.Sf,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_NUMBER`,[t.args.this,t.args.format,t.args.precision,t.args.scale])}],[_chunk2Z3O2CFMcjs.zj,_chunk2Z3O2CFMcjs.pp.call(void 0, "TO_JSON")],[_chunk2Z3O2CFMcjs.ud,function(t){return`PARTITION BY ${this.sql(t,"this")}`}],[_chunk2Z3O2CFMcjs.xn,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.Zo])],[_chunk2Z3O2CFMcjs.yn,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.Zo])],[_chunk2Z3O2CFMcjs.Yb,_chunk2Z3O2CFMcjs.Po.call(void 0, [Ep])],[_chunk2Z3O2CFMcjs.Ik,Ho],[_chunk2Z3O2CFMcjs.Jk,Ho],[_chunk2Z3O2CFMcjs.Mk,ip],[_chunk2Z3O2CFMcjs.Ck,_chunk2Z3O2CFMcjs.pp.call(void 0, "RANDOM")],[_chunk2Z3O2CFMcjs.Wd,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.ip,_chunk2Z3O2CFMcjs.So,_chunk2Z3O2CFMcjs.Yo.call(void 0, ),_chunk2Z3O2CFMcjs.bp,cp,up,Ap])],[_chunk2Z3O2CFMcjs.fl,_chunk2Z3O2CFMcjs.pp.call(void 0, "SHA1")],[_chunk2Z3O2CFMcjs.hl,_chunk2Z3O2CFMcjs.pp.call(void 0, "SHA1_BINARY")],[_chunk2Z3O2CFMcjs.hk,_chunk2Z3O2CFMcjs.pp.call(void 0, "MD5_BINARY")],[_chunk2Z3O2CFMcjs.ik,_chunk2Z3O2CFMcjs.pp.call(void 0, "MD5_NUMBER_LOWER64")],[_chunk2Z3O2CFMcjs.jk,_chunk2Z3O2CFMcjs.pp.call(void 0, "MD5_NUMBER_UPPER64")],[_chunk2Z3O2CFMcjs.jn,_chunk2Z3O2CFMcjs.pp.call(void 0, "TO_CHAR")],[_chunk2Z3O2CFMcjs.kl,_chunk2Z3O2CFMcjs.pp.call(void 0, "ARRAY_SORT")],[_chunk2Z3O2CFMcjs.Un,_chunk2Z3O2CFMcjs.pp.call(void 0, "SKEW")],[_chunk2Z3O2CFMcjs.dk,_chunk2Z3O2CFMcjs.pp.call(void 0, "OBJECT_CONSTRUCT")],[_chunk2Z3O2CFMcjs.rl,_chunk2Z3O2CFMcjs.pp.call(void 0, "STARTSWITH")],[_chunk2Z3O2CFMcjs.sl,_chunk2Z3O2CFMcjs.pp.call(void 0, "ENDSWITH")],[_chunk2Z3O2CFMcjs.tl,function(t){return _chunk2Z3O2CFMcjs.Ep.call(this,t,{funcName:"CHARINDEX",supportsPosition:!0})}],[_chunk2Z3O2CFMcjs.wl,function(t){return this.func("DATE",[t.args.this,this.formatTime(t)])}],[_chunk2Z3O2CFMcjs.vg,_chunk2Z3O2CFMcjs.pp.call(void 0, "STRTOK_TO_ARRAY")],[_chunk2Z3O2CFMcjs.El,_chunk2Z3O2CFMcjs.pp.call(void 0, "INSERT")],[_chunk2Z3O2CFMcjs.sg,_chunk2Z3O2CFMcjs.pp.call(void 0, "ST_MAKEPOINT")],[_chunk2Z3O2CFMcjs.di,_chunk2Z3O2CFMcjs.sq.call(void 0, "TIMEADD")],[_chunk2Z3O2CFMcjs.ci,function(t){return this.func("TIME_SLICE",[t.args.this,t.args.expression,_chunk2Z3O2CFMcjs.uq.call(void 0, t),t.args.kind])}],[_chunk2Z3O2CFMcjs.Zh,_chunk2Z3O2CFMcjs.Rp],[_chunk2Z3O2CFMcjs._h,_chunk2Z3O2CFMcjs.sq.call(void 0, "TIMESTAMPADD")],[_chunk2Z3O2CFMcjs.ai,function(t){return this.func("TIMESTAMPDIFF",[t.args.unit,t.args.expression,t.args.this])}],[_chunk2Z3O2CFMcjs.bi,_chunk2Z3O2CFMcjs.Qp.call(void 0, )],[_chunk2Z3O2CFMcjs.Kl,_chunk2Z3O2CFMcjs.Wp],[_chunk2Z3O2CFMcjs.Il,function(t){return`EXTRACT(epoch_second FROM ${this.sql(t,"this")})`}],[_chunk2Z3O2CFMcjs.Nf,_chunk2Z3O2CFMcjs.pp.call(void 0, "TO_ARRAY")],[_chunk2Z3O2CFMcjs.Qf,function(t){return this.functionFallbackSql(t)}],[_chunk2Z3O2CFMcjs.Nl,_chunk2Z3O2CFMcjs.sq.call(void 0, "DATEADD",{cast:!0})],[_chunk2Z3O2CFMcjs.Ol,_chunk2Z3O2CFMcjs.sq.call(void 0, "DATEDIFF")],[_chunk2Z3O2CFMcjs.Pl,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_DATE`,[t.args.this,this.formatTime(t)])}],[_chunk2Z3O2CFMcjs.Rl,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_TIME`,[t.args.this,this.formatTime(t)])}],[_chunk2Z3O2CFMcjs.Ul,_chunk2Z3O2CFMcjs.pp.call(void 0, "HEX_DECODE_BINARY")],[_chunk2Z3O2CFMcjs.Zl,function(t){return this.func("TO_TIMESTAMP",[t.args.this,t.args.scale])}],[_chunk2Z3O2CFMcjs.cm,_chunk2Z3O2CFMcjs.pp.call(void 0, "UUID_STRING")],[_chunk2Z3O2CFMcjs.ek,function(t){return _chunk2Z3O2CFMcjs.Ip.call(this,t,"OBJECT_CONSTRUCT")}],[_chunk2Z3O2CFMcjs.zf,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOLAND")],[_chunk2Z3O2CFMcjs.Af,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOLOR")],[_chunk2Z3O2CFMcjs.Lh,_chunk2Z3O2CFMcjs.pp.call(void 0, "WEEKISO")],[_chunk2Z3O2CFMcjs.Mh,_chunk2Z3O2CFMcjs.pp.call(void 0, "YEAROFWEEK")],[_chunk2Z3O2CFMcjs.Nh,_chunk2Z3O2CFMcjs.pp.call(void 0, "YEAROFWEEKISO")],[_chunk2Z3O2CFMcjs.mn,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOLXOR")],[_chunk2Z3O2CFMcjs.xf,_chunk2Z3O2CFMcjs.pp.call(void 0, "OCTET_LENGTH")],[_chunk2Z3O2CFMcjs.Gf,_chunk2Z3O2CFMcjs.pp.call(void 0, "ARRAY_FLATTEN")],[_chunk2Z3O2CFMcjs.Rm,function(t){return this.func("ARRAY_FLATTEN",[new (0, _chunk2Z3O2CFMcjs.Nm)({this:t.args.this})])}],[_chunk2Z3O2CFMcjs.il,function(t){return this.func("SHA2_BINARY",[t.args.this,t.args.length||_chunk2Z3O2CFMcjs.$c.number(256)])}]])}nthValueSql(r){let t=this.func("NTH_VALUE",[r.args.this,r.args.offset]),s=r.args.fromFirst;return s!==void 0&&(t+=s?" FROM FIRST":" FROM LAST"),t}static get SUPPORTED_JSON_PATH_PARTS(){return new Set([_chunk2Z3O2CFMcjs.ie,_chunk2Z3O2CFMcjs.je,_chunk2Z3O2CFMcjs.ke])}static get TYPE_MAPPING(){return new Map([..._chunk2Z3O2CFMcjs.lp.TYPE_MAPPING,["bigdecimal","DOUBLE"],["nested","OBJECT"],["struct","OBJECT"],["text","VARCHAR"]])}static get TOKEN_MAPPING(){return{autoIncrement:"AUTOINCREMENT"}}static get PROPERTIES_LOCATION(){return new Map([..._chunk2Z3O2CFMcjs.lp.PROPERTIES_LOCATION,[_chunk2Z3O2CFMcjs.ld,"postWith"],[_chunk2Z3O2CFMcjs.pd,"postWith"],[_chunk2Z3O2CFMcjs.ud,"postSchema"],[_chunk2Z3O2CFMcjs.Fd,"unsupported"],[_chunk2Z3O2CFMcjs.Od,"unsupported"]])}static get UNSUPPORTED_VALUES_EXPRESSIONS(){return new Set([_chunk2Z3O2CFMcjs.Vj,_chunk2Z3O2CFMcjs.dk,_chunk2Z3O2CFMcjs.Cl,_chunk2Z3O2CFMcjs.ek])}static get RESPECT_IGNORE_NULLS_UNSUPPORTED_EXPRESSIONS(){return[_chunk2Z3O2CFMcjs.Nm]}withProperties(r){return this.properties(r,{wrapped:!1,prefix:this.sep(""),sep:" "})}valuesSql(r,t={}){let{valuesAsTable:s=!0}=t;return r.find(this._constructor.UNSUPPORTED_VALUES_EXPRESSIONS)&&(s=!1),super.valuesSql(r,{valuesAsTable:s})}dataTypeSql(r){if(r.isType("double")){let s=r.parent;if(s instanceof _chunk2Z3O2CFMcjs.ac&&s.isType("vector"))return"FLOAT"}let t=r.args.expressions;if(t&&r.isType(_chunk2Z3O2CFMcjs.ac.STRUCT_TYPES))for(let s of t){if(s instanceof _chunk2Z3O2CFMcjs.ac)return"OBJECT";s instanceof _chunk2Z3O2CFMcjs.Za&&s.args.this instanceof _chunk2Z3O2CFMcjs.$c&&s.args.this.isString&&s.args.this.replace(_chunk2Z3O2CFMcjs.eo.call(void 0, s.name,{quoted:!0}))}return super.dataTypeSql(r)}toNumberSql(r){return this.func("TO_NUMBER",[r.args.this,r.args.format,r.args.precision,r.args.scale])}timestampFromPartsSql(r){let t=r.args.milli;if(t!==void 0){let s=t.pop().mul(_chunk2Z3O2CFMcjs.$c.number(1e6));r.setArgKey("nano",s)}return _chunk2Z3O2CFMcjs.pp.call(void 0, "TIMESTAMP_FROM_PARTS").call(this,r)}castSql(r,t={}){return r.isType("geography")?this.func("TO_GEOGRAPHY",[r.args.this]):r.isType("geometry")?this.func("TO_GEOMETRY",[r.args.this]):super.castSql(r,t)}tryCastSql(r){let t=r.args.this;return t!==void 0&&!t.type&&(t=_chunk2Z3O2CFMcjs.Y.call(void 0, t,{dialect:this.dialect})),r.args.requiresString||_optionalChain([t, 'optionalAccess', _101 => _101.isType, 'call', _102 => _102(_chunk2Z3O2CFMcjs.ac.TEXT_TYPES)])?super.tryCastSql(r):this.castSql(r)}logSql(r){return r.args.expression?super.logSql(r):this.func("LN",[r.args.this])}greatestSql(r){let t=r.args.ignoreNulls?"GREATEST_IGNORE_NULLS":"GREATEST";return this.func(t,[r.args.this,...r.args.expressions||[]])}leastSql(r){let t=r.args.ignoreNulls?"LEAST_IGNORE_NULLS":"LEAST";return this.func(t,[r.args.this,...r.args.expressions||[]])}generatorSql(r){let t=[],s=r.args.rowcount,a=r.args.timeLimit;return s&&t.push(new (0, _chunk2Z3O2CFMcjs.Le)({this:new (0, _chunk2Z3O2CFMcjs.Ub)({this:"ROWCOUNT"}),expression:s})),a&&t.push(new (0, _chunk2Z3O2CFMcjs.Le)({this:new (0, _chunk2Z3O2CFMcjs.Ub)({this:"TIMELIMIT"}),expression:a})),this.func("GENERATOR",t)}unnestSql(r){let t=r.args.alias,s=r.args.offset,a=_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, t,_chunk2Z3O2CFMcjs.Ya), 'optionalAccess', _103 => _103.args, 'access', _104 => _104.columns])||[],o=_chunk2Z3O2CFMcjs.ca.call(void 0, a,0)||_chunk2Z3O2CFMcjs.eo.call(void 0, "value"),x=[_chunk2Z3O2CFMcjs.eo.call(void 0, "seq"),_chunk2Z3O2CFMcjs.eo.call(void 0, "key"),_chunk2Z3O2CFMcjs.eo.call(void 0, "path"),s instanceof _chunk2Z3O2CFMcjs.rb?s.pop():_chunk2Z3O2CFMcjs.eo.call(void 0, "index"),o,_chunk2Z3O2CFMcjs.eo.call(void 0, "this")],u=t;u?u.setArgKey("columns",x):u=new (0, _chunk2Z3O2CFMcjs.Ya)({this:_chunk2Z3O2CFMcjs.eo.call(void 0, "_u"),columns:x});let O=this.sql(_optionalChain([r, 'access', _105 => _105.args, 'access', _106 => _106.expressions, 'optionalAccess', _107 => _107[0]]));O.startsWith("INPUT =>")||(O=`INPUT => ${O}`);let A=r.parent,R=A instanceof _chunk2Z3O2CFMcjs.ne?`FLATTEN(${O})`:`TABLE(FLATTEN(${O}))`,_=this.sql(u),L=_?` AS ${_}`:"";return`${A instanceof _chunk2Z3O2CFMcjs.pb||A instanceof _chunk2Z3O2CFMcjs.Bb||A instanceof _chunk2Z3O2CFMcjs.ne?"":`${this.sql(o)} FROM `}${R}${L}`}showSql(r){let t=r.args.terse?"TERSE ":"",s=r.args.history?" HISTORY":"",a=this.sql(r,"like");a=a?` LIKE ${a}`:"";let o=this.sql(r,"scope");o=o?` ${o}`:"";let x=this.sql(r,"scopeKind");x&&(x=` IN ${x}`);let u=this.sql(r,"startsWith");u&&(u=` STARTS WITH ${u}`);let O=this.sql(r,"limit"),A=this.sql(r,"from");A&&(A=` FROM ${A}`);let R=this.expressions(r,{key:"privileges",flat:!0});return R=R?` WITH PRIVILEGES ${R}`:"",`SHOW ${t}${r.name}${s}${a}${x}${o}${u}${O}${A}${R}`}describeSql(r){let t=r.args.kind||"TABLE",s=t?` ${t}`:"",a=` ${this.sql(r,"this")}`,o=this.expressions(r,{flat:!0});return o=o?` ${o}`:"",`DESCRIBE${s}${a}${o}`}generatedAsIdentityColumnConstraintSql(r){let t=r.args.start?` START ${r.args.start}`:"",s=r.args.increment?` INCREMENT ${r.args.increment}`:"",a="";return r.args.order!==void 0&&(a=r.args.order?" ORDER":" NOORDER"),`AUTOINCREMENT${t}${s}${a}`}clusterSql(r){return`CLUSTER BY (${this.expressions(r,{flat:!0})})`}structSql(r){if(_optionalChain([r, 'access', _108 => _108.args, 'access', _109 => _109.expressions, 'optionalAccess', _110 => _110.length])===1){let o=r.args.expressions[0];if(o.isStar||o instanceof _chunk2Z3O2CFMcjs.Ie&&_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, o.args.this,_chunk2Z3O2CFMcjs.Ca), 'optionalAccess', _111 => _111.isStar]))return`{${this.sql(r.args.expressions[0])}}`}let t=[],s=[];_optionalChain([r, 'access', _112 => _112.args, 'access', _113 => _113.expressions, 'optionalAccess', _114 => _114.forEach, 'call', _115 => _115((o,x)=>{o instanceof _chunk2Z3O2CFMcjs.Fe?(o.args.this!==void 0&&t.push(o.args.this instanceof _chunk2Z3O2CFMcjs.rb?_chunk2Z3O2CFMcjs.$c.string(o.name):o.args.this),o.args.expression!==void 0&&s.push(o.args.expression)):(t.push(_chunk2Z3O2CFMcjs.$c.string(`_${x}`)),s.push(o))})]);let a=[];for(let o=0;o<t.length;o++)a.push(t[o],s[o]);return this.func("OBJECT_CONSTRUCT",a)}approxQuantileSql(r){return _chunk2Z3O2CFMcjs.kp.call(this,r,"weight","accuracy"),this.func("APPROX_PERCENTILE",[r.args.this,r.args.quantile])}alterSetSql(r){let t=this.expressions(r,{flat:!0});t=t?` ${t}`:"";let s=this.expressions(r,{key:"fileFormat",flat:!0,sep:" "});s=s?` STAGE_FILE_FORMAT = (${s})`:"";let a=this.expressions(r,{key:"copyOptions",flat:!0,sep:" "});a=a?` STAGE_COPY_OPTIONS = (${a})`:"";let o=this.expressions(r,{key:"tag",flat:!0});return o=o?` TAG ${o}`:"",`SET${t}${s}${a}${o}`}strToTimeSql(r){let t=r.args.targetType,s;t instanceof _chunk2Z3O2CFMcjs.ac?s=_optionalChain([t, 'access', _116 => _116.args, 'access', _117 => _117.this, 'optionalAccess', _118 => _118.toString, 'call', _119 => _119()]):r.type?s=r.type instanceof _chunk2Z3O2CFMcjs.Ca?_optionalChain([r, 'access', _120 => _120.type, 'access', _121 => _121.args, 'access', _122 => _122.this, 'optionalAccess', _123 => _123.toString, 'call', _124 => _124()]):r.type.toString():s="timestamp";let a=wE[s||""]||"TO_TIMESTAMP";return this.func(`${r.args.safe?"TRY_":""}${a}`,[r.args.this,this.formatTime(r)])}timestampSubSql(r){return this.sql(new (0, _chunk2Z3O2CFMcjs._h)({this:r.args.this,expression:_optionalChain([r, 'access', _125 => _125.args, 'access', _126 => _126.expression, 'optionalAccess', _127 => _127.mul, 'call', _128 => _128(-1)]),unit:r.args.unit}))}jsonExtractSql(r){let t=r.args.this;return!(t instanceof _chunk2Z3O2CFMcjs.Fj||t instanceof _chunk2Z3O2CFMcjs.uj)&&!r.args.requiresJson&&(t=new (0, _chunk2Z3O2CFMcjs.Fj)({this:t})),this.func("GET_PATH",[t,r.args.expression])}timeToStrSql(r){let t=r.args.this;return t instanceof _chunk2Z3O2CFMcjs.$c&&t.isString&&(t=new (0, _chunk2Z3O2CFMcjs.Cg)({this:t,to:_chunk2Z3O2CFMcjs.ac.build("timestamp")})),this.func("TO_CHAR",[t,this.formatTime(r)])}dateSubSql(r){let t=r.args.expression;return t?t.replace(t.mul(-1)):this.unsupported("DateSub cannot be transpiled if the subtracted count is unknown"),_chunk2Z3O2CFMcjs.sq.call(void 0, "DATEADD").call(this,r)}selectSql(r){let t=r.args.limit;return r.args.offset&&!t&&r.limit(_chunk2Z3O2CFMcjs.Bo.call(void 0, ),{copy:!1}),super.selectSql(r)}createableSql(r,t){let s=r.find(_chunk2Z3O2CFMcjs.rd),a=r.find(_chunk2Z3O2CFMcjs.ed);if(r.args.kind==="view"&&s&&a){let o=t.get("postSchema")||[],x=o.indexOf(a);x!==-1&&o.splice(x,1);let u=this.sql(r.args.this,"this"),O=this.sql(a),A=this.schemaColumnsSql(r.args.this);return A=A?`${this.sep()}${A}`:"",`${u}${this.sep()}${O}${A}`}return super.createableSql(r,t)}arrayAggSql(r){let t=r.args.this,s=t instanceof _chunk2Z3O2CFMcjs.Fb?t:void 0;s&&r.setArgKey("this",_optionalChain([s, 'access', _129 => _129.args, 'access', _130 => _130.this, 'optionalAccess', _131 => _131.pop, 'call', _132 => _132()]));let a=super.arrayAggSql(r);return s&&(a=this.sql(new (0, _chunk2Z3O2CFMcjs.Wa)({this:a,expression:s}))),a}arraySql(r){let t=_chunk2Z3O2CFMcjs.ca.call(void 0, r.args.expressions||[],0);if(t instanceof _chunk2Z3O2CFMcjs.Wd&&t.text("kind").toUpperCase()==="STRUCT"){let s=[];_optionalChain([t, 'access', _133 => _133.args, 'access', _134 => _134.expressions, 'optionalAccess', _135 => _135.forEach, 'call', _136 => _136(o=>{let x=o instanceof _chunk2Z3O2CFMcjs.hc?o.args.this:o;s.push(_chunk2Z3O2CFMcjs.$c.string(o.aliasOrName),_nullishCoalesce(x, () => (_chunk2Z3O2CFMcjs.Bo.call(void 0, ))))})]);let a=new (0, _chunk2Z3O2CFMcjs.Nm)({this:YE(s)});return t.setArgKey("kind",void 0),t.setArgKey("expressions",[a]),this.sql(t.subquery())}return _chunk2Z3O2CFMcjs.tp.call(this,r)}currentDateSql(r){let t=this.sql(r,"this");if(!t)return super.currentDateSql(r);let s=new (0, _chunk2Z3O2CFMcjs.Cg)({this:new (0, _chunk2Z3O2CFMcjs.$f)({targetTz:t,timestamp:new (0, _chunk2Z3O2CFMcjs.fh)({})}),to:_chunk2Z3O2CFMcjs.ac.build("date")});return this.sql(s)}dotSql(r){let t=r.args.this;return t instanceof _chunk2Z3O2CFMcjs.Ca&&!_optionalChain([t, 'optionalAccess', _137 => _137.type])&&(t=_chunk2Z3O2CFMcjs.Y.call(void 0, t,{dialect:this.dialect})),!(t instanceof _chunk2Z3O2CFMcjs.Ae)&&_chunk2Z3O2CFMcjs.Lo.call(void 0, t,"struct")?`${this.sql(t)}:${this.sql(r,"expression")}`:super.dotSql(r)}modelAttributeSql(r){return`${this.sql(r,"this")}!${this.sql(r,"expression")}`}formatSql(r){return r.name.toLowerCase()==="%s"&&_optionalChain([r, 'access', _138 => _138.args, 'access', _139 => _139.expressions, 'optionalAccess', _140 => _140.length])===1?this.func("TO_CHAR",[r.args.expressions[0]]):this.functionFallbackSql(r)}splitPartSql(r){return r.args.delimiter||r.setArgKey("delimiter",_chunk2Z3O2CFMcjs.$c.string(" ")),r.args.partIndex||r.setArgKey("partIndex",_chunk2Z3O2CFMcjs.$c.number(1)),_chunk2Z3O2CFMcjs.pp.call(void 0, "SPLIT_PART").call(this,r)}uniformSql(r){let t=r.args.gen,s=r.args.seed;return s&&(t=new (0, _chunk2Z3O2CFMcjs.Ck)({this:s})),t||(t=new _chunk2Z3O2CFMcjs.Ck),this.func("UNIFORM",[r.args.this,r.args.expression,t])}};y=_chunk2Z3O2CFMcjs.a.call(void 0, CE),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"AFTER_HAVING_MODIFIER_TRANSFORMS",ME,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"STRUCT_DELIMITER",PE,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"ORIGINAL_TRANSFORMS",NE,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"SUPPORTED_JSON_PATH_PARTS",_E,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"TYPE_MAPPING",OE,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"TOKEN_MAPPING",mE,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"PROPERTIES_LOCATION",dE,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"UNSUPPORTED_VALUES_EXPRESSIONS",IE,c),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"RESPECT_IGNORE_NULLS_UNSUPPORTED_EXPRESSIONS",gE,c),_chunk2Z3O2CFMcjs.b.call(void 0, y,c),_chunk2Z3O2CFMcjs.c.call(void 0, y,3,c),c.SELECT_KINDS=[],c.TRY_SUPPORTED=!1,c.SUPPORTS_UESCAPE=!1,c.PARAMETER_TOKEN="$",c.MATCHED_BY_SOURCE=!1,c.SINGLE_STRING_INTERVAL=!0,c.JOIN_HINTS=!1,c.TABLE_HINTS=!1,c.QUERY_HINTS=!1,c.AGGREGATE_FILTER_SUPPORTED=!1,c.SUPPORTS_TABLE_COPY=!1,c.COLLATE_IS_FUNC=!0,c.LIMIT_ONLY_LITERALS=!0,c.JSON_KEY_VALUE_PAIR_SEP=",",c.INSERT_OVERWRITE=" OVERWRITE INTO",c.COPY_PARAMS_ARE_WRAPPED=!1,c.COPY_PARAMS_EQ_REQUIRED=!0,c.STAR_EXCEPT="EXCLUDE",c.SUPPORTS_EXPLODING_PROJECTIONS=!1,c.ARRAY_CONCAT_IS_VAR_LEN=!1,c.SUPPORTS_CONVERT_TIMEZONE=!0,c.EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE=!1,c.SUPPORTS_MEDIAN=!0,c.ARRAY_SIZE_NAME="ARRAY_SIZE",c.SUPPORTS_DECODE_CASE=!0,c.IS_BOOL_ALLOWED=!1,c.DIRECTED_JOINS=!0;var yE,LE,DE,FE,UE,BE,bE,GE,w,S= exports.Snowflake =class extends(GE=_chunk2Z3O2CFMcjs.op,bE=[_chunk2Z3O2CFMcjs.r],BE=[_chunk2Z3O2CFMcjs.r],UE=[_chunk2Z3O2CFMcjs.r],FE=[_chunk2Z3O2CFMcjs.r],DE=[_chunk2Z3O2CFMcjs.r],LE=[_chunk2Z3O2CFMcjs.r],yE=[_chunk2Z3O2CFMcjs.r],GE){static get NORMALIZATION_STRATEGY(){return"uppercase"}static get NULL_ORDERING(){return"nulls_are_large"}static get EXPRESSION_METADATA(){return new Map(rt.EXPRESSION_METADATA)}static get INVERSE_TIME_MAPPING(){return{T:"T","%Y":"yyyy","%y":"yy","%B":"MMMM","%b":"MON","%m":"mm","%d":"DD","%-d":"dd","%a":"DY","%w":"dy","%H":"HH24","%I":"HH12","%M":"MI","%S":"SS","%f_nine":"FF","%f_zero":"FF0","%f_one":"FF1","%f_two":"FF2","%f_three":"FF3","%f_four":"FF4","%f_five":"FF5","%f":"FF6","%f_seven":"FF7","%f_eight":"FF8","%z":"TZHTZM","%:z":"TZH:TZM","%-z":"TZH","%p":"AM/PM","%A":"EEEE","%j":"DDD","%C":"CC"}}static get TIME_MAPPING(){return{YYYY:"%Y",yyyy:"%Y",YY:"%y",yy:"%y",MMMM:"%B",mmmm:"%B",MON:"%b",mon:"%b",MM:"%m",mm:"%m",DD:"%d",dd:"%-d",DY:"%a",dy:"%w",HH24:"%H",hh24:"%H",HH12:"%I",hh12:"%I",MI:"%M",mi:"%M",SS:"%S",ss:"%S",FF:"%f_nine",ff:"%f_nine",FF0:"%f_zero",ff0:"%f_zero",FF1:"%f_one",ff1:"%f_one",FF2:"%f_two",ff2:"%f_two",FF3:"%f_three",ff3:"%f_three",FF4:"%f_four",ff4:"%f_four",FF5:"%f_five",ff5:"%f_five",FF6:"%f",ff6:"%f",FF7:"%f_seven",ff7:"%f_seven",FF8:"%f_eight",ff8:"%f_eight",FF9:"%f_nine",ff9:"%f_nine",TZHTZM:"%z",tzhtzm:"%z","TZH:TZM":"%:z","tzh:tzm":"%:z",TZH:"%-z",tzh:"%-z",'"T"':"T",AM:"%p",am:"%p",PM:"%p",pm:"%p"}}static get DATE_PART_MAPPING(){return{..._chunk2Z3O2CFMcjs.op.DATE_PART_MAPPING,ISOWEEK:"WEEKISO",EPOCH_SECOND:"EPOCH_SECOND",EPOCH_SECONDS:"EPOCH_SECOND"}}static get PSEUDOCOLUMNS(){return new Set(["LEVEL"])}canQuote(r,t={}){let{identify:s="safe"}=t;return super.canQuote(r,{identify:s})&&!(r.parent instanceof _chunk2Z3O2CFMcjs.Tb&&!r.args.quoted&&r.name.toLowerCase()==="dual")}};w=_chunk2Z3O2CFMcjs.a.call(void 0, GE),_chunk2Z3O2CFMcjs.d.call(void 0, w,10,"NORMALIZATION_STRATEGY",bE,S),_chunk2Z3O2CFMcjs.d.call(void 0, w,10,"NULL_ORDERING",BE,S),_chunk2Z3O2CFMcjs.d.call(void 0, w,10,"EXPRESSION_METADATA",UE,S),_chunk2Z3O2CFMcjs.d.call(void 0, w,10,"INVERSE_TIME_MAPPING",FE,S),_chunk2Z3O2CFMcjs.d.call(void 0, w,10,"TIME_MAPPING",DE,S),_chunk2Z3O2CFMcjs.d.call(void 0, w,10,"DATE_PART_MAPPING",LE,S),_chunk2Z3O2CFMcjs.d.call(void 0, w,10,"PSEUDOCOLUMNS",yE,S),_chunk2Z3O2CFMcjs.b.call(void 0, w,S),_chunk2Z3O2CFMcjs.c.call(void 0, w,3,S),S.DIALECT_NAME="snowflake",S.TIME_FORMAT="'YYYY-MM-DD HH24:MI:SS'",S.SUPPORTS_USER_DEFINED_TYPES=!1,S.SUPPORTS_SEMI_ANTI_JOIN=!1,S.PREFER_CTE_ALIAS_COLUMN=!0,S.TABLESAMPLE_SIZE_IS_PERCENT=!0,S.COPY_PARAMS_ARE_CSV=!1,S.ARRAY_AGG_INCLUDES_NULLS=void 0,S.ARRAY_FUNCS_PROPAGATES_NULLS=!0,S.ALTER_TABLE_ADD_REQUIRED_FOR_EACH_COLUMN=!1,S.TRY_CAST_REQUIRES_STRING=!0,S.SUPPORTS_ALIAS_REFS_IN_JOIN_CONDITIONS=!0,S.LEAST_GREATEST_IGNORES_NULLS=!1,S.INITCAP_DEFAULT_DELIMITER_CHARS=`
2
+ \r\f\v!?@"^#$&~_,.:;+\\-*%/|\\[\\](){}<>`,S.JsonPathTokenizer=ut,S.Tokenizer=P,S.Parser=Hr,S.Generator=c;_chunk2Z3O2CFMcjs.op.register("snowflake",S);exports.Snowflake = S;
3
+ //# sourceMappingURL=snowflake.cjs.map