@hdnax/sqlingo.js 0.0.4 → 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 (245) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +8 -14
  3. package/README.npm.md +8 -14
  4. package/README.repo.md +1 -2
  5. package/dist/chunk-2YNOERAO.cjs +2 -0
  6. package/dist/chunk-2YNOERAO.cjs.map +1 -0
  7. package/dist/chunk-2Z3O2CFM.cjs +19 -0
  8. package/dist/chunk-2Z3O2CFM.cjs.map +1 -0
  9. package/dist/chunk-4ZMKB6PV.cjs +2 -0
  10. package/dist/chunk-4ZMKB6PV.cjs.map +1 -0
  11. package/dist/chunk-53OWF4GG.js +2 -0
  12. package/dist/chunk-53OWF4GG.js.map +1 -0
  13. package/dist/chunk-C4CLTVOW.cjs +2 -0
  14. package/dist/chunk-C4CLTVOW.cjs.map +1 -0
  15. package/dist/chunk-DOKMTZYO.cjs +4 -0
  16. package/dist/chunk-DOKMTZYO.cjs.map +1 -0
  17. package/dist/chunk-FCGUTI7Y.js +2 -0
  18. package/dist/chunk-FCGUTI7Y.js.map +1 -0
  19. package/dist/chunk-IPCIXWCY.js +2 -0
  20. package/dist/chunk-IPCIXWCY.js.map +1 -0
  21. package/dist/chunk-KCNOE4DZ.js +19 -0
  22. package/dist/chunk-KCNOE4DZ.js.map +1 -0
  23. package/dist/chunk-NRJHX2GZ.js +2 -0
  24. package/dist/chunk-NRJHX2GZ.js.map +1 -0
  25. package/dist/chunk-O2J5RKBN.js +2 -0
  26. package/dist/chunk-O2J5RKBN.js.map +1 -0
  27. package/dist/chunk-PXUASP5I.js +2 -0
  28. package/dist/chunk-PXUASP5I.js.map +1 -0
  29. package/dist/chunk-R7C3ZHVK.cjs +2 -0
  30. package/dist/chunk-R7C3ZHVK.cjs.map +1 -0
  31. package/dist/chunk-UHWHUDLE.cjs +2 -0
  32. package/dist/chunk-UHWHUDLE.cjs.map +1 -0
  33. package/dist/chunk-WRNYJ54A.cjs +2 -0
  34. package/dist/chunk-WRNYJ54A.cjs.map +1 -0
  35. package/dist/chunk-XZQFOICX.cjs +3 -0
  36. package/dist/chunk-XZQFOICX.cjs.map +1 -0
  37. package/dist/chunk-YLOQRUXC.js +2 -0
  38. package/dist/chunk-YLOQRUXC.js.map +1 -0
  39. package/dist/chunk-YSS2WVCM.cjs +2 -0
  40. package/dist/chunk-YSS2WVCM.cjs.map +1 -0
  41. package/dist/chunk-Z5V6VOIN.js +3 -0
  42. package/dist/chunk-Z5V6VOIN.js.map +1 -0
  43. package/dist/chunk-ZBFGQPJR.js +4 -0
  44. package/dist/chunk-ZBFGQPJR.js.map +1 -0
  45. package/dist/dialects/athena.cjs +2 -0
  46. package/dist/dialects/athena.cjs.map +1 -0
  47. package/dist/dialects/athena.d.cts +66 -0
  48. package/dist/dialects/athena.d.ts +66 -0
  49. package/dist/dialects/athena.js +2 -0
  50. package/dist/dialects/athena.js.map +1 -0
  51. package/dist/dialects/bigquery.cjs +3 -0
  52. package/dist/dialects/bigquery.cjs.map +1 -0
  53. package/dist/dialects/bigquery.d.cts +651 -0
  54. package/dist/dialects/bigquery.d.ts +651 -0
  55. package/dist/dialects/bigquery.js +3 -0
  56. package/dist/dialects/bigquery.js.map +1 -0
  57. package/dist/dialects/clickhouse.cjs +2 -0
  58. package/dist/dialects/clickhouse.cjs.map +1 -0
  59. package/dist/dialects/clickhouse.d.cts +634 -0
  60. package/dist/dialects/clickhouse.d.ts +634 -0
  61. package/dist/dialects/clickhouse.js +2 -0
  62. package/dist/dialects/clickhouse.js.map +1 -0
  63. package/dist/dialects/databricks.cjs +2 -0
  64. package/dist/dialects/databricks.cjs.map +1 -0
  65. package/dist/dialects/databricks.d.cts +484 -0
  66. package/dist/dialects/databricks.d.ts +484 -0
  67. package/dist/dialects/databricks.js +2 -0
  68. package/dist/dialects/databricks.js.map +1 -0
  69. package/dist/dialects/doris.cjs +2 -0
  70. package/dist/dialects/doris.cjs.map +1 -0
  71. package/dist/dialects/doris.d.cts +484 -0
  72. package/dist/dialects/doris.d.ts +484 -0
  73. package/dist/dialects/doris.js +2 -0
  74. package/dist/dialects/doris.js.map +1 -0
  75. package/dist/dialects/dremio.cjs +2 -0
  76. package/dist/dialects/dremio.cjs.map +1 -0
  77. package/dist/dialects/dremio.d.cts +522 -0
  78. package/dist/dialects/dremio.d.ts +522 -0
  79. package/dist/dialects/dremio.js +2 -0
  80. package/dist/dialects/dremio.js.map +1 -0
  81. package/dist/dialects/drill.cjs +2 -0
  82. package/dist/dialects/drill.cjs.map +1 -0
  83. package/dist/dialects/drill.d.cts +512 -0
  84. package/dist/dialects/drill.d.ts +512 -0
  85. package/dist/dialects/drill.js +2 -0
  86. package/dist/dialects/drill.js.map +1 -0
  87. package/dist/dialects/druid.cjs +2 -0
  88. package/dist/dialects/druid.cjs.map +1 -0
  89. package/dist/dialects/druid.d.cts +17 -0
  90. package/dist/dialects/druid.d.ts +17 -0
  91. package/dist/dialects/druid.js +2 -0
  92. package/dist/dialects/druid.js.map +1 -0
  93. package/dist/dialects/duckdb.cjs +86 -0
  94. package/dist/dialects/duckdb.cjs.map +1 -0
  95. package/dist/dialects/duckdb.d.cts +756 -0
  96. package/dist/dialects/duckdb.d.ts +756 -0
  97. package/dist/dialects/duckdb.js +86 -0
  98. package/dist/dialects/duckdb.js.map +1 -0
  99. package/dist/dialects/dune.cjs +2 -0
  100. package/dist/dialects/dune.cjs.map +1 -0
  101. package/dist/dialects/dune.d.cts +21 -0
  102. package/dist/dialects/dune.d.ts +21 -0
  103. package/dist/dialects/dune.js +2 -0
  104. package/dist/dialects/dune.js.map +1 -0
  105. package/dist/dialects/exasol.cjs +2 -0
  106. package/dist/dialects/exasol.cjs.map +1 -0
  107. package/dist/dialects/exasol.d.cts +507 -0
  108. package/dist/dialects/exasol.d.ts +507 -0
  109. package/dist/dialects/exasol.js +2 -0
  110. package/dist/dialects/exasol.js.map +1 -0
  111. package/dist/dialects/fabric.cjs +2 -0
  112. package/dist/dialects/fabric.cjs.map +1 -0
  113. package/dist/dialects/fabric.d.cts +463 -0
  114. package/dist/dialects/fabric.d.ts +463 -0
  115. package/dist/dialects/fabric.js +2 -0
  116. package/dist/dialects/fabric.js.map +1 -0
  117. package/dist/dialects/hive.cjs +2 -0
  118. package/dist/dialects/hive.cjs.map +1 -0
  119. package/dist/dialects/hive.d.cts +585 -0
  120. package/dist/dialects/hive.d.ts +585 -0
  121. package/dist/dialects/hive.js +2 -0
  122. package/dist/dialects/hive.js.map +1 -0
  123. package/dist/dialects/materialize.cjs +2 -0
  124. package/dist/dialects/materialize.cjs.map +1 -0
  125. package/dist/dialects/materialize.d.cts +890 -0
  126. package/dist/dialects/materialize.d.ts +890 -0
  127. package/dist/dialects/materialize.js +2 -0
  128. package/dist/dialects/materialize.js.map +1 -0
  129. package/dist/dialects/mysql.cjs +2 -0
  130. package/dist/dialects/mysql.cjs.map +1 -0
  131. package/dist/dialects/mysql.d.cts +292 -0
  132. package/dist/dialects/mysql.d.ts +292 -0
  133. package/dist/dialects/mysql.js +2 -0
  134. package/dist/dialects/mysql.js.map +1 -0
  135. package/dist/dialects/oracle.cjs +2 -0
  136. package/dist/dialects/oracle.cjs.map +1 -0
  137. package/dist/dialects/oracle.d.cts +539 -0
  138. package/dist/dialects/oracle.d.ts +539 -0
  139. package/dist/dialects/oracle.js +2 -0
  140. package/dist/dialects/oracle.js.map +1 -0
  141. package/dist/dialects/postgres.cjs +2 -0
  142. package/dist/dialects/postgres.cjs.map +1 -0
  143. package/dist/dialects/postgres.d.cts +587 -0
  144. package/dist/dialects/postgres.d.ts +587 -0
  145. package/dist/dialects/postgres.js +2 -0
  146. package/dist/dialects/postgres.js.map +1 -0
  147. package/dist/dialects/presto.cjs +2 -0
  148. package/dist/dialects/presto.cjs.map +1 -0
  149. package/dist/dialects/presto.d.cts +173 -0
  150. package/dist/dialects/presto.d.ts +173 -0
  151. package/dist/dialects/presto.js +2 -0
  152. package/dist/dialects/presto.js.map +1 -0
  153. package/dist/dialects/prql.cjs +2 -0
  154. package/dist/dialects/prql.cjs.map +1 -0
  155. package/dist/dialects/prql.d.cts +496 -0
  156. package/dist/dialects/prql.d.ts +496 -0
  157. package/dist/dialects/prql.js +2 -0
  158. package/dist/dialects/prql.js.map +1 -0
  159. package/dist/dialects/redshift.cjs +2 -0
  160. package/dist/dialects/redshift.cjs.map +1 -0
  161. package/dist/dialects/redshift.d.cts +132 -0
  162. package/dist/dialects/redshift.d.ts +132 -0
  163. package/dist/dialects/redshift.js +2 -0
  164. package/dist/dialects/redshift.js.map +1 -0
  165. package/dist/dialects/risingwave.cjs +2 -0
  166. package/dist/dialects/risingwave.cjs.map +1 -0
  167. package/dist/dialects/risingwave.d.cts +478 -0
  168. package/dist/dialects/risingwave.d.ts +478 -0
  169. package/dist/dialects/risingwave.js +2 -0
  170. package/dist/dialects/risingwave.js.map +1 -0
  171. package/dist/dialects/singlestore.cjs +2 -0
  172. package/dist/dialects/singlestore.cjs.map +1 -0
  173. package/dist/dialects/singlestore.d.cts +73 -0
  174. package/dist/dialects/singlestore.d.ts +73 -0
  175. package/dist/dialects/singlestore.js +2 -0
  176. package/dist/dialects/singlestore.js.map +1 -0
  177. package/dist/dialects/snowflake.cjs +3 -0
  178. package/dist/dialects/snowflake.cjs.map +1 -0
  179. package/dist/dialects/snowflake.d.cts +320 -0
  180. package/dist/dialects/snowflake.d.ts +320 -0
  181. package/dist/dialects/snowflake.js +3 -0
  182. package/dist/dialects/snowflake.js.map +1 -0
  183. package/dist/dialects/solr.cjs +2 -0
  184. package/dist/dialects/solr.cjs.map +1 -0
  185. package/dist/dialects/solr.d.cts +458 -0
  186. package/dist/dialects/solr.d.ts +458 -0
  187. package/dist/dialects/solr.js +2 -0
  188. package/dist/dialects/solr.js.map +1 -0
  189. package/dist/dialects/spark.cjs +2 -0
  190. package/dist/dialects/spark.cjs.map +1 -0
  191. package/dist/dialects/spark.d.cts +484 -0
  192. package/dist/dialects/spark.d.ts +484 -0
  193. package/dist/dialects/spark.js +2 -0
  194. package/dist/dialects/spark.js.map +1 -0
  195. package/dist/dialects/spark2.cjs +2 -0
  196. package/dist/dialects/spark2.cjs.map +1 -0
  197. package/dist/dialects/spark2.d.cts +486 -0
  198. package/dist/dialects/spark2.d.ts +486 -0
  199. package/dist/dialects/spark2.js +2 -0
  200. package/dist/dialects/spark2.js.map +1 -0
  201. package/dist/dialects/sqlite.cjs +2 -0
  202. package/dist/dialects/sqlite.cjs.map +1 -0
  203. package/dist/dialects/sqlite.d.cts +510 -0
  204. package/dist/dialects/sqlite.d.ts +510 -0
  205. package/dist/dialects/sqlite.js +2 -0
  206. package/dist/dialects/sqlite.js.map +1 -0
  207. package/dist/dialects/starrocks.cjs +2 -0
  208. package/dist/dialects/starrocks.cjs.map +1 -0
  209. package/dist/dialects/starrocks.d.cts +518 -0
  210. package/dist/dialects/starrocks.d.ts +518 -0
  211. package/dist/dialects/starrocks.js +2 -0
  212. package/dist/dialects/starrocks.js.map +1 -0
  213. package/dist/dialects/tableau.cjs +2 -0
  214. package/dist/dialects/tableau.cjs.map +1 -0
  215. package/dist/dialects/tableau.d.cts +466 -0
  216. package/dist/dialects/tableau.d.ts +466 -0
  217. package/dist/dialects/tableau.js +2 -0
  218. package/dist/dialects/tableau.js.map +1 -0
  219. package/dist/dialects/teradata.cjs +2 -0
  220. package/dist/dialects/teradata.cjs.map +1 -0
  221. package/dist/dialects/teradata.d.cts +539 -0
  222. package/dist/dialects/teradata.d.ts +539 -0
  223. package/dist/dialects/teradata.js +2 -0
  224. package/dist/dialects/teradata.js.map +1 -0
  225. package/dist/dialects/trino.cjs +2 -0
  226. package/dist/dialects/trino.cjs.map +1 -0
  227. package/dist/dialects/trino.d.cts +465 -0
  228. package/dist/dialects/trino.d.ts +465 -0
  229. package/dist/dialects/trino.js +2 -0
  230. package/dist/dialects/trino.js.map +1 -0
  231. package/dist/dialects/tsql.cjs +2 -0
  232. package/dist/dialects/tsql.cjs.map +1 -0
  233. package/dist/dialects/tsql.d.cts +703 -0
  234. package/dist/dialects/tsql.d.ts +703 -0
  235. package/dist/dialects/tsql.js +2 -0
  236. package/dist/dialects/tsql.js.map +1 -0
  237. package/dist/index.cjs +5 -25
  238. package/dist/index.cjs.map +1 -1
  239. package/dist/index.d.cts +3 -14178
  240. package/dist/index.d.ts +3 -14178
  241. package/dist/index.js +5 -25
  242. package/dist/index.js.map +1 -1
  243. package/dist/tokens-VcMD09XM.d.cts +15805 -0
  244. package/dist/tokens-VcMD09XM.d.ts +15805 -0
  245. package/package.json +171 -5
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/huydna/projects/sqlingo.js/dist/dialects/singlestore.cjs","../../src/dialects/singlestore.ts"],"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","JsonbExtractScalarExpr","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"],"mappings":"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","file":"/home/huydna/projects/sqlingo.js/dist/dialects/singlestore.cjs","sourcesContent":[null,"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"]}
@@ -0,0 +1,73 @@
1
+ import { d as Dialects, _ as TokenPair, l as TokenType, E as Expression, c as Dialect, i as Parser, G as Generator, ah as NullOrderingSupported, $ as DataTypeExprKind, cq as JsonExtractScalarExpr, d1 as JsonbExtractScalarExpr, d6 as JsonExtractArrayExpr, d7 as JsonValueExpr, d8 as AllExpr, d9 as JsonArrayContainsExpr, b5 as DataTypeExpr, cz as CollateExpr, be as CurrentDateExpr, da as CurrentTimeExpr, cH as CurrentTimestampExpr, db as StandardHashExpr, dc as TruncateTableExpr, dd as RenameColumnExpr, de as AlterColumnExpr, cW as ComputedColumnConstraintExpr } from '../tokens-VcMD09XM.cjs';
2
+ import { MySQL } from './mysql.cjs';
3
+
4
+ declare class SingleStoreTokenizer extends MySQL.Tokenizer {
5
+ static get BYTE_STRINGS(): TokenPair[];
6
+ static get ORIGINAL_KEYWORDS(): Record<string, TokenType>;
7
+ }
8
+ declare class SingleStoreParser extends MySQL.Parser {
9
+ static get ID_VAR_TOKENS(): Set<TokenType>;
10
+ static get FUNCTIONS(): Record<string, (args: Expression[], options: {
11
+ dialect: Dialect;
12
+ }) => Expression>;
13
+ static get FUNCTION_PARSERS(): Partial<Record<string, (this: Parser) => Expression | undefined>>;
14
+ static get NO_PAREN_FUNCTIONS(): Partial<Record<TokenType, typeof Expression>>;
15
+ static get CAST_COLUMN_OPERATORS(): Set<TokenType>;
16
+ static get COLUMN_OPERATORS(): Partial<Record<TokenType, undefined | ((this: Parser, this_?: Expression, to?: Expression) => Expression)>>;
17
+ static get SHOW_PARSERS(): Record<string, (this: Parser) => Expression>;
18
+ static get ALTER_PARSERS(): Partial<Record<string, (this: Parser) => Expression | Expression[] | undefined>>;
19
+ parseVectorExpressions(expressions: Expression[]): Expression[];
20
+ static get TABLE_ALIAS_TOKENS(): Set<TokenType>;
21
+ }
22
+ declare class SingleStoreGenerator extends MySQL.Generator {
23
+ static get AFTER_HAVING_MODIFIER_TRANSFORMS(): Map<string, (this: Generator, e: Expression) => string>;
24
+ static SUPPORTS_DECODE_CASE: boolean;
25
+ static TRY_SUPPORTED: boolean;
26
+ static SUPPORTS_UESCAPE: boolean;
27
+ static get NULL_ORDERING_SUPPORTED(): NullOrderingSupported;
28
+ static MATCH_AGAINST_TABLE_PREFIX: string;
29
+ static get STRUCT_DELIMITER(): string[];
30
+ static UNICODE_SUBSTITUTE: (_match: string, group: string) => string;
31
+ static get SUPPORTED_JSON_PATH_PARTS(): Set<typeof Expression>;
32
+ static get ORIGINAL_TRANSFORMS(): Map<typeof Expression, (this: Generator, e: any) => string>;
33
+ static get UNSUPPORTED_TYPES(): Set<DataTypeExprKind>;
34
+ static get TYPE_MAPPING(): Map<string, string>;
35
+ static get RESERVED_KEYWORDS(): Set<string>;
36
+ jsonExtractScalarSql(expression: JsonExtractScalarExpr): string;
37
+ jsonbExtractScalarSql(expression: JsonbExtractScalarExpr): string;
38
+ jsonExtractArraySql(expression: JsonExtractArrayExpr): string;
39
+ jsonValueSql(expression: JsonValueExpr): string;
40
+ allSql(expression: AllExpr): string;
41
+ jsonArrayContainsSql(expression: JsonArrayContainsExpr): string;
42
+ dataTypeSql(expression: DataTypeExpr): string;
43
+ collateSql(expression: CollateExpr): string;
44
+ currentDateSql(expression: CurrentDateExpr): string;
45
+ currentTimeSql(expression: CurrentTimeExpr): string;
46
+ currentTimestampSql(expression: CurrentTimestampExpr): string;
47
+ standardHashSql(expression: StandardHashExpr): string;
48
+ truncateTableSql(expression: TruncateTableExpr): string;
49
+ renameColumnSql(expression: RenameColumnExpr): string;
50
+ alterColumnSql(expression: AlterColumnExpr): string;
51
+ computedColumnConstraintSql(expression: ComputedColumnConstraintExpr): string;
52
+ }
53
+ declare class SingleStore extends MySQL {
54
+ static DIALECT_NAME: Dialects;
55
+ static SUPPORTS_ORDER_BY_ALL: boolean;
56
+ static get TIME_MAPPING(): Record<string, string>;
57
+ static get VECTOR_TYPE_ALIASES(): {
58
+ I8: string;
59
+ I16: string;
60
+ I32: string;
61
+ I64: string;
62
+ F32: string;
63
+ F64: string;
64
+ };
65
+ static get INVERSE_VECTOR_TYPE_ALIASES(): {
66
+ [k: string]: string;
67
+ };
68
+ static Tokenizer: typeof SingleStoreTokenizer;
69
+ static Parser: typeof SingleStoreParser;
70
+ static Generator: typeof SingleStoreGenerator;
71
+ }
72
+
73
+ export { SingleStore };
@@ -0,0 +1,73 @@
1
+ import { d as Dialects, _ as TokenPair, l as TokenType, E as Expression, c as Dialect, i as Parser, G as Generator, ah as NullOrderingSupported, $ as DataTypeExprKind, cq as JsonExtractScalarExpr, d1 as JsonbExtractScalarExpr, d6 as JsonExtractArrayExpr, d7 as JsonValueExpr, d8 as AllExpr, d9 as JsonArrayContainsExpr, b5 as DataTypeExpr, cz as CollateExpr, be as CurrentDateExpr, da as CurrentTimeExpr, cH as CurrentTimestampExpr, db as StandardHashExpr, dc as TruncateTableExpr, dd as RenameColumnExpr, de as AlterColumnExpr, cW as ComputedColumnConstraintExpr } from '../tokens-VcMD09XM.js';
2
+ import { MySQL } from './mysql.js';
3
+
4
+ declare class SingleStoreTokenizer extends MySQL.Tokenizer {
5
+ static get BYTE_STRINGS(): TokenPair[];
6
+ static get ORIGINAL_KEYWORDS(): Record<string, TokenType>;
7
+ }
8
+ declare class SingleStoreParser extends MySQL.Parser {
9
+ static get ID_VAR_TOKENS(): Set<TokenType>;
10
+ static get FUNCTIONS(): Record<string, (args: Expression[], options: {
11
+ dialect: Dialect;
12
+ }) => Expression>;
13
+ static get FUNCTION_PARSERS(): Partial<Record<string, (this: Parser) => Expression | undefined>>;
14
+ static get NO_PAREN_FUNCTIONS(): Partial<Record<TokenType, typeof Expression>>;
15
+ static get CAST_COLUMN_OPERATORS(): Set<TokenType>;
16
+ static get COLUMN_OPERATORS(): Partial<Record<TokenType, undefined | ((this: Parser, this_?: Expression, to?: Expression) => Expression)>>;
17
+ static get SHOW_PARSERS(): Record<string, (this: Parser) => Expression>;
18
+ static get ALTER_PARSERS(): Partial<Record<string, (this: Parser) => Expression | Expression[] | undefined>>;
19
+ parseVectorExpressions(expressions: Expression[]): Expression[];
20
+ static get TABLE_ALIAS_TOKENS(): Set<TokenType>;
21
+ }
22
+ declare class SingleStoreGenerator extends MySQL.Generator {
23
+ static get AFTER_HAVING_MODIFIER_TRANSFORMS(): Map<string, (this: Generator, e: Expression) => string>;
24
+ static SUPPORTS_DECODE_CASE: boolean;
25
+ static TRY_SUPPORTED: boolean;
26
+ static SUPPORTS_UESCAPE: boolean;
27
+ static get NULL_ORDERING_SUPPORTED(): NullOrderingSupported;
28
+ static MATCH_AGAINST_TABLE_PREFIX: string;
29
+ static get STRUCT_DELIMITER(): string[];
30
+ static UNICODE_SUBSTITUTE: (_match: string, group: string) => string;
31
+ static get SUPPORTED_JSON_PATH_PARTS(): Set<typeof Expression>;
32
+ static get ORIGINAL_TRANSFORMS(): Map<typeof Expression, (this: Generator, e: any) => string>;
33
+ static get UNSUPPORTED_TYPES(): Set<DataTypeExprKind>;
34
+ static get TYPE_MAPPING(): Map<string, string>;
35
+ static get RESERVED_KEYWORDS(): Set<string>;
36
+ jsonExtractScalarSql(expression: JsonExtractScalarExpr): string;
37
+ jsonbExtractScalarSql(expression: JsonbExtractScalarExpr): string;
38
+ jsonExtractArraySql(expression: JsonExtractArrayExpr): string;
39
+ jsonValueSql(expression: JsonValueExpr): string;
40
+ allSql(expression: AllExpr): string;
41
+ jsonArrayContainsSql(expression: JsonArrayContainsExpr): string;
42
+ dataTypeSql(expression: DataTypeExpr): string;
43
+ collateSql(expression: CollateExpr): string;
44
+ currentDateSql(expression: CurrentDateExpr): string;
45
+ currentTimeSql(expression: CurrentTimeExpr): string;
46
+ currentTimestampSql(expression: CurrentTimestampExpr): string;
47
+ standardHashSql(expression: StandardHashExpr): string;
48
+ truncateTableSql(expression: TruncateTableExpr): string;
49
+ renameColumnSql(expression: RenameColumnExpr): string;
50
+ alterColumnSql(expression: AlterColumnExpr): string;
51
+ computedColumnConstraintSql(expression: ComputedColumnConstraintExpr): string;
52
+ }
53
+ declare class SingleStore extends MySQL {
54
+ static DIALECT_NAME: Dialects;
55
+ static SUPPORTS_ORDER_BY_ALL: boolean;
56
+ static get TIME_MAPPING(): Record<string, string>;
57
+ static get VECTOR_TYPE_ALIASES(): {
58
+ I8: string;
59
+ I16: string;
60
+ I32: string;
61
+ I64: string;
62
+ F32: string;
63
+ F64: string;
64
+ };
65
+ static get INVERSE_VECTOR_TYPE_ALIASES(): {
66
+ [k: string]: string;
67
+ };
68
+ static Tokenizer: typeof SingleStoreTokenizer;
69
+ static Parser: typeof SingleStoreParser;
70
+ static Generator: typeof SingleStoreGenerator;
71
+ }
72
+
73
+ export { SingleStore };
@@ -0,0 +1,2 @@
1
+ import{a as n,g as Ae,i as Re,j as i}from"../chunk-O2J5RKBN.js";import{$b as dt,$c as o,$g as St,$l as oe,Ah as Lt,Aq as P,Bh as Mt,Bj as b,Bl as Wt,Bq as ge,Cg as h,Ch as Ut,Dg as ft,Dh as Gt,El as Zt,Fh as bt,Gh as wt,Gl as Qt,Hh as qt,Hk as Z,Hl as d,Ik as Q,Il as te,Jk as tt,Jl as ee,Km as ot,Kp as f,La as Tt,Lk as et,Ll as re,Lm as ce,Mg as B,Mk as $t,Ng as xt,Nq as q,Ol as se,Pl as it,Pp as he,Qe as At,Qf as j,Qp as w,Rk as zt,Rn as Te,Sn as lt,Ta as _t,Tl as ne,Uj as W,Ve as Rt,Yl as ie,Zl as at,Zn as pt,_l as ae,a as C,ab as ht,ac as A,ah as Ot,ai as vt,aq as me,b as y,bi as kt,bj as jt,bn as ct,c as D,ca as s,d as c,fh as It,fk as Xt,fn as Ee,hk as Yt,ie as k,ij as Bt,je as F,ke as J,ki as Ft,kj as Y,kp as a,lc as gt,li as X,lj as V,mj as $,mn as le,mq as de,op as _e,pn as Et,pp as p,qn as pe,r as E,rh as Nt,ri as Jt,rl as Kt,rn as ue,sh as Ct,tb as mt,th as yt,tj as Ht,uj as U,vh as H,wj as R,wl as rt,xh as Dt,xj as z,xl as st,yh as Pt,yj as G,yl as nt,za as ut,zj as K,zk as Vt,zq as _}from"../chunk-KCNOE4DZ.js";function O(M,N="time"){return new h({this:M,to:A.build(N,{expressions:[new dt({this:o.number(6)})]})})}var fe,xe,Se,v,x=class extends(Se=i.Tokenizer,xe=[E],fe=[E],Se){static get BYTE_STRINGS(){return[["e'","'"],["E'","'"]]}static get ORIGINAL_KEYWORDS(){return{...i.Tokenizer.KEYWORDS,BSON:"jsonb",GEOGRAPHYPOINT:"geographypoint",TIMESTAMP:"timestamp",UTC_DATE:"utcDate",UTC_TIME:"utcTime",UTC_TIMESTAMP:"utcTimestamp",":>":"colonGt","!:>":"ncolonGt","::$":"dcolondollar","::%":"dcolonpercent","::?":"dcolonqmark",RECORD:"struct"}}};v=C(Se),c(v,10,"BYTE_STRINGS",xe,x),c(v,10,"ORIGINAL_KEYWORDS",fe,x),y(v,x),D(v,3,x);var Oe,Ie,Ne,Ce,ye,De,Pe,Le,Me,Ue,m,u=class extends(Ue=i.Parser,Me=[E],Le=[E],Pe=[E],De=[E],ye=[E],Ce=[E],Ne=[E],Ie=[E],Oe=[E],Ue){static get ID_VAR_TOKENS(){return new Set([...ut.ID_VAR_TOKENS,"sessionUser","currentCatalog","straightJoin"])}static get FUNCTIONS(){return{...i.Parser.FUNCTIONS,TO_DATE:f(it,{dialect:"singlestore"}),TO_TIMESTAMP:f(st,{dialect:"singlestore"}),TO_CHAR:f(j,{dialect:"singlestore"}),STR_TO_DATE:f(rt,{dialect:"mysql"}),DATE_FORMAT:f(d,{dialect:"mysql"}),TIME_FORMAT:t=>new d({this:O(s(t,0)),format:i.formatTime(s(t,1))}),HOUR:t=>new h({this:new d({this:O(s(t,0)),format:i.formatTime(o.string("%k"))}),to:A.build("int")}),MICROSECOND:t=>new h({this:new d({this:O(s(t,0)),format:i.formatTime(o.string("%f"))}),to:A.build("int")}),SECOND:t=>new h({this:new d({this:O(s(t,0)),format:i.formatTime(o.string("%s"))}),to:A.build("int")}),MINUTE:t=>new h({this:new d({this:O(s(t,0)),format:i.formatTime(o.string("%i"))}),to:A.build("int")}),MONTHNAME:t=>new d({this:s(t,0),format:i.formatTime(o.string("%M"))}),WEEKDAY:t=>new Rt({this:new bt({this:s(t,0)}).add(5).mod(7)}),UNIX_TIMESTAMP:t=>nt.fromArgList(t),FROM_UNIXTIME:f(at,{dialect:"mysql"}),TIME_BUCKET:t=>new H({this:s(t,0),expression:s(t,1),origin:s(t,2)}),BSON_EXTRACT_BSON:_(z),BSON_EXTRACT_STRING:_(G,{jsonType:"STRING"}),BSON_EXTRACT_DOUBLE:_(G,{jsonType:"DOUBLE"}),BSON_EXTRACT_BIGINT:_(G,{jsonType:"BIGINT"}),JSON_EXTRACT_JSON:_(U),JSON_EXTRACT_STRING:_(R,{jsonType:"STRING"}),JSON_EXTRACT_DOUBLE:_(R,{jsonType:"DOUBLE"}),JSON_EXTRACT_BIGINT:_(R,{jsonType:"BIGINT"}),JSON_ARRAY_CONTAINS_STRING:t=>new b({this:s(t,1),expression:s(t,0),jsonType:"STRING"}),JSON_ARRAY_CONTAINS_DOUBLE:t=>new b({this:s(t,1),expression:s(t,0),jsonType:"DOUBLE"}),JSON_ARRAY_CONTAINS_JSON:t=>new b({this:s(t,1),expression:s(t,0),jsonType:"JSON"}),JSON_KEYS:t=>new Bt({this:s(t,0),expressions:t.slice(1)}),JSON_PRETTY:t=>K.fromArgList(t),JSON_BUILD_ARRAY:t=>new V({expressions:t}),JSON_BUILD_OBJECT:t=>new Y({expressions:t}),DATE:t=>X.fromArgList(t),DAYNAME:t=>new d({this:s(t,0),format:i.formatTime(o.string("%W"))}),TIMESTAMPDIFF:t=>new vt({this:s(t,2),expression:s(t,1),unit:s(t,0)}),APPROX_COUNT_DISTINCT:t=>ot.fromArgList(t),APPROX_PERCENTILE:t=>new pt({this:s(t,0),quantile:s(t,1),errorTolerance:s(t,2)}),VARIANCE:t=>lt.fromArgList(t),INSTR:t=>B.fromArgList(t),REGEXP_MATCH:t=>new tt({this:s(t,0),expression:s(t,1),parameters:s(t,2)}),REGEXP_SUBSTR:t=>new Q({this:s(t,0),expression:s(t,1),position:s(t,2),occurrence:s(t,3),parameters:s(t,4)}),REDUCE:t=>new Z({initial:s(t,0),this:s(t,1),merge:s(t,2)})}}static get FUNCTION_PARSERS(){return{...i.Parser.FUNCTION_PARSERS,JSON_AGG:function(){return this.expression(Et,{this:this.parseTerm(),order:this.parseOrder()})}}}static get NO_PAREN_FUNCTIONS(){return{...i.Parser.NO_PAREN_FUNCTIONS,utcDate:Nt,utcTime:Ct,utcTimestamp:yt}}static get CAST_COLUMN_OPERATORS(){return new Set(["colonGt","ncolonGt"])}static get COLUMN_OPERATORS(){return(()=>{let e={...i.Parser.COLUMN_OPERATORS,colonGt:function(t,r){return this.expression(h,{this:t,to:r})},ncolonGt:function(t,r){return this.expression(ct,{this:t,to:r})},dcolon:function(t,r){return _(U)([t,o.string(r.name)])},dcolondollar:function(t,r){return _(R,{jsonType:"STRING"})([t,o.string(r.name)])},dcolonpercent:function(t,r){return _(R,{jsonType:"DOUBLE"})([t,o.string(r.name)])},dcolonqmark:function(t,r){return this.expression($,{this:t,path:r?.name,fromDcolonqmark:!0})}};return delete e.arrow,delete e.darrow,delete e.hashArrow,delete e.dhashArrow,delete e.placeholder,e})()}static get SHOW_PARSERS(){return{...i.Parser.SHOW_PARSERS,AGGREGATES:n("AGGREGATES"),"CDC EXTRACTOR POOL":n("CDC EXTRACTOR POOL"),"CREATE AGGREGATE":n("CREATE AGGREGATE",{target:!0}),"CREATE PIPELINE":n("CREATE PIPELINE",{target:!0}),"CREATE PROJECTION":n("CREATE PROJECTION",{target:!0}),"DATABASE STATUS":n("DATABASE STATUS"),"DISTRIBUTED_PLANCACHE STATUS":n("DISTRIBUTED_PLANCACHE STATUS"),"FULLTEXT SERVICE METRICS LOCAL":n("FULLTEXT SERVICE METRICS LOCAL"),"FULLTEXT SERVICE METRICS FOR NODE":n("FULLTEXT SERVICE METRICS FOR NODE",{target:!0}),"FULLTEXT SERVICE STATUS":n("FULLTEXT SERVICE STATUS"),FUNCTIONS:n("FUNCTIONS"),GROUPS:n("GROUPS"),"GROUPS FOR ROLE":n("GROUPS FOR ROLE",{target:!0}),"GROUPS FOR USER":n("GROUPS FOR USER",{target:!0}),INDEXES:n("INDEX",{target:"FROM"}),KEYS:n("INDEX",{target:"FROM"}),LINKS:n("LINKS",{target:"ON"}),"LOAD ERRORS":n("LOAD ERRORS"),"LOAD WARNINGS":n("LOAD WARNINGS"),PARTITIONS:n("PARTITIONS",{target:"ON"}),PIPELINES:n("PIPELINES"),PLAN:n("PLAN",{target:!0}),PLANCACHE:n("PLANCACHE"),PROCEDURES:n("PROCEDURES"),PROJECTIONS:n("PROJECTIONS",{target:"ON TABLE"}),"REPLICATION STATUS":n("REPLICATION STATUS"),REPRODUCTION:n("REPRODUCTION"),"RESOURCE POOLS":n("RESOURCE POOLS"),ROLES:n("ROLES"),"ROLES FOR USER":n("ROLES FOR USER",{target:!0}),"ROLES FOR GROUP":n("ROLES FOR GROUP",{target:!0}),"STATUS EXTENDED":n("STATUS EXTENDED"),USERS:n("USERS"),"USERS FOR ROLE":n("USERS FOR ROLE",{target:!0}),"USERS FOR GROUP":n("USERS FOR GROUP",{target:!0})}}static get ALTER_PARSERS(){return{...i.Parser.ALTER_PARSERS,CHANGE:function(){return this.expression(ht,{this:this.parseColumn(),to:this.parseColumn()})}}}parseVectorExpressions(e){let t=e[1].name.toUpperCase(),r=this.dialect._constructor.VECTOR_TYPE_ALIASES;return t in r&&(t=r[t]),[A.build(t,{dialect:this.dialect}),e[0]]}static get TABLE_ALIAS_TOKENS(){return new Set([...i.Parser.TABLE_ALIAS_TOKENS,"straightJoin"])}};m=C(Ue),c(m,10,"ID_VAR_TOKENS",Me,u),c(m,10,"FUNCTIONS",Le,u),c(m,10,"FUNCTION_PARSERS",Pe,u),c(m,10,"NO_PAREN_FUNCTIONS",De,u),c(m,10,"CAST_COLUMN_OPERATORS",ye,u),c(m,10,"COLUMN_OPERATORS",Ce,u),c(m,10,"SHOW_PARSERS",Ne,u),c(m,10,"ALTER_PARSERS",Ie,u),c(m,10,"TABLE_ALIAS_TOKENS",Oe,u),y(m,u),D(m,3,u);var Ge,be,we,qe,ve,ke,Fe,Je,je,g,l=class extends(je=i.Generator,Je=[E],Fe=[E],ke=[E],ve=[E],qe=[E],we=[E],be=[E],Ge=[E],je){static get AFTER_HAVING_MODIFIER_TRANSFORMS(){let e=new Map(super.AFTER_HAVING_MODIFIER_TRANSFORMS);return["cluster","distribute","sort"].forEach(t=>e.delete(t)),e}static get NULL_ORDERING_SUPPORTED(){return"supported"}static get STRUCT_DELIMITER(){return["(",")"]}static get SUPPORTED_JSON_PATH_PARTS(){return new Set([k,F,J])}static get ORIGINAL_TRANSFORMS(){let e=new Map([...i.Generator.TRANSFORMS,[it,function(t){return t.args.format?this.func("TO_DATE",[t.args.this,this.formatTime(t)]):this.func("DATE",[t.args.this])}],[st,function(t){return this.func("TO_TIMESTAMP",[t.args.this,this.formatTime(t)])}],[j,function(t){return this.func("TO_CHAR",[t.args.this,this.formatTime(t)])}],[rt,function(t){return this.func("STR_TO_DATE",[t.args.this,this.formatTime(t,i.INVERSE_TIME_MAPPING,i.INVERSE_TIME_TRIE)])}],[d,function(t){return this.func("DATE_FORMAT",[t.args.this,this.formatTime(t,i.INVERSE_TIME_MAPPING,i.INVERSE_TIME_TRIE)])}],[X,function(t){return a.call(this,t,"zone","expressions"),p("DATE").call(this,t)}],[h,function(t){return a.call(this,t,"format","action","default"),`${this.sql(t.args.this)} :> ${this.sql(t.args.to)}`}],[ct,function(t){return a.call(this,t,"format","action","default"),`${this.sql(t.args.this)} !:> ${this.sql(t.args.to)}`}],[ft,function(t){return this.sql(new h({this:t.args.this,to:A.build(t.args.to?.name)}))}],[nt,function(t){return a.call(this,t,"format"),p("UNIX_TIMESTAMP").call(this,t)}],[te,p("UNIX_TIMESTAMP")],[re,p("UNIX_TIMESTAMP")],[oe,p("UNIX_TIMESTAMP")],[ie,function(t){return this.func("FROM_UNIXTIME",[t.args.this,this.formatTime(t,i.INVERSE_TIME_MAPPING,i.INVERSE_TIME_TRIE)])}],[at,function(t){return a.call(this,t,"scale","zone","hours","minutes"),this.func("FROM_UNIXTIME",[t.args.this,this.formatTime(t,i.INVERSE_TIME_MAPPING,i.INVERSE_TIME_TRIE)])}],[ae,function(t){return`FROM_UNIXTIME(${this.sql(t.args.this)}) :> TEXT`}],[H,function(t){return a.call(this,t,"unit","zone"),this.func("TIME_BUCKET",[t.args.this,t.args.expression,t.args.origin])}],[ee,function(t){return this.sql(new h({this:t.args.this,to:A.build("date")}))}],[gt,function(t){return this.func("CONVERT_TZ",[t.args.this,t.args.zone,"'UTC'"])}],[Jt,function(t){return`STR_TO_DATE(${this.sql(t.args.this)}, ${I.DATEINT_FORMAT})`}],[Ft,function(t){return`(DATE_FORMAT(${this.sql(t.args.this)}, ${I.DATEINT_FORMAT}) :> INT)`}],[ne,function(t){return`(DATE_FORMAT(${this.sql(t.args.this)}, ${I.DATEINT_FORMAT}) :> INT)`}],[Qt,function(t){return a.call(this,t,"zone"),`${this.sql(t.args.this)} :> TIME`}],[Lt,Re(Ae("ADD"))],[Gt,function(t){return a.call(this,t,"zone"),w().call(this,t)}],[Mt,he("DATE","SUB")],[Ut,q],[Pt,function(t){return a.call(this,t,"zone"),w().call(this,t)}],[Dt,function(t){return a.call(this,t,"zone"),t.args.unit!==void 0?q.call(this,t):this.func("DATEDIFF",[t.args.this,t.args.expression])}],[se,function(t){return t.args.unit!==void 0?q.call(this,t):this.func("DATEDIFF",[t.args.this,t.args.expression])}],[kt,function(t){return a.call(this,t,"zone"),w().call(this,t)}],[Ot,function(t){return this.sql(O(new It({this:o.number(6)}),"datetime"))}],[U,function(t){return a.call(this,t,"onlyJsonTypes","expressions","variantExtract","jsonQuery","option","quote","onCondition","requiresJson"),P("JSON_EXTRACT_JSON").call(this,t)}],[z,P("BSON_EXTRACT_BSON")],[k,ge],[J,function(t){return this.jsonPathPart(t.args.this)}],[F,()=>""],[K,function(t){return a.call(this,t,"options","isJson"),p("JSON_PRETTY").call(this,t)}],[Et,function(t){return a.call(this,t,"nullHandling","returnType","strict"),this.func("JSON_AGG",[t.args.this],{suffix:`${this.sql(t.args.order)})`})}],[V,function(t){return a.call(this,t,"nullHandling","returnType","strict"),p("JSON_BUILD_ARRAY").call(this,t)}],[Ht,function(t){return this.func("BSON_MATCH_ANY_EXISTS",[t.args.this,t.args.path])}],[$,function(t){return t.args.fromDcolonqmark?`${this.sql(t.args.this)}::?${this.sql(t.args.path)}`:this.func("JSON_MATCH_ANY_EXISTS",[t.args.this,t.args.path])}],[Y,function(t){return a.call(this,t,"nullHandling","uniqueKeys","returnType","encoding"),p("JSON_BUILD_OBJECT").call(this,t)}],[wt,function(t){return`((${this.func("DAYOFWEEK",[t.args.this])} % 7) + 1)`}],[qt,p("DAY")],[ot,p("APPROX_COUNT_DISTINCT")],[ce,p("APPROX_COUNT_DISTINCT")],[Ee,me],[pe,function(t){return`MAX(ABS(${this.sql(t.args.this)}))`}],[ue,function(t){return`MIN(ABS(${this.sql(t.args.this)}))`}],[pt,function(t){return a.call(this,t,"accuracy","weight"),this.func("APPROX_PERCENTILE",[t.args.this,t.args.quantile,t.args.errorTolerance])}],[Te,p("VAR_SAMP")],[lt,p("VAR_POP")],[le,de],[xt,function(t){return this.sql(new Vt({this:t.args.this,expression:o.number(1).div(o.number(3))}))}],[et,function(t){return this.binary(t,"RLIKE")}],[zt,function(t){return this.func("LPAD",[o.string(""),new At({this:this.func("LENGTH",[t.args.this]),expression:t.args.times?.[0]}),t.args.this])}],[jt,function(t){return`(${this.sql(t.args.this)} RLIKE '^[\\x00-\\x7f]*$')`}],[Yt,function(t){return this.func("UNHEX",[this.func("MD5",[t.args.this])])}],[B,p("INSTR")],[tt,function(t){return a.call(this,t,"position","occurrence","group"),this.func("REGEXP_MATCH",[t.args.this,t.args.expression,t.args.parameters])}],[Q,function(t){return a.call(this,t,"group"),this.func("REGEXP_SUBSTR",[t.args.this,t.args.expression,t.args.position,t.args.occurrence,t.args.parameters])}],[Kt,function(t){return this.func("REGEXP_INSTR",[t.args.this,this.func("CONCAT",[o.string("^"),t.args.expression])])}],[Wt,function(t){return this.func("CONV",[t.args.this,t.args.expression,o.number(10)])}],[$t,function(t){return this.binary(new et({this:new W({this:t.args.this}),expression:new W({this:t.args.expression})}),"RLIKE")}],[Zt,function(t){return this.func("CONCAT",[this.func("SUBSTRING",[t.args.this,o.number(1),t.args.start?.sub(1)]),t.args.expression,this.func("SUBSTRING",[t.args.this,t.args.start?.add(t.args.length)])])}],[mt,function(t){return this.nationalSql(t,{prefix:""})}],[Z,function(t){return a.call(this,t,"finish"),this.func("REDUCE",[t.args.initial,t.args.this,t.args.merge])}],[Xt,function(t){return a.call(this,t,"modifier"),this.matchAgainstSql(t)}],[_t,function(t){return a.call(this,t,"history","terse","offset","startsWith","limit","from","scope","scopeKind","mutex","query","channel","log","types","privileges"),this.showSql(t)}],[Tt,function(t){return a.call(this,t,"style","kind","expressions","partition","format"),this.describeSql(t)}]]);return e.delete(R),e.delete(St),e}static get UNSUPPORTED_TYPES(){return new Set(["array","aggregatefunction","simpleaggregatefunction","bigserial","bpchar","datemultirange","daterange","dynamic","hllsketch","hstore","image","inet","int128","int256","int4multirange","int4range","int8multirange","int8range","interval","ipaddress","ipprefix","ipv4","ipv6","list","map","lowcardinality","money","multilinestring","name","nested","nothing","null","nummultirange","numrange","object","range","rowversion","serial","smallserial","smallmoney","super","timetz","timestampntz","timestampltz","timestamptz","timestampNs","tsmultirange","tsrange","tstzmultirange","tstzrange","uint128","uint256","union","unknown","user-defined","uuid","variant","xml","tdigest"])}static get TYPE_MAPPING(){return new Map([...i.Generator.TYPE_MAPPING,["bigdecimal","DECIMAL"],["bit","BOOLEAN"],["date32","DATE"],["datetime64","DATETIME"],["decimal32","DECIMAL"],["decimal64","DECIMAL"],["decimal128","DECIMAL"],["decimal256","DECIMAL"],["enum8","ENUM"],["enum16","ENUM"],["fixedstring","TEXT"],["geometry","GEOGRAPHY"],["point","GEOGRAPHYPOINT"],["ring","GEOGRAPHY"],["linestring","GEOGRAPHY"],["polygon","GEOGRAPHY"],["multipolygon","GEOGRAPHY"],["struct","RECORD"],["jsonb","BSON"],["timestamp","TIMESTAMP"],["timestampS","TIMESTAMP"],["timestampMs","TIMESTAMP(6)"]])}static get RESERVED_KEYWORDS(){return new Set(["abs","absolute","access","account","acos","action","add","adddate","addtime","admin","aes_decrypt","aes_encrypt","after","against","aggregate","aggregates","aggregator","aggregator_id","aggregator_plan_hash","aggregators","algorithm","all","also","alter","always","analyse","analyze","and","anti_join","any","any_value","approx_count_distinct","approx_count_distinct_accumulate","approx_count_distinct_combine","approx_count_distinct_estimate","approx_geography_intersects","approx_percentile","arghistory","arrange","arrangement","array","as","asc","ascii","asensitive","asin","asm","assertion","assignment","ast","asymmetric","async","at","atan","atan2","attach","attribute","authorization","auto","auto_increment","auto_reprovision","autostats","autostats_cardinality_mode","autostats_enabled","autostats_histogram_mode","autostats_sampling","availability","avg","avg_row_length","avro","azure","background","_background_threads_for_cleanup","backup","backup_history","backup_id","backward","batch","batches","batch_interval","_batch_size_limit","before","begin","between","bigint","bin","binary","_binary","bit","bit_and","bit_count","bit_or","bit_xor","blob","bool","boolean","bootstrap","both","_bt","btree","bucket_count","by","byte","byte_length","cache","call","call_for_pipeline","called","capture","cascade","cascaded","case","cast","catalog","ceil","ceiling","chain","change","char","character","characteristics","character_length","char_length","charset","check","checkpoint","_check_can_connect","_check_consistency","checksum","_checksum","class","clear","client","client_found_rows","close","cluster","clustered","cnf","coalesce","coercibility","collate","collation","collect","column","columnar","columns","columnstore","columnstore_segment_rows","comment","comments","commit","committed","_commit_log_tail","compact","compile","compressed","compression","concat","concat_ws","concurrent","concurrently","condition","configuration","connection","connection_id","connections","config","constraint","constraints","content","continue","_continue_replay","conv","conversion","convert","convert_tz","copy","_core","cos","cost","cot","count","create","credentials","cross","cube","csv","cume_dist","curdate","current","current_catalog","current_date","current_role","current_schema","current_security_groups","current_security_roles","current_time","current_timestamp","current_user","cursor","curtime","cycle","data","database","databases","date","date_add","datediff","date_format","date_sub","date_trunc","datetime","day","day_hour","day_microsecond","day_minute","dayname","dayofmonth","dayofweek","dayofyear","day_second","deallocate","dec","decimal","declare","decode","default","defaults","deferrable","deferred","defined","definer","degrees","delayed","delay_key_write","delete","delimiter","delimiters","dense_rank","desc","describe","detach","deterministic","dictionary","differential","directory","disable","discard","_disconnect","disk","distinct","distinctrow","distributed_joins","div","do","document","domain","dot_product","double","drop","_drop_profile","dual","dump","duplicate","dynamic","earliest","each","echo","election","else","elseif","elt","enable","enclosed","encoding","encrypted","end","engine","engines","enum","errors","escape","escaped","estimate","euclidean_distance","event","events","except","exclude","excluding","exclusive","execute","exists","exit","exp","explain","extended","extension","external","external_host","external_port","extract","extractor","extractors","extra_join","_failover","failed_login_attempts","failure","false","family","fault","fetch","field","fields","file","files","fill","first","first_value","fix_alter","fixed","float","float4","float8","floor","flush","following","for","force","force_compiled_mode","force_interpreter_mode","foreground","foreign","format","forward","found_rows","freeze","from","from_base64","from_days","from_unixtime","fs","_fsync","full","fulltext","function","functions","gc","gcs","get_format","_gc","_gcx","generate","geography","geography_area","geography_contains","geography_distance","geography_intersects","geography_latitude","geography_length","geography_longitude","geographypoint","geography_point","geography_within_distance","geometry","geometry_area","geometry_contains","geometry_distance","geometry_filter","geometry_intersects","geometry_length","geometrypoint","geometry_point","geometry_within_distance","geometry_x","geometry_y","global","_global_version_timestamp","grant","granted","grants","greatest","group","grouping","groups","group_concat","gzip","handle","handler","hard_cpu_limit_percentage","hash","has_temp_tables","having","hdfs","header","heartbeat_no_logging","hex","highlight","high_priority","hold","holding","host","hosts","hour","hour_microsecond","hour_minute","hour_second","identified","identity","if","ifnull","ignore","ifnull","ilike","immediate","immutable","implicit","import","in","including","increment","incremental","index","indexes","inet_aton","inet_ntoa","inet6_aton","inet6_ntoa","infile","inherit","inherits","_init_profile","init","initcap","initialize","initially","inject","inline","inner","inout","input","insensitive","insert","insert_method","instance","instead","instr","int","int1","int2","int3","int4","int8","integer","_internal_dynamic_typecast","interpreter_mode","intersect","interval","into","invoker","is","isnull","isolation","iterate","join","json","json_agg","json_array_contains_double","json_array_contains_json","json_array_contains_string","json_array_push_double","json_array_push_json","json_array_push_string","json_delete_key","json_extract_double","json_extract_json","json_extract_string","json_extract_bigint","json_get_type","json_length","json_set_double","json_set_json","json_set_string","json_splice_double","json_splice_json","json_splice_string","kafka","key","key_block_size","keys","kill","killall","label","lag","language","large","last","last_day","last_insert_id","last_value","lateral","latest","lc_collate","lc_ctype","lcase","lead","leading","leaf","leakproof","least","leave","leaves","left","length","level","license","like","limit","lines","listen","llvm","ln","load","loaddata_where","_load","local","localtime","localtimestamp","locate","location","lock","log","log10","log2","long","longblob","longtext","loop","lower","low_priority","lpad","_ls","ltrim","lz4","management","_management_thread","mapping","master","match","materialized","max","maxvalue","max_concurrency","max_errors","max_partitions_per_batch","max_queue_depth","max_retries_per_batch_partition","max_rows","mbc","md5","mpl","median","mediumblob","mediumint","mediumtext","member","memory","memory_percentage","_memsql_table_id_lookup","memsql","memsql_deserialize","memsql_imitating_kafka","memsql_serialize","merge","metadata","microsecond","middleint","min","min_rows","minus","minute","minute_microsecond","minute_second","minvalue","mod","mode","model","modifies","modify","month","monthname","months_between","move","mpl","names","named","namespace","national","natural","nchar","next","no","node","none","no_query_rewrite","noparam","not","nothing","notify","now","nowait","no_write_to_binlog","norely","nth_value","ntile","null","nullcols","nullif","nulls","numeric","nvarchar","object","octet_length","of","off","offline","offset","offsets","oids","on","online","only","open","operator","optimization","optimize","optimizer","optimizer_state","option","options","optionally","or","order","ordered_serialize","orphan","out","out_of_order","outer","outfile","over","overlaps","overlay","owned","owner","pack_keys","paired","parser","parquet","partial","partition","partition_id","partitioning","partitions","passing","password","password_lock_time","pause","_pause_replay","percent_rank","percentile_cont","percentile_disc","periodic","persisted","pi","pipeline","pipelines","pivot","placing","plan","plans","plancache","plugins","pool","pools","port","position","pow","power","preceding","precision","prepare","prepared","preserve","primary","prior","privileges","procedural","procedure","procedures","process","processlist","profile","profiles","program","promote","proxy","purge","quarter","queries","query","query_timeout","queue","quote","radians","rand","range","rank","read","_read","reads","real","reassign","rebalance","recheck","record","recursive","redundancy","redundant","ref","reference","references","refresh","regexp","reindex","relative","release","reload","rely","remote","remove","rename","repair","_repair_table","repeat","repeatable","_repl","_reprovisioning","replace","replica","replicate","replicating","replication","durability","require","resource","resource_pool","reset","restart","restore","restrict","result","_resurrect","retry","return","returning","returns","reverse","revoke","rg_pool","right","right_anti_join","right_semi_join","right_straight_join","rlike","role","roles","rollback","rollup","round","routine","row","row_count","row_format","row_number","rows","rowstore","rule","rpad","_rpc","rtrim","running","s3","safe","save","savepoint","scalar","schema","schemas","schema_binding","scroll","search","second","second_microsecond","sec_to_time","security","select","semi_join","_send_threads","sensitive","separator","sequence","sequences","serial","serializable","series","service_user","server","session","session_user","set","setof","security_lists_intersect","sha","sha1","sha2","shard","sharded","sharded_id","share","show","shutdown","sigmoid","sign","signal","similar","simple","site","signed","sin","skip","skipped_batches","sleep","_sleep","smallint","snapshot","_snapshot","_snapshots","soft_cpu_limit_percentage","some","soname","sparse","spatial","spatial_check_index","specific","split","sql","sql_big_result","sql_buffer_result","sql_cache","sql_calc_found_rows","sqlexception","sql_mode","sql_no_cache","sql_no_logging","sql_small_result","sqlstate","sqlwarning","sqrt","ssl","stable","standalone","start","starting","state","statement","statistics","stats","status","std","stddev","stddev_pop","stddev_samp","stdin","stdout","stop","storage","str_to_date","straight_join","strict","string","strip","subdate","substr","substring","substring_index","success","sum","super","symmetric","sync_snapshot","sync","_sync","_sync2","_sync_partitions","_sync_snapshot","synchronize","sysid","system","table","table_checksum","tables","tablespace","tags","tan","target_size","task","temp","template","temporary","temptable","_term_bump","terminate","terminated","test","text","then","time","timediff","time_bucket","time_format","timeout","timestamp","timestampadd","timestampdiff","timezone","time_to_sec","tinyblob","tinyint","tinytext","to","to_base64","to_char","to_date","to_days","to_json","to_number","to_seconds","to_timestamp","tracelogs","traditional","trailing","transform","transaction","_transactions_experimental","treat","trigger","triggers","trim","true","trunc","truncate","trusted","two_phase","_twopcid","type","types","ucase","unbounded","uncommitted","undefined","undo","unencrypted","unenforced","unhex","unhold","unicode","union","unique","_unittest","unix_timestamp","unknown","unlisten","_unload","unlock","unlogged","unpivot","unsigned","until","update","upgrade","upper","usage","use","user","users","using","utc_date","utc_time","utc_timestamp","_utf8","vacuum","valid","validate","validator","value","values","varbinary","varchar","varcharacter","variables","variadic","variance","var_pop","var_samp","varying","vector_sub","verbose","version","view","void","volatile","voting","wait","_wake","warnings","week","weekday","weekofyear","when","where","while","whitespace","window","with","without","within","_wm_heartbeat","work","workload","wrapper","write","xact_id","xor","year","year_month","yes","zerofill","zone"])}jsonExtractScalarSql(e){let t=e.args.jsonType,r=t===void 0?"JSON_EXTRACT_JSON":`JSON_EXTRACT_${t}`;return P(r).call(this,e)}jsonbExtractScalarSql(e){let t=e.args.jsonType,r=t===void 0?"BSON_EXTRACT_BSON":`BSON_EXTRACT_${t}`;return P(r).call(this,e)}jsonExtractArraySql(e){return this.unsupported("Arrays are not supported in SingleStore"),this.functionFallbackSql(e)}jsonValueSql(e){a.call(this,e,"onCondition");let t=new R({this:e.args.this,expression:e.args.path,jsonType:"STRING"}),r=e.args.returning;return r!==void 0&&(t=new h({this:t,to:r})),this.sql(t)}allSql(e){return this.unsupported("ALL subquery predicate is not supported in SingleStore"),super.allSql(e)}jsonArrayContainsSql(e){let t=e.text("jsonType").toUpperCase();return t?this.func(`JSON_ARRAY_CONTAINS_${t}`,[e.args.expression,e.args.this]):this.func("JSON_ARRAY_CONTAINS_JSON",[e.args.expression,this.func("TO_JSON",[e.args.this])])}dataTypeSql(e){if(a.call(this,e,"kind","values"),e.args.nested&&!e.isType("struct")&&this.unsupported(`Argument 'nested' is not supported for representation of '${e.args.this}' in SingleStore`),e.isType("varbinary")&&!e.args.expressions?.length)return"BLOB";if(e.isType(["decimal32","decimal64","decimal128","decimal256"])){let t=this.expressions(e,{flat:!0}),r;return e.isType("decimal32")?r="9":e.isType("decimal64")?r="18":e.isType("decimal128")?r="38":r="65",t?`DECIMAL(${r}, ${t[0]})`:`DECIMAL(${r})`}if(e.isType("vector")){let t=e.args.expressions||[];if(t.length===2){let r=this.sql(t[0]),S=this.dialect.constructor.INVERSE_VECTOR_TYPE_ALIASES;return r in S&&(r=S[r]),`VECTOR(${this.sql(t[1])}, ${r})`}}return super.dataTypeSql(e)}collateSql(e){return this.binary(e,":> LONGTEXT COLLATE")}currentDateSql(e){let t=e.args.this;if(t){if(t instanceof o&&t.args.this?.toLowerCase()==="utc")return this.func("UTC_DATE",[]);this.unsupported("CurrentDate with timezone is not supported in SingleStore")}return this.func("CURRENT_DATE",[])}currentTimeSql(e){let t=e.args.this;if(t){if(t instanceof o&&t.args.this?.toLowerCase()==="utc")return this.func("UTC_TIME",[]);if(t instanceof o&&t.isNumber)return this.func("CURRENT_TIME",[t]);this.unsupported("CurrentTime with timezone is not supported in SingleStore")}return this.func("CURRENT_TIME",[])}currentTimestampSql(e){let t=e.args.this;if(t){if(t instanceof o&&t.args.this?.toLowerCase()==="utc")return this.func("UTC_TIMESTAMP",[]);if(t instanceof o&&t.isNumber)return this.func("CURRENT_TIMESTAMP",[t]);this.unsupported("CurrentTimestamp with timezone is not supported in SingleStore")}return this.func("CURRENT_TIMESTAMP",[])}standardHashSql(e){let t=e.args.expression;if(t===void 0)return this.func("SHA",[e.args.this]);if(t instanceof o){let r=t.args.this?.toLowerCase();return r==="sha"?this.func("SHA",[e.args.this]):r==="md5"?this.func("MD5",[e.args.this]):(this.unsupported(`${t.args.this} hash method is not supported in SingleStore`),this.func("SHA",[e.args.this]))}return this.unsupported("STANDARD_HASH function is not supported in SingleStore"),this.func("SHA",[e.args.this])}truncateTableSql(e){a.call(this,e,"isDatabase","exists","cluster","identity","option","partition");let t=[];for(let r of e.args.expressions??[])t.push(`TRUNCATE ${this.sql(r)}`);return t.join("; ")}renameColumnSql(e){a.call(this,e,"exists");let t=this.sql(e,"this"),r=this.sql(e,"to");return`CHANGE ${t} ${r}`}alterColumnSql(e){a.call(this,e,"drop","comment","allowNull","visible","using");let t=super.alterColumnSql(e),r=this.sql(e,"collate"),S=r?` COLLATE ${r}`:"";return`${t}${S}`}computedColumnConstraintSql(e){let t=this.sql(e,"this"),r=e.args.notNull?" NOT NULL":"",S=this.sql(e,"dataType")||"AUTO";return`AS ${t} PERSISTED ${S}${r}`}};g=C(je),c(g,10,"AFTER_HAVING_MODIFIER_TRANSFORMS",Je,l),c(g,10,"NULL_ORDERING_SUPPORTED",Fe,l),c(g,10,"STRUCT_DELIMITER",ke,l),c(g,10,"SUPPORTED_JSON_PATH_PARTS",ve,l),c(g,10,"ORIGINAL_TRANSFORMS",qe,l),c(g,10,"UNSUPPORTED_TYPES",we,l),c(g,10,"TYPE_MAPPING",be,l),c(g,10,"RESERVED_KEYWORDS",Ge,l),y(g,l),D(g,3,l),l.SUPPORTS_DECODE_CASE=!1,l.TRY_SUPPORTED=!1,l.SUPPORTS_UESCAPE=!1,l.MATCH_AGAINST_TABLE_PREFIX="TABLE ",l.UNICODE_SUBSTITUTE=(e,t)=>String.fromCharCode(parseInt(t,16));var Be,He,Xe,Ye,L,T=class T extends(Ye=i,Xe=[E],He=[E],Be=[E],Ye){static get TIME_MAPPING(){return{D:"%u",DD:"%d",DY:"%a",HH:"%I",HH12:"%I",HH24:"%H",MI:"%M",MM:"%m",MON:"%b",MONTH:"%B",SS:"%S",RR:"%y",YY:"%y",YYYY:"%Y",FF6:"%f"}}static get VECTOR_TYPE_ALIASES(){return{I8:"TINYINT",I16:"SMALLINT",I32:"INT",I64:"BIGINT",F32:"FLOAT",F64:"DOUBLE"}}static get INVERSE_VECTOR_TYPE_ALIASES(){return Object.fromEntries(Object.entries(T.VECTOR_TYPE_ALIASES).map(([e,t])=>[t,e]))}};L=C(Ye),c(L,10,"TIME_MAPPING",Xe,T),c(L,10,"VECTOR_TYPE_ALIASES",He,T),c(L,10,"INVERSE_VECTOR_TYPE_ALIASES",Be,T),y(L,T),D(L,3,T),T.DIALECT_NAME="singlestore",T.SUPPORTS_ORDER_BY_ALL=!0,T.Tokenizer=x,T.Parser=u,T.Generator=l;var I=T;_e.register("singlestore",I);export{I as SingleStore};
2
+ //# sourceMappingURL=singlestore.js.map