@hdnax/sqlingo.js 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.repo.md +1 -2
  3. package/dist/chunk-2YNOERAO.cjs +2 -0
  4. package/dist/chunk-2YNOERAO.cjs.map +1 -0
  5. package/dist/chunk-2Z3O2CFM.cjs +19 -0
  6. package/dist/chunk-2Z3O2CFM.cjs.map +1 -0
  7. package/dist/chunk-4ZMKB6PV.cjs +2 -0
  8. package/dist/chunk-4ZMKB6PV.cjs.map +1 -0
  9. package/dist/chunk-53OWF4GG.js +2 -0
  10. package/dist/chunk-53OWF4GG.js.map +1 -0
  11. package/dist/chunk-C4CLTVOW.cjs +2 -0
  12. package/dist/chunk-C4CLTVOW.cjs.map +1 -0
  13. package/dist/chunk-DOKMTZYO.cjs +4 -0
  14. package/dist/chunk-DOKMTZYO.cjs.map +1 -0
  15. package/dist/chunk-FCGUTI7Y.js +2 -0
  16. package/dist/chunk-FCGUTI7Y.js.map +1 -0
  17. package/dist/chunk-IPCIXWCY.js +2 -0
  18. package/dist/chunk-IPCIXWCY.js.map +1 -0
  19. package/dist/chunk-KCNOE4DZ.js +19 -0
  20. package/dist/chunk-KCNOE4DZ.js.map +1 -0
  21. package/dist/chunk-NRJHX2GZ.js +2 -0
  22. package/dist/chunk-NRJHX2GZ.js.map +1 -0
  23. package/dist/chunk-O2J5RKBN.js +2 -0
  24. package/dist/chunk-O2J5RKBN.js.map +1 -0
  25. package/dist/chunk-PXUASP5I.js +2 -0
  26. package/dist/chunk-PXUASP5I.js.map +1 -0
  27. package/dist/chunk-R7C3ZHVK.cjs +2 -0
  28. package/dist/chunk-R7C3ZHVK.cjs.map +1 -0
  29. package/dist/chunk-UHWHUDLE.cjs +2 -0
  30. package/dist/chunk-UHWHUDLE.cjs.map +1 -0
  31. package/dist/chunk-WRNYJ54A.cjs +2 -0
  32. package/dist/chunk-WRNYJ54A.cjs.map +1 -0
  33. package/dist/chunk-XZQFOICX.cjs +3 -0
  34. package/dist/chunk-XZQFOICX.cjs.map +1 -0
  35. package/dist/chunk-YLOQRUXC.js +2 -0
  36. package/dist/chunk-YLOQRUXC.js.map +1 -0
  37. package/dist/chunk-YSS2WVCM.cjs +2 -0
  38. package/dist/chunk-YSS2WVCM.cjs.map +1 -0
  39. package/dist/chunk-Z5V6VOIN.js +3 -0
  40. package/dist/chunk-Z5V6VOIN.js.map +1 -0
  41. package/dist/chunk-ZBFGQPJR.js +4 -0
  42. package/dist/chunk-ZBFGQPJR.js.map +1 -0
  43. package/dist/dialects/athena.cjs +2 -0
  44. package/dist/dialects/athena.cjs.map +1 -0
  45. package/dist/dialects/athena.d.cts +66 -0
  46. package/dist/dialects/athena.d.ts +66 -0
  47. package/dist/dialects/athena.js +2 -0
  48. package/dist/dialects/athena.js.map +1 -0
  49. package/dist/dialects/bigquery.cjs +3 -0
  50. package/dist/dialects/bigquery.cjs.map +1 -0
  51. package/dist/dialects/bigquery.d.cts +651 -0
  52. package/dist/dialects/bigquery.d.ts +651 -0
  53. package/dist/dialects/bigquery.js +3 -0
  54. package/dist/dialects/bigquery.js.map +1 -0
  55. package/dist/dialects/clickhouse.cjs +2 -0
  56. package/dist/dialects/clickhouse.cjs.map +1 -0
  57. package/dist/dialects/clickhouse.d.cts +634 -0
  58. package/dist/dialects/clickhouse.d.ts +634 -0
  59. package/dist/dialects/clickhouse.js +2 -0
  60. package/dist/dialects/clickhouse.js.map +1 -0
  61. package/dist/dialects/databricks.cjs +2 -0
  62. package/dist/dialects/databricks.cjs.map +1 -0
  63. package/dist/dialects/databricks.d.cts +484 -0
  64. package/dist/dialects/databricks.d.ts +484 -0
  65. package/dist/dialects/databricks.js +2 -0
  66. package/dist/dialects/databricks.js.map +1 -0
  67. package/dist/dialects/doris.cjs +2 -0
  68. package/dist/dialects/doris.cjs.map +1 -0
  69. package/dist/dialects/doris.d.cts +484 -0
  70. package/dist/dialects/doris.d.ts +484 -0
  71. package/dist/dialects/doris.js +2 -0
  72. package/dist/dialects/doris.js.map +1 -0
  73. package/dist/dialects/dremio.cjs +2 -0
  74. package/dist/dialects/dremio.cjs.map +1 -0
  75. package/dist/dialects/dremio.d.cts +522 -0
  76. package/dist/dialects/dremio.d.ts +522 -0
  77. package/dist/dialects/dremio.js +2 -0
  78. package/dist/dialects/dremio.js.map +1 -0
  79. package/dist/dialects/drill.cjs +2 -0
  80. package/dist/dialects/drill.cjs.map +1 -0
  81. package/dist/dialects/drill.d.cts +512 -0
  82. package/dist/dialects/drill.d.ts +512 -0
  83. package/dist/dialects/drill.js +2 -0
  84. package/dist/dialects/drill.js.map +1 -0
  85. package/dist/dialects/druid.cjs +2 -0
  86. package/dist/dialects/druid.cjs.map +1 -0
  87. package/dist/dialects/druid.d.cts +17 -0
  88. package/dist/dialects/druid.d.ts +17 -0
  89. package/dist/dialects/druid.js +2 -0
  90. package/dist/dialects/druid.js.map +1 -0
  91. package/dist/dialects/duckdb.cjs +86 -0
  92. package/dist/dialects/duckdb.cjs.map +1 -0
  93. package/dist/dialects/duckdb.d.cts +756 -0
  94. package/dist/dialects/duckdb.d.ts +756 -0
  95. package/dist/dialects/duckdb.js +86 -0
  96. package/dist/dialects/duckdb.js.map +1 -0
  97. package/dist/dialects/dune.cjs +2 -0
  98. package/dist/dialects/dune.cjs.map +1 -0
  99. package/dist/dialects/dune.d.cts +21 -0
  100. package/dist/dialects/dune.d.ts +21 -0
  101. package/dist/dialects/dune.js +2 -0
  102. package/dist/dialects/dune.js.map +1 -0
  103. package/dist/dialects/exasol.cjs +2 -0
  104. package/dist/dialects/exasol.cjs.map +1 -0
  105. package/dist/dialects/exasol.d.cts +507 -0
  106. package/dist/dialects/exasol.d.ts +507 -0
  107. package/dist/dialects/exasol.js +2 -0
  108. package/dist/dialects/exasol.js.map +1 -0
  109. package/dist/dialects/fabric.cjs +2 -0
  110. package/dist/dialects/fabric.cjs.map +1 -0
  111. package/dist/dialects/fabric.d.cts +463 -0
  112. package/dist/dialects/fabric.d.ts +463 -0
  113. package/dist/dialects/fabric.js +2 -0
  114. package/dist/dialects/fabric.js.map +1 -0
  115. package/dist/dialects/hive.cjs +2 -0
  116. package/dist/dialects/hive.cjs.map +1 -0
  117. package/dist/dialects/hive.d.cts +585 -0
  118. package/dist/dialects/hive.d.ts +585 -0
  119. package/dist/dialects/hive.js +2 -0
  120. package/dist/dialects/hive.js.map +1 -0
  121. package/dist/dialects/materialize.cjs +2 -0
  122. package/dist/dialects/materialize.cjs.map +1 -0
  123. package/dist/dialects/materialize.d.cts +890 -0
  124. package/dist/dialects/materialize.d.ts +890 -0
  125. package/dist/dialects/materialize.js +2 -0
  126. package/dist/dialects/materialize.js.map +1 -0
  127. package/dist/dialects/mysql.cjs +2 -0
  128. package/dist/dialects/mysql.cjs.map +1 -0
  129. package/dist/dialects/mysql.d.cts +292 -0
  130. package/dist/dialects/mysql.d.ts +292 -0
  131. package/dist/dialects/mysql.js +2 -0
  132. package/dist/dialects/mysql.js.map +1 -0
  133. package/dist/dialects/oracle.cjs +2 -0
  134. package/dist/dialects/oracle.cjs.map +1 -0
  135. package/dist/dialects/oracle.d.cts +539 -0
  136. package/dist/dialects/oracle.d.ts +539 -0
  137. package/dist/dialects/oracle.js +2 -0
  138. package/dist/dialects/oracle.js.map +1 -0
  139. package/dist/dialects/postgres.cjs +2 -0
  140. package/dist/dialects/postgres.cjs.map +1 -0
  141. package/dist/dialects/postgres.d.cts +587 -0
  142. package/dist/dialects/postgres.d.ts +587 -0
  143. package/dist/dialects/postgres.js +2 -0
  144. package/dist/dialects/postgres.js.map +1 -0
  145. package/dist/dialects/presto.cjs +2 -0
  146. package/dist/dialects/presto.cjs.map +1 -0
  147. package/dist/dialects/presto.d.cts +173 -0
  148. package/dist/dialects/presto.d.ts +173 -0
  149. package/dist/dialects/presto.js +2 -0
  150. package/dist/dialects/presto.js.map +1 -0
  151. package/dist/dialects/prql.cjs +2 -0
  152. package/dist/dialects/prql.cjs.map +1 -0
  153. package/dist/dialects/prql.d.cts +496 -0
  154. package/dist/dialects/prql.d.ts +496 -0
  155. package/dist/dialects/prql.js +2 -0
  156. package/dist/dialects/prql.js.map +1 -0
  157. package/dist/dialects/redshift.cjs +2 -0
  158. package/dist/dialects/redshift.cjs.map +1 -0
  159. package/dist/dialects/redshift.d.cts +132 -0
  160. package/dist/dialects/redshift.d.ts +132 -0
  161. package/dist/dialects/redshift.js +2 -0
  162. package/dist/dialects/redshift.js.map +1 -0
  163. package/dist/dialects/risingwave.cjs +2 -0
  164. package/dist/dialects/risingwave.cjs.map +1 -0
  165. package/dist/dialects/risingwave.d.cts +478 -0
  166. package/dist/dialects/risingwave.d.ts +478 -0
  167. package/dist/dialects/risingwave.js +2 -0
  168. package/dist/dialects/risingwave.js.map +1 -0
  169. package/dist/dialects/singlestore.cjs +2 -0
  170. package/dist/dialects/singlestore.cjs.map +1 -0
  171. package/dist/dialects/singlestore.d.cts +73 -0
  172. package/dist/dialects/singlestore.d.ts +73 -0
  173. package/dist/dialects/singlestore.js +2 -0
  174. package/dist/dialects/singlestore.js.map +1 -0
  175. package/dist/dialects/snowflake.cjs +3 -0
  176. package/dist/dialects/snowflake.cjs.map +1 -0
  177. package/dist/dialects/snowflake.d.cts +320 -0
  178. package/dist/dialects/snowflake.d.ts +320 -0
  179. package/dist/dialects/snowflake.js +3 -0
  180. package/dist/dialects/snowflake.js.map +1 -0
  181. package/dist/dialects/solr.cjs +2 -0
  182. package/dist/dialects/solr.cjs.map +1 -0
  183. package/dist/dialects/solr.d.cts +458 -0
  184. package/dist/dialects/solr.d.ts +458 -0
  185. package/dist/dialects/solr.js +2 -0
  186. package/dist/dialects/solr.js.map +1 -0
  187. package/dist/dialects/spark.cjs +2 -0
  188. package/dist/dialects/spark.cjs.map +1 -0
  189. package/dist/dialects/spark.d.cts +484 -0
  190. package/dist/dialects/spark.d.ts +484 -0
  191. package/dist/dialects/spark.js +2 -0
  192. package/dist/dialects/spark.js.map +1 -0
  193. package/dist/dialects/spark2.cjs +2 -0
  194. package/dist/dialects/spark2.cjs.map +1 -0
  195. package/dist/dialects/spark2.d.cts +486 -0
  196. package/dist/dialects/spark2.d.ts +486 -0
  197. package/dist/dialects/spark2.js +2 -0
  198. package/dist/dialects/spark2.js.map +1 -0
  199. package/dist/dialects/sqlite.cjs +2 -0
  200. package/dist/dialects/sqlite.cjs.map +1 -0
  201. package/dist/dialects/sqlite.d.cts +510 -0
  202. package/dist/dialects/sqlite.d.ts +510 -0
  203. package/dist/dialects/sqlite.js +2 -0
  204. package/dist/dialects/sqlite.js.map +1 -0
  205. package/dist/dialects/starrocks.cjs +2 -0
  206. package/dist/dialects/starrocks.cjs.map +1 -0
  207. package/dist/dialects/starrocks.d.cts +518 -0
  208. package/dist/dialects/starrocks.d.ts +518 -0
  209. package/dist/dialects/starrocks.js +2 -0
  210. package/dist/dialects/starrocks.js.map +1 -0
  211. package/dist/dialects/tableau.cjs +2 -0
  212. package/dist/dialects/tableau.cjs.map +1 -0
  213. package/dist/dialects/tableau.d.cts +466 -0
  214. package/dist/dialects/tableau.d.ts +466 -0
  215. package/dist/dialects/tableau.js +2 -0
  216. package/dist/dialects/tableau.js.map +1 -0
  217. package/dist/dialects/teradata.cjs +2 -0
  218. package/dist/dialects/teradata.cjs.map +1 -0
  219. package/dist/dialects/teradata.d.cts +539 -0
  220. package/dist/dialects/teradata.d.ts +539 -0
  221. package/dist/dialects/teradata.js +2 -0
  222. package/dist/dialects/teradata.js.map +1 -0
  223. package/dist/dialects/trino.cjs +2 -0
  224. package/dist/dialects/trino.cjs.map +1 -0
  225. package/dist/dialects/trino.d.cts +465 -0
  226. package/dist/dialects/trino.d.ts +465 -0
  227. package/dist/dialects/trino.js +2 -0
  228. package/dist/dialects/trino.js.map +1 -0
  229. package/dist/dialects/tsql.cjs +2 -0
  230. package/dist/dialects/tsql.cjs.map +1 -0
  231. package/dist/dialects/tsql.d.cts +703 -0
  232. package/dist/dialects/tsql.d.ts +703 -0
  233. package/dist/dialects/tsql.js +2 -0
  234. package/dist/dialects/tsql.js.map +1 -0
  235. package/dist/index.cjs +5 -25
  236. package/dist/index.cjs.map +1 -1
  237. package/dist/index.d.cts +3 -14178
  238. package/dist/index.d.ts +3 -14178
  239. package/dist/index.js +5 -25
  240. package/dist/index.js.map +1 -1
  241. package/dist/tokens-VcMD09XM.d.cts +15805 -0
  242. package/dist/tokens-VcMD09XM.d.ts +15805 -0
  243. package/package.json +171 -5
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUHWHUDLEcjs = require('../chunk-UHWHUDLE.cjs');require('../chunk-YSS2WVCM.cjs');var _chunkXZQFOICXcjs = require('../chunk-XZQFOICX.cjs');require('../chunk-DOKMTZYO.cjs');require('../chunk-R7C3ZHVK.cjs');var _chunk2Z3O2CFMcjs = require('../chunk-2Z3O2CFM.cjs');function Ie(r){if(r.length<2)return!1;let[t,e,...i]=r,E=t.tokenType,m=t.text.toUpperCase(),Ee=e.tokenType,Te=e.text.toUpperCase();return["describe","show"].includes(E)||m==="MSCK REPAIR"?!0:["alter","create","drop"].includes(E)?["DATABASE","EXTERNAL","SCHEMA"].includes(Te)?!0:Ee==="view"?!1:i.every(ue=>ue.tokenType!=="select"):!1}function Se(r){if(r instanceof _chunk2Z3O2CFMcjs.Ja)if(r.args.kind==="table"){let t=r.args.properties;if(t&&t.find(_chunk2Z3O2CFMcjs.jd)||!(r.args.expression instanceof _chunk2Z3O2CFMcjs.Fa))return!0}else return r.args.kind!=="view";else if(r instanceof _chunk2Z3O2CFMcjs.ec||r instanceof _chunk2Z3O2CFMcjs.gb||r instanceof _chunk2Z3O2CFMcjs.La||r instanceof _chunk2Z3O2CFMcjs.Ta)return!(r instanceof _chunk2Z3O2CFMcjs.gb&&r.args.kind==="view");return!1}function ce(r){for(let t of r.args.expressions||[])if(t instanceof _chunk2Z3O2CFMcjs.Hb&&t.text("this").toLowerCase()==="table_type")return t.text("value").toLowerCase()==="iceberg";return!1}function fe(r){let t="external_location";return r.parent instanceof _chunk2Z3O2CFMcjs.Td&&ce(r.parent)&&(t="location"),`${t}=${this.sql(r,"this")}`}function Re(r){let t="partitioned_by";return r.parent instanceof _chunk2Z3O2CFMcjs.Td&&ce(r.parent)&&(t="partitioning"),`${t}=${this.sql(r,"this")}`}var g=class extends _chunkXZQFOICXcjs.c.Generator{alterSql(t){if(t instanceof _chunk2Z3O2CFMcjs.ec&&t.args.kind==="table"&&t.args.actions&&t.args.actions[0]instanceof _chunk2Z3O2CFMcjs.Za){let e=new (0, _chunk2Z3O2CFMcjs.Vb)({expressions:t.args.actions});t.setArgKey("actions",[e])}return super.alterSql(t)}};g.SUPPORTS_DECODE_CASE=!1;var W,B,k,O=class extends(B=_chunkUHWHUDLEcjs.a.Tokenizer,W=[_chunk2Z3O2CFMcjs.r],B){static get ORIGINAL_KEYWORDS(){return{..._chunkUHWHUDLEcjs.a.Tokenizer.ORIGINAL_KEYWORDS,UNLOAD:"command"}}};k=_chunk2Z3O2CFMcjs.a.call(void 0, B),_chunk2Z3O2CFMcjs.d.call(void 0, k,10,"ORIGINAL_KEYWORDS",W,O),_chunk2Z3O2CFMcjs.b.call(void 0, k,O),_chunk2Z3O2CFMcjs.c.call(void 0, k,3,O);var Y,X,$,J,q,N,c=class extends(q=_chunkUHWHUDLEcjs.a.Parser,J=[_chunk2Z3O2CFMcjs.r],$=[_chunk2Z3O2CFMcjs.r],X=[_chunk2Z3O2CFMcjs.r],Y=[_chunk2Z3O2CFMcjs.r],q){static get ID_VAR_TOKENS(){return new Set([..._chunk2Z3O2CFMcjs.za.ID_VAR_TOKENS,"sessionUser","currentCatalog","straightJoin"])}static get NO_PAREN_FUNCTIONS(){let e={..._chunk2Z3O2CFMcjs.za.NO_PAREN_FUNCTIONS};return delete e.localtime,delete e.localtimestamp,e}static get STATEMENT_PARSERS(){return{..._chunkUHWHUDLEcjs.a.Parser.STATEMENT_PARSERS,using:function(){return this.parseAsCommand(this.prev)}}}static get TABLE_ALIAS_TOKENS(){return new Set([..._chunk2Z3O2CFMcjs.za.TABLE_ALIAS_TOKENS,"straightJoin"])}};N=_chunk2Z3O2CFMcjs.a.call(void 0, q),_chunk2Z3O2CFMcjs.d.call(void 0, N,10,"ID_VAR_TOKENS",J,c),_chunk2Z3O2CFMcjs.d.call(void 0, N,10,"NO_PAREN_FUNCTIONS",$,c),_chunk2Z3O2CFMcjs.d.call(void 0, N,10,"STATEMENT_PARSERS",X,c),_chunk2Z3O2CFMcjs.d.call(void 0, N,10,"TABLE_ALIAS_TOKENS",Y,c),_chunk2Z3O2CFMcjs.b.call(void 0, N,c),_chunk2Z3O2CFMcjs.c.call(void 0, N,3,c);var Q,j,Z,y,I=class extends(Z=_chunkUHWHUDLEcjs.a.Generator,j=[_chunk2Z3O2CFMcjs.r],Q=[_chunk2Z3O2CFMcjs.r],Z){static get PROPERTIES_LOCATION(){let e=new Map(_chunkUHWHUDLEcjs.a.Generator.PROPERTIES_LOCATION);return e.set(_chunk2Z3O2CFMcjs.pd,"postWith"),e}static get ORIGINAL_TRANSFORMS(){let e=new Map(_chunkUHWHUDLEcjs.a.Generator.ORIGINAL_TRANSFORMS);return e.set(_chunk2Z3O2CFMcjs.ud,Re),e.set(_chunk2Z3O2CFMcjs.pd,fe),e}};y=_chunk2Z3O2CFMcjs.a.call(void 0, Z),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"PROPERTIES_LOCATION",j,I),_chunk2Z3O2CFMcjs.d.call(void 0, y,10,"ORIGINAL_TRANSFORMS",Q,I),_chunk2Z3O2CFMcjs.b.call(void 0, y,I),_chunk2Z3O2CFMcjs.c.call(void 0, y,3,I);var ee,te,re,ie,ne,se,oe,T,p= exports.AthenaTokenizer =class extends(oe=_chunk2Z3O2CFMcjs.Xq,se=[_chunk2Z3O2CFMcjs.r],ne=[_chunk2Z3O2CFMcjs.r],ie=[_chunk2Z3O2CFMcjs.r],re=[_chunk2Z3O2CFMcjs.r],te=[_chunk2Z3O2CFMcjs.r],ee=[_chunk2Z3O2CFMcjs.r],oe){constructor(e={}){let{hive:i=new _chunkXZQFOICXcjs.c,trino:E=new _chunkUHWHUDLEcjs.a}=e;super(e);this.hiveTokenizer=void 0;this.trinoTokenizer=void 0;this.hiveTokenizer=i.tokenizer({...e,dialect:i}),this.trinoTokenizer=new O({...e,dialect:E})}static get IDENTIFIERS(){return[..._chunkUHWHUDLEcjs.a.Tokenizer.IDENTIFIERS,..._chunkXZQFOICXcjs.c.Tokenizer.IDENTIFIERS]}static get STRING_ESCAPES(){return[..._chunkUHWHUDLEcjs.a.Tokenizer.STRING_ESCAPES,..._chunkXZQFOICXcjs.c.Tokenizer.STRING_ESCAPES]}static get HEX_STRINGS(){return[..._chunkUHWHUDLEcjs.a.Tokenizer.HEX_STRINGS,..._chunkXZQFOICXcjs.c.Tokenizer.HEX_STRINGS]}static get UNICODE_STRINGS(){return[..._chunkUHWHUDLEcjs.a.Tokenizer.UNICODE_STRINGS,..._chunkXZQFOICXcjs.c.Tokenizer.UNICODE_STRINGS]}static get NUMERIC_LITERALS(){return{..._chunkUHWHUDLEcjs.a.Tokenizer.NUMERIC_LITERALS,..._chunkXZQFOICXcjs.c.Tokenizer.NUMERIC_LITERALS}}static get ORIGINAL_KEYWORDS(){return{..._chunkXZQFOICXcjs.c.Tokenizer.ORIGINAL_KEYWORDS,..._chunkUHWHUDLEcjs.a.Tokenizer.ORIGINAL_KEYWORDS,UNLOAD:"command"}}tokenize(e){let i=super.tokenize(e);return Ie(i)?[new (0, _chunk2Z3O2CFMcjs.Wq)("hiveTokenStream","")].concat(this.hiveTokenizer.tokenize(e)):this.trinoTokenizer.tokenize(e)}};T=_chunk2Z3O2CFMcjs.a.call(void 0, oe),_chunk2Z3O2CFMcjs.d.call(void 0, T,10,"IDENTIFIERS",se,p),_chunk2Z3O2CFMcjs.d.call(void 0, T,10,"STRING_ESCAPES",ne,p),_chunk2Z3O2CFMcjs.d.call(void 0, T,10,"HEX_STRINGS",ie,p),_chunk2Z3O2CFMcjs.d.call(void 0, T,10,"UNICODE_STRINGS",re,p),_chunk2Z3O2CFMcjs.d.call(void 0, T,10,"NUMERIC_LITERALS",te,p),_chunk2Z3O2CFMcjs.d.call(void 0, T,10,"ORIGINAL_KEYWORDS",ee,p),_chunk2Z3O2CFMcjs.b.call(void 0, T,p),_chunk2Z3O2CFMcjs.c.call(void 0, T,3,p);var C=class extends _chunk2Z3O2CFMcjs.za{constructor(t={}){let{hive:e=new _chunkXZQFOICXcjs.c,trino:i=new _chunkUHWHUDLEcjs.a}=t;super(t),this.hiveParser=e.parser({...t,dialect:e}),this.trinoParser=new c({...t,dialect:i})}parse(t,e){return t&&t[0].tokenType==="hiveTokenStream"?this.hiveParser.parse(t.slice(1),e):this.trinoParser.parse(t,e)}parseIntoTypes(t,e,i){return e&&e[0].tokenType==="hiveTokenStream"?this.hiveParser.parseIntoTypes(t,e.slice(1),i):this.trinoParser.parseIntoTypes(t,e,i)}},ae,pe,L,S= exports.AthenaGenerator =class extends(pe=_chunk2Z3O2CFMcjs.lp,ae=[_chunk2Z3O2CFMcjs.r],pe){constructor(e={}){let{hive:i=new _chunkXZQFOICXcjs.c,trino:E=new _chunkUHWHUDLEcjs.a}=e;super(e);this.hiveGenerator=void 0;this.trinoGenerator=void 0;this.hiveGenerator=new g({...e,dialect:i}),this.trinoGenerator=new I({...e,dialect:E})}static get AFTER_HAVING_MODIFIER_TRANSFORMS(){let e=new Map(super.AFTER_HAVING_MODIFIER_TRANSFORMS);return["cluster","distribute","sort"].forEach(i=>e.delete(i)),e}generate(e,i={}){let{copy:E=!0}=i;return(Se(e)?this.hiveGenerator:this.trinoGenerator).generate(e,{copy:E})}};L=_chunk2Z3O2CFMcjs.a.call(void 0, pe),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"AFTER_HAVING_MODIFIER_TRANSFORMS",ae,S),_chunk2Z3O2CFMcjs.b.call(void 0, L,S),_chunk2Z3O2CFMcjs.c.call(void 0, L,3,S),S.SELECT_KINDS=[];var u=class extends _chunk2Z3O2CFMcjs.op{constructor(t={}){super(t),this.hive=new (0, _chunkXZQFOICXcjs.c)(t),this.trino=new (0, _chunkUHWHUDLEcjs.a)(t)}tokenize(t,e={}){return e.hive=this.hive,e.trino=this.trino,super.tokenize(t,e)}parse(t,e={}){return e.hive=this.hive,e.trino=this.trino,super.parse(t,e)}parseIntoTypes(t,e,i={}){return i.hive=this.hive,i.trino=this.trino,super.parseIntoTypes(t,e,i)}generate(t,e={}){return e.hive=this.hive,e.trino=this.trino,super.generate(t,e)}};u.DIALECT_NAME="athena",u.UNNEST_REQUIRES_CROSS_JOIN=!0,u.Tokenizer=p,u.Parser=C,u.Generator=S;_chunk2Z3O2CFMcjs.op.register("athena",u);exports.Athena = u; exports.AthenaGenerator = S; exports.AthenaParser = C; exports.AthenaTokenizer = p;
2
+ //# sourceMappingURL=athena.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/huydna/projects/sqlingo.js/dist/dialects/athena.cjs","../../src/dialects/athena.ts"],"names":["tokenizeAsHive","tokensList","first","second","rest","firstType","firstText","secondType","secondText","t","generateAsHive","expression","CreateExpr","properties","ExternalPropertyExpr","QueryExpr","AlterExpr","DropExpr","DescribeExpr","ShowExpr","isIcebergTable","p","PropertyExpr","locationPropertySql","e","propName","PropertiesExpr"],"mappings":"AAAA,kIAAyC,iCAA8B,yDAA0C,iCAA8B,iCAA8B,yDAAsN,SCwD1XA,EAAAA,CAAgBC,CAAAA,CAA8B,CACrD,EAAA,CAAIA,CAAAA,CAAW,MAAA,CAAS,CAAA,CACtB,MAAO,CAAA,CAAA,CAGT,GAAM,CACJC,CAAAA,CACAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAIH,CAAAA,CAEEI,CAAAA,CAAYH,CAAAA,CAAM,SAAA,CAClBI,CAAAA,CAAYJ,CAAAA,CAAM,IAAA,CAAK,WAAA,CAAY,CAAA,CACnCK,EAAAA,CAAaJ,CAAAA,CAAO,SAAA,CACpBK,EAAAA,CAAaL,CAAAA,CAAO,IAAA,CAAK,WAAA,CAAY,CAAA,CAE3C,MAAI,CAAA,UAAA,CAAA,MAGJ,CAAA,CAAE,QAAA,CAASE,CAAS,CAAA,EAAKC,CAAAA,GAAc,aAAA,CAC9B,CAAA,CAAA,CAGL,CAAA,OAAA,CAAA,QAAA,CAAA,MAIJ,CAAA,CAAE,QAAA,CAASD,CAAS,CAAA,CACd,CACF,UAAA,CACA,UAAA,CACA,QACF,CAAA,CAAE,QAAA,CAASG,EAAU,CAAA,CACZ,CAAA,CAAA,CAELD,EAAAA,GAAe,MAAA,CACV,CAAA,CAAA,CAGFH,CAAAA,CAAK,KAAA,CAAOK,EAAAA,EAAMA,EAAAA,CAAE,SAAA,GAAc,QAAgB,CAAA,CAGpD,CAAA,CACT,CAEA,SAASC,EAAAA,CAAgBC,CAAAA,CAAiC,CACxD,EAAA,CAAIA,EAAAA,WAAsBC,oBAAAA,CACxB,EAAA,CAAID,CAAAA,CAAW,IAAA,CAAK,IAAA,GAAS,OAAA,CAAsB,CACjD,IAAME,CAAAA,CAAaF,CAAAA,CAAW,IAAA,CAAK,UAAA,CAMnC,EAAA,CAJIE,CAAAA,EAAcA,CAAAA,CAAW,IAAA,CAAKC,oBAAoB,CAAA,EAIlD,CAAA,CAAEH,CAAAA,CAAW,IAAA,CAAK,WAAA,WAAsBI,oBAAAA,CAAAA,CAC1C,MAAO,CAAA,CAEX,CAAA,KACE,OAAOJ,CAAAA,CAAW,IAAA,CAAK,IAAA,GAAS,MAAA,CAAA,KAAA,EAAA,CAEzBA,EAAAA,WAAsBK,oBAAAA,EAAaL,EAAAA,WAAsBM,oBAAAA,EAAYN,EAAAA,WAAsBO,oBAAAA,EAAgBP,EAAAA,WAAsBQ,oBAAAA,CAC1I,MAAI,CAAA,CAAAR,EAAAA,WAAsBM,oBAAAA,EAAYN,CAAAA,CAAW,IAAA,CAAK,IAAA,GAAS,MAAA,CAAA,CAOjE,MAAO,CAAA,CACT,CAEA,SAASS,EAAAA,CAAgBP,CAAAA,CAAqC,CAC5D,GAAA,CAAA,IAAWQ,EAAAA,GAAKR,CAAAA,CAAW,IAAA,CAAK,WAAA,EAAe,CAC/C,CAAA,CACE,EAAA,CAAIQ,EAAAA,WAAaC,oBAAAA,EAAgBD,CAAAA,CAAE,IAAA,CAAK,MAAM,CAAA,CAAE,WAAA,CAAY,CAAA,GAAM,YAAA,CAChE,OAAOA,CAAAA,CAAE,IAAA,CAAK,OAAO,CAAA,CAAE,WAAA,CAAY,CAAA,GAAM,SAAA,CAI7C,MAAO,CAAA,CACT,CAEA,SAASE,EAAAA,CAAsCC,CAAAA,CAAiC,CAC9E,IAAIC,CAAAA,CAAW,mBAAA,CAEf,OAAID,CAAAA,CAAE,OAAA,WAAkBE,oBAAAA,EAClBN,EAAAA,CAAeI,CAAAA,CAAE,MAAM,CAAA,EAAA,CACzBC,CAAAA,CAAW,UAAA,CAAA,CAIR,CAAA,EAAA","file":"/home/huydna/projects/sqlingo.js/dist/dialects/athena.cjs","sourcesContent":[null,"import type {\n GeneratorOptions,\n} from '../generator';\nimport {\n Generator,\n} from '../generator';\nimport type {\n ParseOptions,\n} from '../parser';\nimport {\n Parser,\n} from '../parser';\nimport type {\n TokenizerOptions,\n} from '../tokens';\nimport {\n Tokenizer, Token, TokenType,\n} from '../tokens';\nimport type {\n Expression,\n} from '../expressions';\nimport {\n CreateExpr,\n ExternalPropertyExpr,\n QueryExpr,\n AlterExpr,\n DropExpr,\n DescribeExpr,\n ShowExpr,\n PropertiesExpr,\n PropertyExpr,\n LocationPropertyExpr,\n PartitionedByPropertyExpr,\n SchemaExpr,\n ColumnDefExpr,\n PropertiesLocation,\n CreateExprKind,\n DropExprKind,\n AlterExprKind,\n} from '../expressions';\nimport {\n cache,\n} from '../port_internals';\nimport type {\n DialectOptions,\n} from './dialect';\nimport {\n Dialect, Dialects,\n} from './dialect';\nimport {\n Hive,\n} from './hive';\nimport {\n Trino,\n} from './trino';\n\nfunction tokenizeAsHive (tokensList: Token[]): boolean {\n if (tokensList.length < 2) {\n return false;\n }\n\n const [\n first,\n second,\n ...rest\n ] = tokensList;\n\n const firstType = first.tokenType;\n const firstText = first.text.toUpperCase();\n const secondType = second.tokenType;\n const secondText = second.text.toUpperCase();\n\n if ([\n TokenType.DESCRIBE,\n TokenType.SHOW,\n ].includes(firstType) || firstText === 'MSCK REPAIR') {\n return true;\n }\n\n if ([\n TokenType.ALTER,\n TokenType.CREATE,\n TokenType.DROP,\n ].includes(firstType)) {\n if ([\n 'DATABASE',\n 'EXTERNAL',\n 'SCHEMA',\n ].includes(secondText)) {\n return true;\n }\n if (secondType === TokenType.VIEW) {\n return false;\n }\n\n return rest.every((t) => t.tokenType !== TokenType.SELECT);\n }\n\n return false;\n}\n\nfunction generateAsHive (expression: Expression): boolean {\n if (expression instanceof CreateExpr) {\n if (expression.args.kind === CreateExprKind.TABLE) {\n const properties = expression.args.properties;\n\n if (properties && properties.find(ExternalPropertyExpr)) {\n return true;\n }\n\n if (!(expression.args.expression instanceof QueryExpr)) {\n return true;\n }\n } else {\n return expression.args.kind !== CreateExprKind.VIEW;\n }\n } else if (expression instanceof AlterExpr || expression instanceof DropExpr || expression instanceof DescribeExpr || expression instanceof ShowExpr) {\n if (expression instanceof DropExpr && expression.args.kind === DropExprKind.VIEW) {\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction isIcebergTable (properties: PropertiesExpr): boolean {\n for (const p of properties.args.expressions || [\n ]) {\n if (p instanceof PropertyExpr && p.text('this').toLowerCase() === 'table_type') {\n return p.text('value').toLowerCase() === 'iceberg';\n }\n }\n\n return false;\n}\n\nfunction locationPropertySql (this: Generator, e: LocationPropertyExpr): string {\n let propName = 'external_location';\n\n if (e.parent instanceof PropertiesExpr) {\n if (isIcebergTable(e.parent)) {\n propName = 'location';\n }\n }\n\n return `${propName}=${this.sql(e, 'this')}`;\n}\n\nfunction partitionedByPropertySql (this: Generator, e: PartitionedByPropertyExpr): string {\n let propName = 'partitioned_by';\n\n if (e.parent instanceof PropertiesExpr) {\n if (isIcebergTable(e.parent)) {\n propName = 'partitioning';\n }\n }\n\n return `${propName}=${this.sql(e, 'this')}`;\n}\n\nclass HiveGeneratorExtension extends Hive.Generator {\n // port from _Dialect metaclass logic\n static SUPPORTS_DECODE_CASE = false;\n public alterSql (expression: AlterExpr): string {\n if (expression instanceof AlterExpr && expression.args.kind === AlterExprKind.TABLE) {\n if (expression.args.actions && expression.args.actions[0] instanceof ColumnDefExpr) {\n const newActions = new SchemaExpr({\n expressions: expression.args.actions,\n });\n expression.setArgKey('actions', [\n newActions,\n ]);\n }\n }\n\n return super.alterSql(expression);\n }\n}\n\nclass TrinoTokenizerExtension extends Trino.Tokenizer {\n @cache\n static get ORIGINAL_KEYWORDS (): Record<string, TokenType> {\n return {\n ...Trino.Tokenizer.ORIGINAL_KEYWORDS,\n UNLOAD: TokenType.COMMAND,\n };\n }\n}\n\nclass TrinoParserExtension extends Trino.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 // port from _Dialect metaclass logic\n @cache\n static get NO_PAREN_FUNCTIONS () {\n const noParenFunctions = {\n ...Parser.NO_PAREN_FUNCTIONS,\n };\n delete noParenFunctions[TokenType.LOCALTIME];\n delete noParenFunctions[TokenType.LOCALTIMESTAMP];\n return noParenFunctions;\n }\n\n @cache\n static get STATEMENT_PARSERS (): Record<string, (this: Parser) => Expression | undefined> {\n return {\n ...Trino.Parser.STATEMENT_PARSERS,\n [TokenType.USING]: function (this: Parser) {\n return this.parseAsCommand((this as TrinoParserExtension).prev);\n },\n };\n }\n\n // port from _Dialect metaclass logic\n @cache\n static get TABLE_ALIAS_TOKENS (): Set<TokenType> {\n return new Set([\n ...Parser.TABLE_ALIAS_TOKENS,\n TokenType.STRAIGHT_JOIN,\n ]);\n }\n}\nclass TrinoGeneratorExtension extends Trino.Generator {\n @cache\n static get PROPERTIES_LOCATION (): Map<typeof Expression, PropertiesLocation> {\n const m = new Map(Trino.Generator.PROPERTIES_LOCATION);\n m.set(LocationPropertyExpr, (PropertiesLocation).POST_WITH);\n return m;\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 m = new Map<typeof Expression, (this: Generator, e: any) => string>(Trino.Generator.ORIGINAL_TRANSFORMS);\n m.set(PartitionedByPropertyExpr, partitionedByPropertySql);\n m.set(LocationPropertyExpr, locationPropertySql);\n return m;\n }\n}\n\nexport class AthenaTokenizer extends Tokenizer {\n @cache\n static get IDENTIFIERS () {\n return [\n ...Trino.Tokenizer.IDENTIFIERS,\n ...Hive.Tokenizer.IDENTIFIERS,\n ];\n }\n\n @cache\n static get STRING_ESCAPES () {\n return [\n ...Trino.Tokenizer.STRING_ESCAPES,\n ...Hive.Tokenizer.STRING_ESCAPES,\n ];\n }\n\n @cache\n static get HEX_STRINGS () {\n return [\n ...Trino.Tokenizer.HEX_STRINGS,\n ...Hive.Tokenizer.HEX_STRINGS,\n ];\n }\n\n @cache\n static get UNICODE_STRINGS () {\n return [\n ...Trino.Tokenizer.UNICODE_STRINGS,\n ...Hive.Tokenizer.UNICODE_STRINGS,\n ];\n }\n\n @cache\n static get NUMERIC_LITERALS () {\n return {\n ...Trino.Tokenizer.NUMERIC_LITERALS,\n ...Hive.Tokenizer.NUMERIC_LITERALS,\n };\n }\n\n @cache\n static get ORIGINAL_KEYWORDS (): Record<string, TokenType> {\n return {\n ...Hive.Tokenizer.ORIGINAL_KEYWORDS,\n ...Trino.Tokenizer.ORIGINAL_KEYWORDS,\n UNLOAD: TokenType.COMMAND,\n };\n }\n\n private hiveTokenizer: InstanceType<typeof Hive.Tokenizer>;\n private trinoTokenizer: InstanceType<typeof Trino.Tokenizer>;\n\n constructor (options: TokenizerOptions & {\n hive?: Hive;\n trino?: Trino;\n } = {}) {\n const {\n hive = new Hive(),\n trino = new Trino(),\n } = options;\n\n super(options);\n this.hiveTokenizer = hive.tokenizer({\n ...options,\n dialect: hive,\n }) as InstanceType<typeof Hive.Tokenizer>;\n this.trinoTokenizer = new TrinoTokenizerExtension({\n ...options,\n dialect: trino,\n });\n }\n\n public tokenize (sql: string): Token[] {\n const tokensResult = super.tokenize(sql);\n\n if (tokenizeAsHive(tokensResult)) {\n return [\n new Token(TokenType.HIVE_TOKEN_STREAM, ''),\n ].concat(this.hiveTokenizer.tokenize(sql));\n }\n\n return this.trinoTokenizer.tokenize(sql);\n }\n}\n\nexport class AthenaParser extends Parser {\n private hiveParser: InstanceType<typeof Hive.Parser>;\n private trinoParser: InstanceType<typeof Trino.Parser>;\n\n constructor (options: ParseOptions & {\n hive?: Hive;\n trino?: Trino;\n } = {}) {\n const {\n hive = new Hive(),\n trino = new Trino(),\n } = options;\n super(options);\n this.hiveParser = hive.parser({\n ...options,\n dialect: hive,\n }) as InstanceType<typeof Hive.Parser>;\n this.trinoParser = new TrinoParserExtension({\n ...options,\n dialect: trino,\n });\n }\n\n public parse (rawTokens: Token[], sql?: string): (Expression | undefined)[] {\n if (rawTokens && rawTokens[0].tokenType === (TokenType).HIVE_TOKEN_STREAM) {\n return this.hiveParser.parse(rawTokens.slice(1), sql);\n }\n\n return this.trinoParser.parse(rawTokens, sql);\n }\n\n public parseIntoTypes (expressionTypes: string | string[], rawTokens: Token[], sql?: string): (Expression | undefined)[] {\n if (rawTokens && rawTokens[0].tokenType === (TokenType).HIVE_TOKEN_STREAM) {\n return this.hiveParser.parseIntoTypes(expressionTypes, rawTokens.slice(1), sql);\n }\n\n return this.trinoParser.parseIntoTypes(expressionTypes, rawTokens, sql);\n }\n}\n\nexport class AthenaGenerator extends 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 readonly SELECT_KINDS: string[] = [\n ];\n private hiveGenerator: InstanceType<typeof Hive.Generator>;\n private trinoGenerator: InstanceType<typeof Trino.Generator>;\n\n constructor (options: GeneratorOptions & {\n hive?: Hive;\n trino?: Trino;\n } = {}) {\n const {\n hive = new Hive(),\n trino = new Trino(),\n } = options;\n super(options);\n this.hiveGenerator = new HiveGeneratorExtension({\n ...options,\n dialect: hive,\n });\n this.trinoGenerator = new TrinoGeneratorExtension({\n ...options,\n dialect: trino,\n });\n }\n\n public generate (expression: Expression, options: {copy?: boolean} = {}): string {\n const {\n copy = true,\n } = options;\n const generatorInstance = generateAsHive(expression) ? this.hiveGenerator : this.trinoGenerator;\n return generatorInstance.generate(expression, {\n copy,\n });\n }\n}\n\nexport class Athena extends Dialect {\n static DIALECT_NAME = Dialects.ATHENA;\n static UNNEST_REQUIRES_CROSS_JOIN = true;\n\n private hive: Hive;\n private trino: Trino;\n\n constructor (options: DialectOptions = {}) {\n super(options);\n this.hive = new Hive(options);\n this.trino = new Trino(options);\n }\n\n public tokenize (sql: string, options: TokenizerOptions = {}): Token[] {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.tokenize(sql, options);\n }\n\n public parse (sql: string, options: ParseOptions = {}): (Expression | undefined)[] {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.parse(sql, options);\n }\n\n public parseIntoTypes (expressionType: string | string[], sql: string, options: ParseOptions = {}): (Expression | undefined)[] {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.parseIntoTypes(expressionType, sql, options);\n }\n\n public generate (expression: Expression, options: GeneratorOptions = {}): string {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.generate(expression, options);\n }\n\n static Tokenizer = AthenaTokenizer;\n static Parser = AthenaParser;\n static Generator = AthenaGenerator;\n}\n\nDialect.register(Dialects.ATHENA, Athena);\n"]}
@@ -0,0 +1,66 @@
1
+ import { c as Dialect, d as Dialects, Y as DialectOptions, Z as TokenizerOptions, T as Token, h as ParseOptions, E as Expression, f as GeneratorOptions, m as Tokenizer, _ as TokenPair, l as TokenType, i as Parser, G as Generator } from '../tokens-VcMD09XM.cjs';
2
+ import { Hive } from './hive.cjs';
3
+ import { Trino } from './trino.cjs';
4
+ import './presto.cjs';
5
+
6
+ declare class AthenaTokenizer extends Tokenizer {
7
+ static get IDENTIFIERS(): TokenPair[];
8
+ static get STRING_ESCAPES(): string[];
9
+ static get HEX_STRINGS(): TokenPair[];
10
+ static get UNICODE_STRINGS(): TokenPair[];
11
+ static get NUMERIC_LITERALS(): {
12
+ L: string;
13
+ S: string;
14
+ Y: string;
15
+ D: string;
16
+ F: string;
17
+ BD: string;
18
+ };
19
+ static get ORIGINAL_KEYWORDS(): Record<string, TokenType>;
20
+ private hiveTokenizer;
21
+ private trinoTokenizer;
22
+ constructor(options?: TokenizerOptions & {
23
+ hive?: Hive;
24
+ trino?: Trino;
25
+ });
26
+ tokenize(sql: string): Token[];
27
+ }
28
+ declare class AthenaParser extends Parser {
29
+ private hiveParser;
30
+ private trinoParser;
31
+ constructor(options?: ParseOptions & {
32
+ hive?: Hive;
33
+ trino?: Trino;
34
+ });
35
+ parse(rawTokens: Token[], sql?: string): (Expression | undefined)[];
36
+ parseIntoTypes(expressionTypes: string | string[], rawTokens: Token[], sql?: string): (Expression | undefined)[];
37
+ }
38
+ declare class AthenaGenerator extends Generator {
39
+ static get AFTER_HAVING_MODIFIER_TRANSFORMS(): Map<string, (this: Generator, e: Expression) => string>;
40
+ static readonly SELECT_KINDS: string[];
41
+ private hiveGenerator;
42
+ private trinoGenerator;
43
+ constructor(options?: GeneratorOptions & {
44
+ hive?: Hive;
45
+ trino?: Trino;
46
+ });
47
+ generate(expression: Expression, options?: {
48
+ copy?: boolean;
49
+ }): string;
50
+ }
51
+ declare class Athena extends Dialect {
52
+ static DIALECT_NAME: Dialects;
53
+ static UNNEST_REQUIRES_CROSS_JOIN: boolean;
54
+ private hive;
55
+ private trino;
56
+ constructor(options?: DialectOptions);
57
+ tokenize(sql: string, options?: TokenizerOptions): Token[];
58
+ parse(sql: string, options?: ParseOptions): (Expression | undefined)[];
59
+ parseIntoTypes(expressionType: string | string[], sql: string, options?: ParseOptions): (Expression | undefined)[];
60
+ generate(expression: Expression, options?: GeneratorOptions): string;
61
+ static Tokenizer: typeof AthenaTokenizer;
62
+ static Parser: typeof AthenaParser;
63
+ static Generator: typeof AthenaGenerator;
64
+ }
65
+
66
+ export { Athena, AthenaGenerator, AthenaParser, AthenaTokenizer };
@@ -0,0 +1,66 @@
1
+ import { c as Dialect, d as Dialects, Y as DialectOptions, Z as TokenizerOptions, T as Token, h as ParseOptions, E as Expression, f as GeneratorOptions, m as Tokenizer, _ as TokenPair, l as TokenType, i as Parser, G as Generator } from '../tokens-VcMD09XM.js';
2
+ import { Hive } from './hive.js';
3
+ import { Trino } from './trino.js';
4
+ import './presto.js';
5
+
6
+ declare class AthenaTokenizer extends Tokenizer {
7
+ static get IDENTIFIERS(): TokenPair[];
8
+ static get STRING_ESCAPES(): string[];
9
+ static get HEX_STRINGS(): TokenPair[];
10
+ static get UNICODE_STRINGS(): TokenPair[];
11
+ static get NUMERIC_LITERALS(): {
12
+ L: string;
13
+ S: string;
14
+ Y: string;
15
+ D: string;
16
+ F: string;
17
+ BD: string;
18
+ };
19
+ static get ORIGINAL_KEYWORDS(): Record<string, TokenType>;
20
+ private hiveTokenizer;
21
+ private trinoTokenizer;
22
+ constructor(options?: TokenizerOptions & {
23
+ hive?: Hive;
24
+ trino?: Trino;
25
+ });
26
+ tokenize(sql: string): Token[];
27
+ }
28
+ declare class AthenaParser extends Parser {
29
+ private hiveParser;
30
+ private trinoParser;
31
+ constructor(options?: ParseOptions & {
32
+ hive?: Hive;
33
+ trino?: Trino;
34
+ });
35
+ parse(rawTokens: Token[], sql?: string): (Expression | undefined)[];
36
+ parseIntoTypes(expressionTypes: string | string[], rawTokens: Token[], sql?: string): (Expression | undefined)[];
37
+ }
38
+ declare class AthenaGenerator extends Generator {
39
+ static get AFTER_HAVING_MODIFIER_TRANSFORMS(): Map<string, (this: Generator, e: Expression) => string>;
40
+ static readonly SELECT_KINDS: string[];
41
+ private hiveGenerator;
42
+ private trinoGenerator;
43
+ constructor(options?: GeneratorOptions & {
44
+ hive?: Hive;
45
+ trino?: Trino;
46
+ });
47
+ generate(expression: Expression, options?: {
48
+ copy?: boolean;
49
+ }): string;
50
+ }
51
+ declare class Athena extends Dialect {
52
+ static DIALECT_NAME: Dialects;
53
+ static UNNEST_REQUIRES_CROSS_JOIN: boolean;
54
+ private hive;
55
+ private trino;
56
+ constructor(options?: DialectOptions);
57
+ tokenize(sql: string, options?: TokenizerOptions): Token[];
58
+ parse(sql: string, options?: ParseOptions): (Expression | undefined)[];
59
+ parseIntoTypes(expressionType: string | string[], sql: string, options?: ParseOptions): (Expression | undefined)[];
60
+ generate(expression: Expression, options?: GeneratorOptions): string;
61
+ static Tokenizer: typeof AthenaTokenizer;
62
+ static Parser: typeof AthenaParser;
63
+ static Generator: typeof AthenaGenerator;
64
+ }
65
+
66
+ export { Athena, AthenaGenerator, AthenaParser, AthenaTokenizer };
@@ -0,0 +1,2 @@
1
+ import{a as n}from"../chunk-IPCIXWCY.js";import"../chunk-PXUASP5I.js";import{c as a}from"../chunk-Z5V6VOIN.js";import"../chunk-ZBFGQPJR.js";import"../chunk-O2J5RKBN.js";import{Fa as D,Hb as x,Ja as G,La as M,Ta as H,Td as v,Vb as b,Wq as F,Xq as V,Za as z,a as f,b as R,c as l,d as s,ec as d,gb as A,jd as K,lp as w,op as P,pd as h,r as o,ud as U,za as _}from"../chunk-KCNOE4DZ.js";function Ie(r){if(r.length<2)return!1;let[t,e,...i]=r,E=t.tokenType,m=t.text.toUpperCase(),Ee=e.tokenType,Te=e.text.toUpperCase();return["describe","show"].includes(E)||m==="MSCK REPAIR"?!0:["alter","create","drop"].includes(E)?["DATABASE","EXTERNAL","SCHEMA"].includes(Te)?!0:Ee==="view"?!1:i.every(ue=>ue.tokenType!=="select"):!1}function Se(r){if(r instanceof G)if(r.args.kind==="table"){let t=r.args.properties;if(t&&t.find(K)||!(r.args.expression instanceof D))return!0}else return r.args.kind!=="view";else if(r instanceof d||r instanceof A||r instanceof M||r instanceof H)return!(r instanceof A&&r.args.kind==="view");return!1}function ce(r){for(let t of r.args.expressions||[])if(t instanceof x&&t.text("this").toLowerCase()==="table_type")return t.text("value").toLowerCase()==="iceberg";return!1}function fe(r){let t="external_location";return r.parent instanceof v&&ce(r.parent)&&(t="location"),`${t}=${this.sql(r,"this")}`}function Re(r){let t="partitioned_by";return r.parent instanceof v&&ce(r.parent)&&(t="partitioning"),`${t}=${this.sql(r,"this")}`}var g=class extends a.Generator{alterSql(t){if(t instanceof d&&t.args.kind==="table"&&t.args.actions&&t.args.actions[0]instanceof z){let e=new b({expressions:t.args.actions});t.setArgKey("actions",[e])}return super.alterSql(t)}};g.SUPPORTS_DECODE_CASE=!1;var W,B,k,O=class extends(B=n.Tokenizer,W=[o],B){static get ORIGINAL_KEYWORDS(){return{...n.Tokenizer.ORIGINAL_KEYWORDS,UNLOAD:"command"}}};k=f(B),s(k,10,"ORIGINAL_KEYWORDS",W,O),R(k,O),l(k,3,O);var Y,X,$,J,q,N,c=class extends(q=n.Parser,J=[o],$=[o],X=[o],Y=[o],q){static get ID_VAR_TOKENS(){return new Set([..._.ID_VAR_TOKENS,"sessionUser","currentCatalog","straightJoin"])}static get NO_PAREN_FUNCTIONS(){let e={..._.NO_PAREN_FUNCTIONS};return delete e.localtime,delete e.localtimestamp,e}static get STATEMENT_PARSERS(){return{...n.Parser.STATEMENT_PARSERS,using:function(){return this.parseAsCommand(this.prev)}}}static get TABLE_ALIAS_TOKENS(){return new Set([..._.TABLE_ALIAS_TOKENS,"straightJoin"])}};N=f(q),s(N,10,"ID_VAR_TOKENS",J,c),s(N,10,"NO_PAREN_FUNCTIONS",$,c),s(N,10,"STATEMENT_PARSERS",X,c),s(N,10,"TABLE_ALIAS_TOKENS",Y,c),R(N,c),l(N,3,c);var Q,j,Z,y,I=class extends(Z=n.Generator,j=[o],Q=[o],Z){static get PROPERTIES_LOCATION(){let e=new Map(n.Generator.PROPERTIES_LOCATION);return e.set(h,"postWith"),e}static get ORIGINAL_TRANSFORMS(){let e=new Map(n.Generator.ORIGINAL_TRANSFORMS);return e.set(U,Re),e.set(h,fe),e}};y=f(Z),s(y,10,"PROPERTIES_LOCATION",j,I),s(y,10,"ORIGINAL_TRANSFORMS",Q,I),R(y,I),l(y,3,I);var ee,te,re,ie,ne,se,oe,T,p=class extends(oe=V,se=[o],ne=[o],ie=[o],re=[o],te=[o],ee=[o],oe){constructor(e={}){let{hive:i=new a,trino:E=new n}=e;super(e);this.hiveTokenizer=void 0;this.trinoTokenizer=void 0;this.hiveTokenizer=i.tokenizer({...e,dialect:i}),this.trinoTokenizer=new O({...e,dialect:E})}static get IDENTIFIERS(){return[...n.Tokenizer.IDENTIFIERS,...a.Tokenizer.IDENTIFIERS]}static get STRING_ESCAPES(){return[...n.Tokenizer.STRING_ESCAPES,...a.Tokenizer.STRING_ESCAPES]}static get HEX_STRINGS(){return[...n.Tokenizer.HEX_STRINGS,...a.Tokenizer.HEX_STRINGS]}static get UNICODE_STRINGS(){return[...n.Tokenizer.UNICODE_STRINGS,...a.Tokenizer.UNICODE_STRINGS]}static get NUMERIC_LITERALS(){return{...n.Tokenizer.NUMERIC_LITERALS,...a.Tokenizer.NUMERIC_LITERALS}}static get ORIGINAL_KEYWORDS(){return{...a.Tokenizer.ORIGINAL_KEYWORDS,...n.Tokenizer.ORIGINAL_KEYWORDS,UNLOAD:"command"}}tokenize(e){let i=super.tokenize(e);return Ie(i)?[new F("hiveTokenStream","")].concat(this.hiveTokenizer.tokenize(e)):this.trinoTokenizer.tokenize(e)}};T=f(oe),s(T,10,"IDENTIFIERS",se,p),s(T,10,"STRING_ESCAPES",ne,p),s(T,10,"HEX_STRINGS",ie,p),s(T,10,"UNICODE_STRINGS",re,p),s(T,10,"NUMERIC_LITERALS",te,p),s(T,10,"ORIGINAL_KEYWORDS",ee,p),R(T,p),l(T,3,p);var C=class extends _{constructor(t={}){let{hive:e=new a,trino:i=new n}=t;super(t),this.hiveParser=e.parser({...t,dialect:e}),this.trinoParser=new c({...t,dialect:i})}parse(t,e){return t&&t[0].tokenType==="hiveTokenStream"?this.hiveParser.parse(t.slice(1),e):this.trinoParser.parse(t,e)}parseIntoTypes(t,e,i){return e&&e[0].tokenType==="hiveTokenStream"?this.hiveParser.parseIntoTypes(t,e.slice(1),i):this.trinoParser.parseIntoTypes(t,e,i)}},ae,pe,L,S=class extends(pe=w,ae=[o],pe){constructor(e={}){let{hive:i=new a,trino:E=new n}=e;super(e);this.hiveGenerator=void 0;this.trinoGenerator=void 0;this.hiveGenerator=new g({...e,dialect:i}),this.trinoGenerator=new I({...e,dialect:E})}static get AFTER_HAVING_MODIFIER_TRANSFORMS(){let e=new Map(super.AFTER_HAVING_MODIFIER_TRANSFORMS);return["cluster","distribute","sort"].forEach(i=>e.delete(i)),e}generate(e,i={}){let{copy:E=!0}=i;return(Se(e)?this.hiveGenerator:this.trinoGenerator).generate(e,{copy:E})}};L=f(pe),s(L,10,"AFTER_HAVING_MODIFIER_TRANSFORMS",ae,S),R(L,S),l(L,3,S),S.SELECT_KINDS=[];var u=class extends P{constructor(t={}){super(t),this.hive=new a(t),this.trino=new n(t)}tokenize(t,e={}){return e.hive=this.hive,e.trino=this.trino,super.tokenize(t,e)}parse(t,e={}){return e.hive=this.hive,e.trino=this.trino,super.parse(t,e)}parseIntoTypes(t,e,i={}){return i.hive=this.hive,i.trino=this.trino,super.parseIntoTypes(t,e,i)}generate(t,e={}){return e.hive=this.hive,e.trino=this.trino,super.generate(t,e)}};u.DIALECT_NAME="athena",u.UNNEST_REQUIRES_CROSS_JOIN=!0,u.Tokenizer=p,u.Parser=C,u.Generator=S;P.register("athena",u);export{u as Athena,S as AthenaGenerator,C as AthenaParser,p as AthenaTokenizer};
2
+ //# sourceMappingURL=athena.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dialects/athena.ts"],"sourcesContent":["import type {\n GeneratorOptions,\n} from '../generator';\nimport {\n Generator,\n} from '../generator';\nimport type {\n ParseOptions,\n} from '../parser';\nimport {\n Parser,\n} from '../parser';\nimport type {\n TokenizerOptions,\n} from '../tokens';\nimport {\n Tokenizer, Token, TokenType,\n} from '../tokens';\nimport type {\n Expression,\n} from '../expressions';\nimport {\n CreateExpr,\n ExternalPropertyExpr,\n QueryExpr,\n AlterExpr,\n DropExpr,\n DescribeExpr,\n ShowExpr,\n PropertiesExpr,\n PropertyExpr,\n LocationPropertyExpr,\n PartitionedByPropertyExpr,\n SchemaExpr,\n ColumnDefExpr,\n PropertiesLocation,\n CreateExprKind,\n DropExprKind,\n AlterExprKind,\n} from '../expressions';\nimport {\n cache,\n} from '../port_internals';\nimport type {\n DialectOptions,\n} from './dialect';\nimport {\n Dialect, Dialects,\n} from './dialect';\nimport {\n Hive,\n} from './hive';\nimport {\n Trino,\n} from './trino';\n\nfunction tokenizeAsHive (tokensList: Token[]): boolean {\n if (tokensList.length < 2) {\n return false;\n }\n\n const [\n first,\n second,\n ...rest\n ] = tokensList;\n\n const firstType = first.tokenType;\n const firstText = first.text.toUpperCase();\n const secondType = second.tokenType;\n const secondText = second.text.toUpperCase();\n\n if ([\n TokenType.DESCRIBE,\n TokenType.SHOW,\n ].includes(firstType) || firstText === 'MSCK REPAIR') {\n return true;\n }\n\n if ([\n TokenType.ALTER,\n TokenType.CREATE,\n TokenType.DROP,\n ].includes(firstType)) {\n if ([\n 'DATABASE',\n 'EXTERNAL',\n 'SCHEMA',\n ].includes(secondText)) {\n return true;\n }\n if (secondType === TokenType.VIEW) {\n return false;\n }\n\n return rest.every((t) => t.tokenType !== TokenType.SELECT);\n }\n\n return false;\n}\n\nfunction generateAsHive (expression: Expression): boolean {\n if (expression instanceof CreateExpr) {\n if (expression.args.kind === CreateExprKind.TABLE) {\n const properties = expression.args.properties;\n\n if (properties && properties.find(ExternalPropertyExpr)) {\n return true;\n }\n\n if (!(expression.args.expression instanceof QueryExpr)) {\n return true;\n }\n } else {\n return expression.args.kind !== CreateExprKind.VIEW;\n }\n } else if (expression instanceof AlterExpr || expression instanceof DropExpr || expression instanceof DescribeExpr || expression instanceof ShowExpr) {\n if (expression instanceof DropExpr && expression.args.kind === DropExprKind.VIEW) {\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction isIcebergTable (properties: PropertiesExpr): boolean {\n for (const p of properties.args.expressions || [\n ]) {\n if (p instanceof PropertyExpr && p.text('this').toLowerCase() === 'table_type') {\n return p.text('value').toLowerCase() === 'iceberg';\n }\n }\n\n return false;\n}\n\nfunction locationPropertySql (this: Generator, e: LocationPropertyExpr): string {\n let propName = 'external_location';\n\n if (e.parent instanceof PropertiesExpr) {\n if (isIcebergTable(e.parent)) {\n propName = 'location';\n }\n }\n\n return `${propName}=${this.sql(e, 'this')}`;\n}\n\nfunction partitionedByPropertySql (this: Generator, e: PartitionedByPropertyExpr): string {\n let propName = 'partitioned_by';\n\n if (e.parent instanceof PropertiesExpr) {\n if (isIcebergTable(e.parent)) {\n propName = 'partitioning';\n }\n }\n\n return `${propName}=${this.sql(e, 'this')}`;\n}\n\nclass HiveGeneratorExtension extends Hive.Generator {\n // port from _Dialect metaclass logic\n static SUPPORTS_DECODE_CASE = false;\n public alterSql (expression: AlterExpr): string {\n if (expression instanceof AlterExpr && expression.args.kind === AlterExprKind.TABLE) {\n if (expression.args.actions && expression.args.actions[0] instanceof ColumnDefExpr) {\n const newActions = new SchemaExpr({\n expressions: expression.args.actions,\n });\n expression.setArgKey('actions', [\n newActions,\n ]);\n }\n }\n\n return super.alterSql(expression);\n }\n}\n\nclass TrinoTokenizerExtension extends Trino.Tokenizer {\n @cache\n static get ORIGINAL_KEYWORDS (): Record<string, TokenType> {\n return {\n ...Trino.Tokenizer.ORIGINAL_KEYWORDS,\n UNLOAD: TokenType.COMMAND,\n };\n }\n}\n\nclass TrinoParserExtension extends Trino.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 // port from _Dialect metaclass logic\n @cache\n static get NO_PAREN_FUNCTIONS () {\n const noParenFunctions = {\n ...Parser.NO_PAREN_FUNCTIONS,\n };\n delete noParenFunctions[TokenType.LOCALTIME];\n delete noParenFunctions[TokenType.LOCALTIMESTAMP];\n return noParenFunctions;\n }\n\n @cache\n static get STATEMENT_PARSERS (): Record<string, (this: Parser) => Expression | undefined> {\n return {\n ...Trino.Parser.STATEMENT_PARSERS,\n [TokenType.USING]: function (this: Parser) {\n return this.parseAsCommand((this as TrinoParserExtension).prev);\n },\n };\n }\n\n // port from _Dialect metaclass logic\n @cache\n static get TABLE_ALIAS_TOKENS (): Set<TokenType> {\n return new Set([\n ...Parser.TABLE_ALIAS_TOKENS,\n TokenType.STRAIGHT_JOIN,\n ]);\n }\n}\nclass TrinoGeneratorExtension extends Trino.Generator {\n @cache\n static get PROPERTIES_LOCATION (): Map<typeof Expression, PropertiesLocation> {\n const m = new Map(Trino.Generator.PROPERTIES_LOCATION);\n m.set(LocationPropertyExpr, (PropertiesLocation).POST_WITH);\n return m;\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 m = new Map<typeof Expression, (this: Generator, e: any) => string>(Trino.Generator.ORIGINAL_TRANSFORMS);\n m.set(PartitionedByPropertyExpr, partitionedByPropertySql);\n m.set(LocationPropertyExpr, locationPropertySql);\n return m;\n }\n}\n\nexport class AthenaTokenizer extends Tokenizer {\n @cache\n static get IDENTIFIERS () {\n return [\n ...Trino.Tokenizer.IDENTIFIERS,\n ...Hive.Tokenizer.IDENTIFIERS,\n ];\n }\n\n @cache\n static get STRING_ESCAPES () {\n return [\n ...Trino.Tokenizer.STRING_ESCAPES,\n ...Hive.Tokenizer.STRING_ESCAPES,\n ];\n }\n\n @cache\n static get HEX_STRINGS () {\n return [\n ...Trino.Tokenizer.HEX_STRINGS,\n ...Hive.Tokenizer.HEX_STRINGS,\n ];\n }\n\n @cache\n static get UNICODE_STRINGS () {\n return [\n ...Trino.Tokenizer.UNICODE_STRINGS,\n ...Hive.Tokenizer.UNICODE_STRINGS,\n ];\n }\n\n @cache\n static get NUMERIC_LITERALS () {\n return {\n ...Trino.Tokenizer.NUMERIC_LITERALS,\n ...Hive.Tokenizer.NUMERIC_LITERALS,\n };\n }\n\n @cache\n static get ORIGINAL_KEYWORDS (): Record<string, TokenType> {\n return {\n ...Hive.Tokenizer.ORIGINAL_KEYWORDS,\n ...Trino.Tokenizer.ORIGINAL_KEYWORDS,\n UNLOAD: TokenType.COMMAND,\n };\n }\n\n private hiveTokenizer: InstanceType<typeof Hive.Tokenizer>;\n private trinoTokenizer: InstanceType<typeof Trino.Tokenizer>;\n\n constructor (options: TokenizerOptions & {\n hive?: Hive;\n trino?: Trino;\n } = {}) {\n const {\n hive = new Hive(),\n trino = new Trino(),\n } = options;\n\n super(options);\n this.hiveTokenizer = hive.tokenizer({\n ...options,\n dialect: hive,\n }) as InstanceType<typeof Hive.Tokenizer>;\n this.trinoTokenizer = new TrinoTokenizerExtension({\n ...options,\n dialect: trino,\n });\n }\n\n public tokenize (sql: string): Token[] {\n const tokensResult = super.tokenize(sql);\n\n if (tokenizeAsHive(tokensResult)) {\n return [\n new Token(TokenType.HIVE_TOKEN_STREAM, ''),\n ].concat(this.hiveTokenizer.tokenize(sql));\n }\n\n return this.trinoTokenizer.tokenize(sql);\n }\n}\n\nexport class AthenaParser extends Parser {\n private hiveParser: InstanceType<typeof Hive.Parser>;\n private trinoParser: InstanceType<typeof Trino.Parser>;\n\n constructor (options: ParseOptions & {\n hive?: Hive;\n trino?: Trino;\n } = {}) {\n const {\n hive = new Hive(),\n trino = new Trino(),\n } = options;\n super(options);\n this.hiveParser = hive.parser({\n ...options,\n dialect: hive,\n }) as InstanceType<typeof Hive.Parser>;\n this.trinoParser = new TrinoParserExtension({\n ...options,\n dialect: trino,\n });\n }\n\n public parse (rawTokens: Token[], sql?: string): (Expression | undefined)[] {\n if (rawTokens && rawTokens[0].tokenType === (TokenType).HIVE_TOKEN_STREAM) {\n return this.hiveParser.parse(rawTokens.slice(1), sql);\n }\n\n return this.trinoParser.parse(rawTokens, sql);\n }\n\n public parseIntoTypes (expressionTypes: string | string[], rawTokens: Token[], sql?: string): (Expression | undefined)[] {\n if (rawTokens && rawTokens[0].tokenType === (TokenType).HIVE_TOKEN_STREAM) {\n return this.hiveParser.parseIntoTypes(expressionTypes, rawTokens.slice(1), sql);\n }\n\n return this.trinoParser.parseIntoTypes(expressionTypes, rawTokens, sql);\n }\n}\n\nexport class AthenaGenerator extends 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 readonly SELECT_KINDS: string[] = [\n ];\n private hiveGenerator: InstanceType<typeof Hive.Generator>;\n private trinoGenerator: InstanceType<typeof Trino.Generator>;\n\n constructor (options: GeneratorOptions & {\n hive?: Hive;\n trino?: Trino;\n } = {}) {\n const {\n hive = new Hive(),\n trino = new Trino(),\n } = options;\n super(options);\n this.hiveGenerator = new HiveGeneratorExtension({\n ...options,\n dialect: hive,\n });\n this.trinoGenerator = new TrinoGeneratorExtension({\n ...options,\n dialect: trino,\n });\n }\n\n public generate (expression: Expression, options: {copy?: boolean} = {}): string {\n const {\n copy = true,\n } = options;\n const generatorInstance = generateAsHive(expression) ? this.hiveGenerator : this.trinoGenerator;\n return generatorInstance.generate(expression, {\n copy,\n });\n }\n}\n\nexport class Athena extends Dialect {\n static DIALECT_NAME = Dialects.ATHENA;\n static UNNEST_REQUIRES_CROSS_JOIN = true;\n\n private hive: Hive;\n private trino: Trino;\n\n constructor (options: DialectOptions = {}) {\n super(options);\n this.hive = new Hive(options);\n this.trino = new Trino(options);\n }\n\n public tokenize (sql: string, options: TokenizerOptions = {}): Token[] {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.tokenize(sql, options);\n }\n\n public parse (sql: string, options: ParseOptions = {}): (Expression | undefined)[] {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.parse(sql, options);\n }\n\n public parseIntoTypes (expressionType: string | string[], sql: string, options: ParseOptions = {}): (Expression | undefined)[] {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.parseIntoTypes(expressionType, sql, options);\n }\n\n public generate (expression: Expression, options: GeneratorOptions = {}): string {\n options.hive = this.hive;\n options.trino = this.trino;\n return super.generate(expression, options);\n }\n\n static Tokenizer = AthenaTokenizer;\n static Parser = AthenaParser;\n static Generator = AthenaGenerator;\n}\n\nDialect.register(Dialects.ATHENA, Athena);\n"],"mappings":"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","names":["tokenizeAsHive","tokensList","first","second","rest","firstType","firstText","secondType","secondText","t","generateAsHive","expression","CreateExpr","properties","ExternalPropertyExpr","QueryExpr","AlterExpr","DropExpr","DescribeExpr","ShowExpr","isIcebergTable","p","PropertyExpr","locationPropertySql","e","propName","PropertiesExpr","partitionedByPropertySql","HiveGeneratorExtension","Hive","ColumnDefExpr","newActions","SchemaExpr","_ORIGINAL_KEYWORDS_dec","_a","_init","TrinoTokenizerExtension","Trino","cache","__decoratorStart","__decorateElement","__decoratorMetadata","__runInitializers","_TABLE_ALIAS_TOKENS_dec","_STATEMENT_PARSERS_dec","_NO_PAREN_FUNCTIONS_dec","_ID_VAR_TOKENS_dec","TrinoParserExtension","Parser","noParenFunctions","_ORIGINAL_TRANSFORMS_dec","_PROPERTIES_LOCATION_dec","TrinoGeneratorExtension","m","LocationPropertyExpr","PartitionedByPropertyExpr","_NUMERIC_LITERALS_dec","_UNICODE_STRINGS_dec","_HEX_STRINGS_dec","_STRING_ESCAPES_dec","_IDENTIFIERS_dec","AthenaTokenizer","Tokenizer","options","hive","trino","sql","tokensResult","Token","AthenaParser","rawTokens","expressionTypes","_AFTER_HAVING_MODIFIER_TRANSFORMS_dec","AthenaGenerator","Generator","modifiers","copy","Athena","Dialect","expressionType"]}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk2Z3O2CFMcjs = require('../chunk-2Z3O2CFM.cjs');function Qi(s){let n=s.args.this;if(!_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca))return s;let t=n.type;return this.setType(s,n.isType(_chunk2Z3O2CFMcjs.ac.INTEGER_TYPES)?"double":_chunk2Z3O2CFMcjs.n.call(void 0, t,_chunk2Z3O2CFMcjs.ac)?t:void 0),s}function ta(s){let n=s.args.this,t=s.args.expression;return _chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)&&_chunk2Z3O2CFMcjs.n.call(void 0, t,_chunk2Z3O2CFMcjs.Ca)&&n.isType(_chunk2Z3O2CFMcjs.ac.INTEGER_TYPES)&&t.isType(_chunk2Z3O2CFMcjs.ac.INTEGER_TYPES)?this.setType(s,"double"):si.call(this,s)}function si(s){let n=s.args.this,t=s.args.expression,e=_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)?n.type:void 0,r=_chunk2Z3O2CFMcjs.n.call(void 0, t,_chunk2Z3O2CFMcjs.Ca)?t.type:void 0;return this.setType(s,this.maybeCoerce(_chunk2Z3O2CFMcjs.n.call(void 0, e,_chunk2Z3O2CFMcjs.ac)?e:void 0,_chunk2Z3O2CFMcjs.n.call(void 0, r,_chunk2Z3O2CFMcjs.ac)?r:void 0)),s}function ei(s){let n=s.args.this,t=_chunk2Z3O2CFMcjs.n.call(void 0, n,_chunk2Z3O2CFMcjs.Ca)?n.type:void 0,e=_chunk2Z3O2CFMcjs.n.call(void 0, t,_chunk2Z3O2CFMcjs.ac)?t:new (0, _chunk2Z3O2CFMcjs.ac)({this:"unknown"}),r=new (0, _chunk2Z3O2CFMcjs.ac)({this:"struct",expressions:[e,new (0, _chunk2Z3O2CFMcjs.ac)({this:"bigint"})],nested:!0});return this.setType(s,new (0, _chunk2Z3O2CFMcjs.ac)({this:"array",expressions:[r],nested:!0})),s}function ea(s,n){return s.annotateByArgs(n,["expressions"]),n.isType(["binary","unknown"])||s.setType(n,"varchar"),n}function ra(s,n){let t=n.args.expressions;if(t&&t.length===1){let e=t[0];if(!_chunk2Z3O2CFMcjs.n.call(void 0, e,_chunk2Z3O2CFMcjs.Ca))return n;let r=e.unnest(),i;if(r instanceof _chunk2Z3O2CFMcjs.Wd){let a=_optionalChain([r, 'access', _2 => _2.meta, 'optionalAccess', _3 => _3.queryType]),T=_chunk2Z3O2CFMcjs.n.call(void 0, a,_chunk2Z3O2CFMcjs.ac)?a:void 0;if(T&&T.isType("struct")&&_optionalChain([T, 'access', _4 => _4.args, 'access', _5 => _5.expressions, 'optionalAccess', _6 => _6.length])===1){let u=T.args.expressions[0];if(_chunk2Z3O2CFMcjs.n.call(void 0, u,_chunk2Z3O2CFMcjs.Za)){let R=u.args.kind;_chunk2Z3O2CFMcjs.n.call(void 0, R,_chunk2Z3O2CFMcjs.ac)&&!R.isType("unknown")&&(i=R)}}}else if(r instanceof _chunk2Z3O2CFMcjs.Ud){let a=s.getSetopColumnTypes(r),T=r.left;if(a&&_chunk2Z3O2CFMcjs.n.call(void 0, T,_chunk2Z3O2CFMcjs.Fa)&&0<T.selects.length){let u=T.selects[0].aliasOrName;i=a[u]}}if(i&&!(i instanceof _chunk2Z3O2CFMcjs.ac&&i.isType("unknown")||i==="unknown")){let a=i instanceof _chunk2Z3O2CFMcjs.ac?i.copy():new (0, _chunk2Z3O2CFMcjs.ac)({this:i}),T=new (0, _chunk2Z3O2CFMcjs.ac)({this:"array",expressions:[a],nested:!0});return s.setType(n,T),n}}return s.annotateByArgs(n,["expressions"],{array:!0}),n}var ri,Ge;ri=[_chunk2Z3O2CFMcjs.r];var X=class{static get EXPRESSION_METADATA(){let n=new Map(_chunk2Z3O2CFMcjs.np.EXPRESSION_METADATA),t=(e,r)=>{for(let i of e)n.set(i,r)};return t([_chunk2Z3O2CFMcjs.Tm,_chunk2Z3O2CFMcjs.Ig,_chunk2Z3O2CFMcjs.wi,_chunk2Z3O2CFMcjs.Bi,_chunk2Z3O2CFMcjs.Sj,_chunk2Z3O2CFMcjs.Tj,_chunk2Z3O2CFMcjs.Uk,_chunk2Z3O2CFMcjs.Fl],{annotator:(e,r)=>Qi.call(e,r)}),t([_chunk2Z3O2CFMcjs.vm,_chunk2Z3O2CFMcjs.wm,_chunk2Z3O2CFMcjs.uh,_chunk2Z3O2CFMcjs.yh,_chunk2Z3O2CFMcjs.Dh,_chunk2Z3O2CFMcjs.Zm,_chunk2Z3O2CFMcjs.in,_chunk2Z3O2CFMcjs.pc,_chunk2Z3O2CFMcjs.uj,_chunk2Z3O2CFMcjs.Wm,_chunk2Z3O2CFMcjs.Lj,_chunk2Z3O2CFMcjs.Uj,_chunk2Z3O2CFMcjs.pk,_chunk2Z3O2CFMcjs.$m,_chunk2Z3O2CFMcjs.Pf,_chunk2Z3O2CFMcjs.yn,_chunk2Z3O2CFMcjs.Ik,_chunk2Z3O2CFMcjs.Kk,_chunk2Z3O2CFMcjs.Rk,_chunk2Z3O2CFMcjs.Sk,_chunk2Z3O2CFMcjs.qc,_chunk2Z3O2CFMcjs.Nj,_chunk2Z3O2CFMcjs.Mj,_chunk2Z3O2CFMcjs.Ze,_chunk2Z3O2CFMcjs.cl,_chunk2Z3O2CFMcjs.jl,_chunk2Z3O2CFMcjs.pl,_chunk2Z3O2CFMcjs.bi,_chunk2Z3O2CFMcjs.Jf,_chunk2Z3O2CFMcjs.Ml,_chunk2Z3O2CFMcjs.em],{annotator:(e,r)=>e.annotateByArgs(r,["this"])}),t([_chunk2Z3O2CFMcjs.om,_chunk2Z3O2CFMcjs.tf,_chunk2Z3O2CFMcjs.pm,_chunk2Z3O2CFMcjs.qm,_chunk2Z3O2CFMcjs.xf,_chunk2Z3O2CFMcjs.gn,_chunk2Z3O2CFMcjs.Ff,_chunk2Z3O2CFMcjs.Gm,_chunk2Z3O2CFMcjs.Uh,_chunk2Z3O2CFMcjs.Oj,_chunk2Z3O2CFMcjs.wn,_chunk2Z3O2CFMcjs.Cn,_chunk2Z3O2CFMcjs.Gk,_chunk2Z3O2CFMcjs.Ok,_chunk2Z3O2CFMcjs.Wk],{returns:"bigint"}),t([_chunk2Z3O2CFMcjs.Hc,_chunk2Z3O2CFMcjs.Xf,_chunk2Z3O2CFMcjs.hk,_chunk2Z3O2CFMcjs.fl,_chunk2Z3O2CFMcjs.gl,_chunk2Z3O2CFMcjs.hl,_chunk2Z3O2CFMcjs.il,_chunk2Z3O2CFMcjs.Ul],{returns:"binary"}),t([_chunk2Z3O2CFMcjs.Bf,_chunk2Z3O2CFMcjs.Sh],{returns:"boolean"}),t([_chunk2Z3O2CFMcjs.Jj,_chunk2Z3O2CFMcjs.dm],{returns:"datetime"}),t([_chunk2Z3O2CFMcjs.cf,_chunk2Z3O2CFMcjs.fm,_chunk2Z3O2CFMcjs.of,_chunk2Z3O2CFMcjs.ef,_chunk2Z3O2CFMcjs.Wn,_chunk2Z3O2CFMcjs.Vn,_chunk2Z3O2CFMcjs.gf,_chunk2Z3O2CFMcjs.hf,_chunk2Z3O2CFMcjs.Qn,_chunk2Z3O2CFMcjs.qf,_chunk2Z3O2CFMcjs.Hf,_chunk2Z3O2CFMcjs.Th,_chunk2Z3O2CFMcjs.zn,_chunk2Z3O2CFMcjs.Ck,_chunk2Z3O2CFMcjs.if,_chunk2Z3O2CFMcjs.jf],{returns:"double"}),t([_chunk2Z3O2CFMcjs.lj,_chunk2Z3O2CFMcjs.Aj,_chunk2Z3O2CFMcjs.Cj,_chunk2Z3O2CFMcjs.kj,_chunk2Z3O2CFMcjs.qj,_chunk2Z3O2CFMcjs.nj,_chunk2Z3O2CFMcjs.oj],{returns:"json"}),t([_chunk2Z3O2CFMcjs.Ij,_chunk2Z3O2CFMcjs.ii,_chunk2Z3O2CFMcjs.gi,_chunk2Z3O2CFMcjs.Rl],{returns:"time"}),t([_chunk2Z3O2CFMcjs.ag,_chunk2Z3O2CFMcjs.hj,_chunk2Z3O2CFMcjs.qk,_chunk2Z3O2CFMcjs.wj,_chunk2Z3O2CFMcjs.rj,_chunk2Z3O2CFMcjs.Vh,_chunk2Z3O2CFMcjs.jn,_chunk2Z3O2CFMcjs.nk,_chunk2Z3O2CFMcjs.rk,_chunk2Z3O2CFMcjs.el,_chunk2Z3O2CFMcjs.ll,_chunk2Z3O2CFMcjs.cm],{returns:"varchar"}),t([_chunk2Z3O2CFMcjs.xn,_chunk2Z3O2CFMcjs.$k,_chunk2Z3O2CFMcjs.al,_chunk2Z3O2CFMcjs.bl,_chunk2Z3O2CFMcjs.dl],{annotator:(e,r)=>si.call(e,r)}),t([_chunk2Z3O2CFMcjs.Bm,_chunk2Z3O2CFMcjs.vj,_chunk2Z3O2CFMcjs.Jk,_chunk2Z3O2CFMcjs.nl],{annotator:(e,r)=>e.annotateByArgs(r,["this"],{array:!0})}),_chunk2Z3O2CFMcjs.np.TIMESTAMP_EXPRESSIONS.forEach(e=>n.set(e,{returns:"timestamptz"})),n.set(_chunk2Z3O2CFMcjs.xm,{annotator:(e,r)=>ei.call(e,r)}),n.set(_chunk2Z3O2CFMcjs.Am,{annotator:(e,r)=>ei.call(e,r)}),n.set(_chunk2Z3O2CFMcjs.Mf,{annotator:ra}),n.set(_chunk2Z3O2CFMcjs.Lg,{annotator:ea}),n.set(_chunk2Z3O2CFMcjs.Eh,{returns:"date"}),n.set(_chunk2Z3O2CFMcjs.Ni,{annotator:(e,r)=>e.setType(r,_chunk2Z3O2CFMcjs.ac.build("ARRAY<TIMESTAMP>",{dialect:"bigquery"}))}),n.set(_chunk2Z3O2CFMcjs.zj,{annotator:(e,r)=>e.setType(r,r.args.toJson?"json":"varchar")}),n.set(_chunk2Z3O2CFMcjs.jj,{annotator:(e,r)=>e.setType(r,_chunk2Z3O2CFMcjs.ac.build("ARRAY<VARCHAR>",{dialect:"bigquery"}))}),n.set(_chunk2Z3O2CFMcjs.pj,{annotator:(e,r)=>e.setType(r,_chunk2Z3O2CFMcjs.ac.build("ARRAY<VARCHAR>",{dialect:"bigquery"}))}),n.set(_chunk2Z3O2CFMcjs.Vm,{annotator:(e,r)=>e.annotateByArgs(r,["this","default"])}),n.set(_chunk2Z3O2CFMcjs.Dj,{returns:"bigdecimal"}),n.set(_chunk2Z3O2CFMcjs.Ej,{returns:"decimal"}),n.set(_chunk2Z3O2CFMcjs.al,{annotator:(e,r)=>ta.call(e,r)}),n.set(_chunk2Z3O2CFMcjs.Rf,{annotator:(e,r)=>e.setType(r,_chunk2Z3O2CFMcjs.ac.build("ARRAY<BIGINT>",{dialect:"bigquery"}))}),n}};Ge=_chunk2Z3O2CFMcjs.a.call(void 0, null),_chunk2Z3O2CFMcjs.d.call(void 0, Ge,10,"EXPRESSION_METADATA",ri,X),_chunk2Z3O2CFMcjs.b.call(void 0, Ge,X),_chunk2Z3O2CFMcjs.c.call(void 0, Ge,3,X);var sa=["JSON_QUERY","JSON_VALUE","JSON_QUERY_ARRAY"],na=["year","month","day","hour","minute","second"];function ia(s){if(!s.findAncestor(_chunk2Z3O2CFMcjs.Wd))return this.valuesSql(s);let n=[],t=s.args.alias;for(let r of s.findAll(_chunk2Z3O2CFMcjs.Pb)){let a=_optionalChain([_chunk2Z3O2CFMcjs.q.call(void 0, t&&t.args.columns?t.args.columns:Array.from({length:(r.args.expressions||[]).length},(T,u)=>`_c${u}`),"string",_chunk2Z3O2CFMcjs.rb), 'optionalAccess', _7 => _7.map, 'call', _8 => _8((T,u)=>new (0, _chunk2Z3O2CFMcjs.Fe)({this:_chunk2Z3O2CFMcjs.eo.call(void 0, T),expression:(r.args.expressions||[])[u]}))]);n.push(new (0, _chunk2Z3O2CFMcjs.Cl)({expressions:a}))}let e=_optionalChain([t, 'optionalAccess', _9 => _9.args, 'access', _10 => _10.this])?new (0, _chunk2Z3O2CFMcjs.Ya)({columns:[t.args.this]}):void 0;return this.unnestSql(new (0, _chunk2Z3O2CFMcjs.Ai)({expressions:[_chunk2Z3O2CFMcjs.Fo.call(void 0, ...n)],alias:e}))}function aa(s){let n=s.args.this;return n instanceof _chunk2Z3O2CFMcjs.Vb?n=`${this.sql(n,"this")} <${this.expressions(n)}>`:n=this.sql(n),`RETURNS ${n}`}function oa(s){let n=s.find(_chunk2Z3O2CFMcjs.Cd);return s.args.kind==="function"&&n&&n.args.isTable&&(s.setArgKey("kind","TABLE FUNCTION"),(s.args.expression instanceof _chunk2Z3O2CFMcjs.Xd||s.args.expression instanceof _chunk2Z3O2CFMcjs.$c)&&s.setArgKey("expression",s.args.expression.args.this)),this.createSql(s)}function Ea(s){if(s instanceof _chunk2Z3O2CFMcjs.Wd){let n=s.args.group,t=s.args.order;if(n&&t){let e={};for(let r of s.selects){let i=_chunk2Z3O2CFMcjs.p.call(void 0, r.args.alias,_chunk2Z3O2CFMcjs.rb);r instanceof _chunk2Z3O2CFMcjs.hc&&i&&(e[_nullishCoalesce(_optionalChain([r, 'access', _11 => _11.args, 'access', _12 => _12.this, 'optionalAccess', _13 => _13.toString, 'call', _14 => _14()]), () => (""))]=i)}for(let r of n.args.expressions||[]){if(!(r instanceof _chunk2Z3O2CFMcjs.Ca)||r.isInteger)continue;let i=e[r.toString()];i&&r.replace(new (0, _chunk2Z3O2CFMcjs.Ic)({this:i}))}}}return s}function pa(s){if(!(s instanceof _chunk2Z3O2CFMcjs.Fc))return s;let n=s.args.alias;if(!n)return s;let t=n.getArgKey("columns");if(!Array.isArray(t)||!t.length)return s;let e=s.args.this;if(!(e instanceof _chunk2Z3O2CFMcjs.Fa))return s;if(e.isStar)return console.warn("Can't push down CTE column names for star queries. Run the query through the optimizer or use 'qualify' to expand the star projections first."),s;n.setArgKey("columns",void 0);let r=e.selects;for(let i=0;i<t.length&&!(r.length<=i);i++){let a=t[i],T=r[i],u=T;T instanceof _chunk2Z3O2CFMcjs.hc&&T.args.this&&(u=T.args.this),T.replace(new (0, _chunk2Z3O2CFMcjs.hc)({this:u,alias:_chunk2Z3O2CFMcjs.p.call(void 0, a,"string",_chunk2Z3O2CFMcjs.Ca)}))}return s}function Ta(s){let n=_chunk2Z3O2CFMcjs.Kp.call(void 0, _chunk2Z3O2CFMcjs.xl,{dialect:"bigquery"})([_chunk2Z3O2CFMcjs.ca.call(void 0, s,1),_chunk2Z3O2CFMcjs.ca.call(void 0, s,0)]);return n.setArgKey("zone",_chunk2Z3O2CFMcjs.ca.call(void 0, s,2)),n}function ca(s){let n=_chunk2Z3O2CFMcjs.Zh.fromArgList(s);return n.setArgKey("withTz",!0),n}function Aa(s){return(s.length===3?_chunk2Z3O2CFMcjs.hi:_chunk2Z3O2CFMcjs.li).fromArgList(s)}function Sa(s){let n=_chunk2Z3O2CFMcjs.ca.call(void 0, s,0);return n instanceof _chunk2Z3O2CFMcjs.hk?new (0, _chunk2Z3O2CFMcjs.gk)({this:n.args.this}):new (0, _chunk2Z3O2CFMcjs.jn)({this:n})}function ua(s){let n=new (0, _chunk2Z3O2CFMcjs.oj)({this:s[0]});for(let t of s.slice(1))if(t instanceof _chunk2Z3O2CFMcjs.Le){let e=_optionalChain([t, 'access', _15 => _15.args, 'access', _16 => _16.this, 'optionalAccess', _17 => _17.name, 'access', _18 => _18.toLowerCase, 'call', _19 => _19()]);e!==void 0&&n.setArgKey(e,t)}else n.setArgKey("expression",t);return n}function xa(s){let n=new (0, _chunk2Z3O2CFMcjs.Wd)({expressions:[new (0, _chunk2Z3O2CFMcjs.rb)({this:"1"})]}).from(new (0, _chunk2Z3O2CFMcjs.Ai)({expressions:_chunk2Z3O2CFMcjs.q.call(void 0, [s.left],_chunk2Z3O2CFMcjs.Ca)}).as("_unnest",{table:["_col"]})).where(new (0, _chunk2Z3O2CFMcjs.Ic)({this:"_col"}).eq(s.right)),t=new (0, _chunk2Z3O2CFMcjs.Xh)({this:n});return this.sql(t)}function la(s){return s.length===1?new (0, _chunk2Z3O2CFMcjs.Rl)({this:s[0]}):s.length===2?_chunk2Z3O2CFMcjs.Gl.fromArgList(s):_chunk2Z3O2CFMcjs.ii.fromArgList(s)}function fa(s){return s.length===1?_chunk2Z3O2CFMcjs.Ql.fromArgList(s):s.length===2?_chunk2Z3O2CFMcjs.zh.fromArgList(s):_chunk2Z3O2CFMcjs.dm.fromArgList(s)}function ha(s){let n=new (0, _chunk2Z3O2CFMcjs.xh)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, s,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, s,1),unit:_chunk2Z3O2CFMcjs.ca.call(void 0, s,2),datePartBoundary:!0}),t=n.args.unit;return t instanceof _chunk2Z3O2CFMcjs.Ub&&t.name.toUpperCase()==="WEEK"&&n.setArgKey("unit",new (0, _chunk2Z3O2CFMcjs.Ac)({this:new (0, _chunk2Z3O2CFMcjs.Ub)({this:"SUNDAY"})})),n}function Ye(s,n){return(t,{dialect:e})=>{let r=!1;try{r=(_nullishCoalesce(_optionalChain([(_optionalChain([t, 'access', _20 => _20[1], 'optionalAccess', _21 => _21.name])), 'access', _22 => _22.match, 'call', _23 => _23(/(^|[^\\])(\\\\)*\((?!\?)/g), 'optionalAccess', _24 => _24.length]), () => (0)))===1}catch (e2){r=!1}let i={this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),position:_chunk2Z3O2CFMcjs.ca.call(void 0, t,2),occurrence:_chunk2Z3O2CFMcjs.ca.call(void 0, t,3),group:r?_chunk2Z3O2CFMcjs.$c.number(1):n};return s===_chunk2Z3O2CFMcjs.Ik&&(i.nullIfPosOverflow=e._constructor.REGEXP_EXTRACT_POSITION_OVERFLOW_RETURNS_NULL),new s(i)}}function et(s){return(n,t)=>(n.length===1&&n.push(_chunk2Z3O2CFMcjs.$c.string("$")),_chunk2Z3O2CFMcjs.ua.call(void 0, s)(n,t))}var Ra=function(s){_chunk2Z3O2CFMcjs.kp.call(this,s,"insCost","delCost","subCost");let n=s.args.maxDist;return n&&(n=new (0, _chunk2Z3O2CFMcjs.Le)({this:new (0, _chunk2Z3O2CFMcjs.Ub)({this:"max_distance"}),expression:n})),this.func("EDIT_DISTANCE",[s.args.this,s.args.expression,n])};function Ia(s){let n=_chunk2Z3O2CFMcjs.ca.call(void 0, s,2);return new (0, _chunk2Z3O2CFMcjs.Rj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, s,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, s,1),maxDist:_chunk2Z3O2CFMcjs.p.call(void 0, _optionalChain([n, 'optionalAccess', _25 => _25.args, 'access', _26 => _26.expression]),_chunk2Z3O2CFMcjs.Ca)})}function Ke(s){let n=_optionalChain([s, 'access', _27 => _27.meta, 'optionalAccess', _28 => _28.name])||s._constructor.sqlName(),t=typeof n=="string"?n.toUpperCase():"",e=sa.includes(t);e&&(this.quoteJsonPathKeyUsingBrackets=!1);let r=_chunk2Z3O2CFMcjs.pp.call(void 0, t).call(this,s);return e&&(this.quoteJsonPathKeyUsingBrackets=!0),r}function Qt(s){return n=>{let t=_chunk2Z3O2CFMcjs.Kp.call(void 0, _chunk2Z3O2CFMcjs.Hl,{dialect:"bigquery"})([new s({this:n[1]}),n[0]]);return t.setArgKey("zone",n[2]),t}}function Na(s){let n=new (0, _chunk2Z3O2CFMcjs.Uj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, s,0)}),t=new (0, _chunk2Z3O2CFMcjs.Uj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, s,1)});return new (0, _chunk2Z3O2CFMcjs.Mg)({this:n,expression:t,jsonScope:_chunk2Z3O2CFMcjs.ca.call(void 0, s,2)})}function ni(s){let n=this.sql(s,"this"),t=s instanceof _chunk2Z3O2CFMcjs.wl?"DATE":"TIMESTAMP";if(s.args.safe){let r=this.dialect._constructor,i=this.formatTime(s,r.INVERSE_FORMAT_MAPPING,r.INVERSE_FORMAT_TRIE);return`SAFE_CAST(${n} AS ${t} FORMAT ${i})`}let e=this.formatTime(s);return this.func(`PARSE_${t}`,[e,n,s.getArgKey("zone")])}function _a(s){return _chunk2Z3O2CFMcjs.Pp.call(void 0, "DATE","ADD").call(this,_chunk2Z3O2CFMcjs.rq.call(void 0, s))}function da(s){_optionalChain([s, 'access', _29 => _29.args, 'access', _30 => _30.this, 'optionalAccess', _31 => _31.replace, 'call', _32 => _32(_chunk2Z3O2CFMcjs.mo.call(void 0, s.args.this,"timestamp".toUpperCase()))]),_optionalChain([s, 'access', _33 => _33.args, 'access', _34 => _34.expression, 'optionalAccess', _35 => _35.replace, 'call', _36 => _36(_chunk2Z3O2CFMcjs.mo.call(void 0, s.args.expression,"timestamp".toUpperCase()))]);let n=_chunk2Z3O2CFMcjs.vq.call(void 0, s);return this.func("DATE_DIFF",[s.args.this,s.args.expression,n])}function ma(s){let n=s.args.scale,t=s.args.this;if(!n||n.name===_chunk2Z3O2CFMcjs.Zl.SECONDS.name)return this.func("TIMESTAMP_SECONDS",[t]);if(n.name===_chunk2Z3O2CFMcjs.Zl.MILLIS.name)return this.func("TIMESTAMP_MILLIS",[t]);if(n.name===_chunk2Z3O2CFMcjs.Zl.MICROS.name)return this.func("TIMESTAMP_MICROS",[t]);let e=_chunk2Z3O2CFMcjs.no.call(void 0, "POW",_chunk2Z3O2CFMcjs.Ao.call(void 0, "10"),n),r=_chunk2Z3O2CFMcjs.mo.call(void 0, new (0, _chunk2Z3O2CFMcjs.Je)({this:t,expression:e}),"bigint");return this.func("TIMESTAMP_SECONDS",[r])}var ii,ai,oi,Ei,pi,Ti,ci,Ai,Si,C,m=class m extends(Si=_chunk2Z3O2CFMcjs.Xq,Ai=[_chunk2Z3O2CFMcjs.r],ci=[_chunk2Z3O2CFMcjs.r],Ti=[_chunk2Z3O2CFMcjs.r],pi=[_chunk2Z3O2CFMcjs.r],Ei=[_chunk2Z3O2CFMcjs.r],oi=[_chunk2Z3O2CFMcjs.r],ai=[_chunk2Z3O2CFMcjs.r],ii=[_chunk2Z3O2CFMcjs.r],Si){static get QUOTES(){return["'",'"','"""',"'''"]}static get COMMENTS(){return["--","#",["/*","*/"]]}static get IDENTIFIERS(){return["`"]}static get STRING_ESCAPES(){return["\\"]}static get HEX_STRINGS(){return[["0x",""],["0X",""]]}static get BYTE_STRINGS(){return["b","B"].flatMap(t=>m.QUOTES.map(e=>[t+e,e]))}static get RAW_STRINGS(){return["r","R"].flatMap(t=>m.QUOTES.map(e=>[t+e,e]))}static get ORIGINAL_KEYWORDS(){let t={..._chunk2Z3O2CFMcjs.Xq.KEYWORDS,"ANY TYPE":"variant",BEGIN:"command","BEGIN TRANSACTION":"begin",BYTEINT:"int",BYTES:"binary",CURRENT_DATETIME:"currentDatetime",DATETIME:"timestamp",DECLARE:"declare",ELSEIF:"command",EXCEPTION:"command",EXPORT:"export",FLOAT64:"double","FOR SYSTEM_TIME":"timestampSnapshot",LOOP:"command",MODEL:"model","NOT DETERMINISTIC":"volatile",RECORD:"struct",REPEAT:"command",TIMESTAMP:"timestamptz",WHILE:"command"};return delete t.DIV,delete t.VALUES,delete t["/*+"],t}};C=_chunk2Z3O2CFMcjs.a.call(void 0, Si),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"QUOTES",Ai,m),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"COMMENTS",ci,m),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"IDENTIFIERS",Ti,m),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"STRING_ESCAPES",pi,m),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"HEX_STRINGS",Ei,m),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"BYTE_STRINGS",oi,m),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"RAW_STRINGS",ai,m),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"ORIGINAL_KEYWORDS",ii,m),_chunk2Z3O2CFMcjs.b.call(void 0, C,m),_chunk2Z3O2CFMcjs.c.call(void 0, C,3,m),m.NESTED_COMMENTS=!1;var Je=m,ui,xi,li,fi,hi,Ri,Ii,Ni,_i,di,mi,Oi,gi,Pi,Mi,Di,I,f= exports.BigQueryParser =class extends(Di=_chunk2Z3O2CFMcjs.za,Mi=[_chunk2Z3O2CFMcjs.r],Pi=[_chunk2Z3O2CFMcjs.r],gi=[_chunk2Z3O2CFMcjs.r],Oi=[_chunk2Z3O2CFMcjs.r],mi=[_chunk2Z3O2CFMcjs.r],di=[_chunk2Z3O2CFMcjs.r],_i=[_chunk2Z3O2CFMcjs.r],Ni=[_chunk2Z3O2CFMcjs.r],Ii=[_chunk2Z3O2CFMcjs.r],Ri=[_chunk2Z3O2CFMcjs.r],hi=[_chunk2Z3O2CFMcjs.r],fi=[_chunk2Z3O2CFMcjs.r],li=[_chunk2Z3O2CFMcjs.r],xi=[_chunk2Z3O2CFMcjs.r],ui=[_chunk2Z3O2CFMcjs.r],Di){static get ID_VAR_TOKENS(){return(()=>{let t=new Set([..._chunk2Z3O2CFMcjs.za.ID_VAR_TOKENS,"currentCatalog","grant","straightJoin"]);return t.delete("asc"),t.delete("desc"),t})()}static get NO_PAREN_FUNCTIONS(){let t={..._chunk2Z3O2CFMcjs.za.NO_PAREN_FUNCTIONS,currentDatetime:_chunk2Z3O2CFMcjs.ah};return delete t.localtime,delete t.localtimestamp,t}static get ALIAS_TOKENS(){return(()=>{let t=new Set([..._chunk2Z3O2CFMcjs.za.ALIAS_TOKENS,"grant"]);return t.delete("asc"),t.delete("desc"),t})()}static get TABLE_ALIAS_TOKENS(){return(()=>{let t=new Set([..._chunk2Z3O2CFMcjs.za.TABLE_ALIAS_TOKENS,"grant","straightJoin"]);return t.delete("asc"),t.delete("desc"),t})()}static get COMMENT_TABLE_ALIAS_TOKENS(){return(()=>{let t=new Set([..._chunk2Z3O2CFMcjs.za.COMMENT_TABLE_ALIAS_TOKENS,"grant"]);return t.delete("asc"),t.delete("desc"),t})()}static get UPDATE_ALIAS_TOKENS(){return(()=>{let t=new Set([..._chunk2Z3O2CFMcjs.za.UPDATE_ALIAS_TOKENS,"grant"]);return t.delete("asc"),t.delete("desc"),t})()}static get NESTED_TYPE_TOKENS(){return new Set([..._chunk2Z3O2CFMcjs.za.NESTED_TYPE_TOKENS,"table"])}static get PROPERTY_PARSERS(){return{..._chunk2Z3O2CFMcjs.za.PROPERTY_PARSERS,"NOT DETERMINISTIC":function(){return this.expression(_chunk2Z3O2CFMcjs.Id,{this:_chunk2Z3O2CFMcjs.$c.string("VOLATILE")})},OPTIONS:function(){return this.parseWithProperty()}}}static get CONSTRAINT_PARSERS(){return{..._chunk2Z3O2CFMcjs.za.CONSTRAINT_PARSERS,OPTIONS:function(){return this.expression(_chunk2Z3O2CFMcjs.Td,{expressions:this.parseWithProperty()})}}}static get RANGE_PARSERS(){return(()=>{let t={..._chunk2Z3O2CFMcjs.za.RANGE_PARSERS};return delete t.overlaps,t})()}static get DASHED_TABLE_PART_FOLLOW_TOKENS(){return new Set(["dot","lParen","rParen"])}static get STATEMENT_PARSERS(){return{..._chunk2Z3O2CFMcjs.za.STATEMENT_PARSERS,else:function(){return this.parseAsCommand(this.prev)},end:function(){return this.parseAsCommand(this.prev)},for:function(){return this.parseForIn()},export:function(){return this.parseExportData()},declare:function(){return this.parseDeclare()}}}static get BRACKET_OFFSETS(){return{OFFSET:[0,!1],ORDINAL:[1,!1],SAFE_OFFSET:[0,!0],SAFE_ORDINAL:[1,!0]}}static get FUNCTIONS(){return(()=>{let t={..._chunk2Z3O2CFMcjs.za.FUNCTIONS,APPROX_TOP_COUNT:e=>_chunk2Z3O2CFMcjs.xm.fromArgList(e),BIT_AND:e=>_chunk2Z3O2CFMcjs.om.fromArgList(e),BIT_OR:e=>_chunk2Z3O2CFMcjs.pm.fromArgList(e),BIT_XOR:e=>_chunk2Z3O2CFMcjs.qm.fromArgList(e),BIT_COUNT:e=>_chunk2Z3O2CFMcjs.tf.fromArgList(e),BOOL:e=>_chunk2Z3O2CFMcjs.Bf.fromArgList(e),CONTAINS_SUBSTR:Na,DATE:Aa,DATE_ADD:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs.uh))(e),DATE_DIFF:ha,DATE_SUB:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs.wh))(e),DATE_TRUNC:e=>new (0, _chunk2Z3O2CFMcjs.yh)({unit:e[1],this:e[0],zone:_chunk2Z3O2CFMcjs.ca.call(void 0, e,2)}),DATETIME:fa,DATETIME_ADD:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs.Ah))(e),DATETIME_SUB:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs.Bh))(e),DIV:_chunk2Z3O2CFMcjs.iq.call(void 0, _chunk2Z3O2CFMcjs.Je),EDIT_DISTANCE:Ia,FORMAT_DATE:Qt(_chunk2Z3O2CFMcjs.Pl),GENERATE_ARRAY:e=>_chunk2Z3O2CFMcjs.bg.fromArgList(e),JSON_EXTRACT_SCALAR:et(_chunk2Z3O2CFMcjs.wj),JSON_EXTRACT_ARRAY:et(_chunk2Z3O2CFMcjs.vj),JSON_EXTRACT_STRING_ARRAY:et(_chunk2Z3O2CFMcjs.pj),JSON_KEYS:e=>_chunk2Z3O2CFMcjs.jj.fromArgList(e),JSON_QUERY:_chunk2Z3O2CFMcjs.ua.call(void 0, _chunk2Z3O2CFMcjs.uj),JSON_QUERY_ARRAY:et(_chunk2Z3O2CFMcjs.vj),JSON_STRIP_NULLS:ua,JSON_VALUE:et(_chunk2Z3O2CFMcjs.wj),JSON_VALUE_ARRAY:et(_chunk2Z3O2CFMcjs.pj),LENGTH:e=>new (0, _chunk2Z3O2CFMcjs.Oj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),binary:!0}),MD5:e=>_chunk2Z3O2CFMcjs.hk.fromArgList(e),SHA1:e=>_chunk2Z3O2CFMcjs.hl.fromArgList(e),NORMALIZE_AND_CASEFOLD:e=>new (0, _chunk2Z3O2CFMcjs.nk)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),form:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),isCasefold:!0}),OCTET_LENGTH:e=>_chunk2Z3O2CFMcjs.xf.fromArgList(e),TO_HEX:Sa,PARSE_DATE:e=>_chunk2Z3O2CFMcjs.Kp.call(void 0, _chunk2Z3O2CFMcjs.wl,{dialect:"bigquery"})([_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),_chunk2Z3O2CFMcjs.ca.call(void 0, e,0)]),PARSE_TIME:e=>_chunk2Z3O2CFMcjs.Kp.call(void 0, _chunk2Z3O2CFMcjs.Ij,{dialect:"bigquery"})([_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),_chunk2Z3O2CFMcjs.ca.call(void 0, e,0)]),PARSE_TIMESTAMP:Ta,PARSE_DATETIME:e=>_chunk2Z3O2CFMcjs.Kp.call(void 0, _chunk2Z3O2CFMcjs.Jj,{dialect:"bigquery"})([_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),_chunk2Z3O2CFMcjs.ca.call(void 0, e,0)]),REGEXP_CONTAINS:e=>_chunk2Z3O2CFMcjs.Lk.fromArgList(e),REGEXP_EXTRACT:Ye(_chunk2Z3O2CFMcjs.Ik),REGEXP_SUBSTR:Ye(_chunk2Z3O2CFMcjs.Ik),REGEXP_EXTRACT_ALL:Ye(_chunk2Z3O2CFMcjs.Jk,_chunk2Z3O2CFMcjs.Ao.call(void 0, 0)),SHA256:e=>new (0, _chunk2Z3O2CFMcjs.il)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),length:_chunk2Z3O2CFMcjs.Ao.call(void 0, 256)}),SHA512:e=>new (0, _chunk2Z3O2CFMcjs.gl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),length:_chunk2Z3O2CFMcjs.Ao.call(void 0, 512)}),SPLIT:e=>new (0, _chunk2Z3O2CFMcjs.nl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),expression:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1)||_chunk2Z3O2CFMcjs.Ao.call(void 0, ",")}),STRPOS:e=>_chunk2Z3O2CFMcjs.tl.fromArgList(e),TIME:la,TIME_ADD:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs.di))(e),TIME_SUB:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs.ei))(e),TIMESTAMP:ca,TIMESTAMP_ADD:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs._h))(e),TIMESTAMP_SUB:e=>_chunk2Z3O2CFMcjs.Np.call(void 0, (0, _chunk2Z3O2CFMcjs.$h))(e),TIMESTAMP_MICROS:e=>new (0, _chunk2Z3O2CFMcjs.Zl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),scale:_chunk2Z3O2CFMcjs.Zl.MICROS}),TIMESTAMP_MILLIS:e=>new (0, _chunk2Z3O2CFMcjs.Zl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),scale:_chunk2Z3O2CFMcjs.Zl.MILLIS}),TIMESTAMP_SECONDS:e=>new (0, _chunk2Z3O2CFMcjs.Zl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0)}),TO_JSON:e=>new (0, _chunk2Z3O2CFMcjs.zj)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, e,0),options:_chunk2Z3O2CFMcjs.ca.call(void 0, e,1),toJson:!0}),TO_JSON_STRING:e=>_chunk2Z3O2CFMcjs.zj.fromArgList(e),FORMAT_DATETIME:Qt(_chunk2Z3O2CFMcjs.Ql),FORMAT_TIMESTAMP:Qt(_chunk2Z3O2CFMcjs.Sl),FORMAT_TIME:Qt(_chunk2Z3O2CFMcjs.Rl),FROM_HEX:e=>_chunk2Z3O2CFMcjs.Ul.fromArgList(e),WEEK:e=>new (0, _chunk2Z3O2CFMcjs.Ac)({this:_chunk2Z3O2CFMcjs.Eo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, e,0))})};return delete t.SEARCH,t})()}static get FUNCTION_PARSERS(){return(()=>{let t={..._chunk2Z3O2CFMcjs.za.FUNCTION_PARSERS,ARRAY:function(){return this.expression(_chunk2Z3O2CFMcjs.Mf,{expressions:[this.parseStatement()],structNameInheritance:!0})},JSON_ARRAY:function(){return this.expression(_chunk2Z3O2CFMcjs.lj,{expressions:this.parseCsv(()=>this.parseBitwise())})},MAKE_INTERVAL:function(){return this.parseMakeInterval()},PREDICT:function(){return this.parseMl(_chunk2Z3O2CFMcjs.tk)},TRANSLATE:function(){return this.parseTranslate()},FEATURES_AT_TIME:function(){return this.parseFeaturesAtTime()},GENERATE_EMBEDDING:function(){return this.parseMl(_chunk2Z3O2CFMcjs.wk)},GENERATE_TEXT_EMBEDDING:function(){return this.parseMl(_chunk2Z3O2CFMcjs.wk,{isText:!0})},VECTOR_SEARCH:function(){return this.parseVectorSearch()},FORECAST:function(){return this.parseMl(_chunk2Z3O2CFMcjs.xk)}};return delete t.TRIM,t})()}parseForIn(){let t=this.index,e=this.parseRange();return this.matchTextSeq("DO"),this.match("command")?(this.retreat(t),this.parseAsCommand(this.prev)):this.expression(_chunk2Z3O2CFMcjs.oc,{this:e,expression:this.parseStatement()})}parseExportData(){return this.matchTextSeq("DATA"),this.expression(_chunk2Z3O2CFMcjs.hb,{connection:this.matchTextSeq("WITH")&&this.matchTextSeq("CONNECTION")&&this.parseTableParts(),options:this.parseProperties(),this:this.matchTextSeq("AS")&&this.parseSelect()})}parseMakeInterval(){let t=new (0, _chunk2Z3O2CFMcjs.Ph)({});for(let e of na){let r=this.parseLambda();if(!r)break;let i=r instanceof _chunk2Z3O2CFMcjs.Le?_optionalChain([r, 'access', _37 => _37.args, 'access', _38 => _38.this, 'optionalAccess', _39 => _39.name]):e;i!==void 0&&t.setArgKey(i,r),this.match("comma")}return t}parseMl(t,e={}){this.matchTextSeq("MODEL");let r=this.parseTable();this.match("comma"),this.matchTextSeq("TABLE");let i=this.match("struct",{advance:!1})?void 0:this.parseTable();return this.match("comma"),this.expression(t,{this:r,expression:i,paramsStruct:this.parseBitwise(),...e})}parseTranslate(){let t=this.tokens[this.index-4];return t&&t.text.toUpperCase()==="ML"?this.parseMl(_chunk2Z3O2CFMcjs.uk):_chunk2Z3O2CFMcjs.Jf.fromArgList(this.parseFunctionArgs())}parseFeaturesAtTime(){this.match("table");let t=this.parseTable(),e=this.expression(_chunk2Z3O2CFMcjs.vk,{this:t});for(;this.match("comma");){let r=this.parseLambda();if(r){let i=r.args.this;i&&e.setArgKey(i.name,r)}}return e}parseVectorSearch(){this.match("table");let t=this.parseTable();this.match("comma");let e=this.parseBitwise();this.match("comma"),this.match("table");let r=this.parseTable(),i=this.expression(_chunk2Z3O2CFMcjs.yk,{this:t,columnToSearch:e,queryTable:r});for(;this.match("comma");)if(this.match("string",{advance:!1})){let a=this.parseString();i.setArgKey("queryColumnToSearch",a)}else{let a=this.parseLambda();a instanceof _chunk2Z3O2CFMcjs.Le&&a.args.this&&i.setArgKey(a.args.this.name,a)}return i}parseTablePart(t={}){let{schema:e=!1}=t,r=super.parseTablePart({schema:e})||this.parseNumber();if(r){if(r instanceof _chunk2Z3O2CFMcjs.rb){let i=r.name;for(;this.match("dash",{advance:!1})&&this.next;){let a=this.curr;for(;this.isConnected()&&!this.matchSet(this._constructor.DASHED_TABLE_PART_FOLLOW_TOKENS,{advance:!1});)this.advance();if(a===this.curr)break;i+=this.findSql(a,this.prev)}r=new (0, _chunk2Z3O2CFMcjs.rb)({this:i,quoted:r.args.quoted}).updatePositions(r)}else if(r instanceof _chunk2Z3O2CFMcjs.$c){let i=r.name;this.isConnected()&&this.parseVar({anyToken:!0})&&(i+=_optionalChain([this, 'access', _40 => _40.prev, 'optionalAccess', _41 => _41.text])),r=new (0, _chunk2Z3O2CFMcjs.rb)({this:i,quoted:!0}).updatePositions(r)}return r}}parseTableParts(t={}){let{schema:e=!1,isDbReference:r=!1,wildcard:i=!1}=t,a=super.parseTableParts({schema:e,isDbReference:r,wildcard:!0});if(!a.catalog)if(a.db){let O=a.args.db,N=a.db.split(".");N.length===2&&!_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, a.args.db,_chunk2Z3O2CFMcjs.rb), 'optionalAccess', _42 => _42.quoted])&&(a.setArgKey("catalog",new (0, _chunk2Z3O2CFMcjs.rb)({this:N[0]}).updatePositions(O)),a.setArgKey("db",new (0, _chunk2Z3O2CFMcjs.rb)({this:N[1]}).updatePositions(O)))}else{let O=a.args.this,N=a.name.split(".");N.length===2&&!_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, a.args.this,_chunk2Z3O2CFMcjs.rb), 'optionalAccess', _43 => _43.quoted])&&(a.setArgKey("db",new (0, _chunk2Z3O2CFMcjs.rb)({this:N[0]}).updatePositions(_chunk2Z3O2CFMcjs.p.call(void 0, O,_chunk2Z3O2CFMcjs.Wq,_chunk2Z3O2CFMcjs.Ca))),a.setArgKey("this",new (0, _chunk2Z3O2CFMcjs.rb)({this:N[1]}).updatePositions(_chunk2Z3O2CFMcjs.p.call(void 0, O,_chunk2Z3O2CFMcjs.Wq,_chunk2Z3O2CFMcjs.Ca))))}let T;if(a.args.this instanceof _chunk2Z3O2CFMcjs.rb&&a.parts.some(O=>O.name.includes("."))){T=a.args.this;let O=a.parts.map(F=>F.name).join("."),N=_chunk2Z3O2CFMcjs.ha.call(void 0, O,".",3),[w,ke,Ve,...Xe]=N.map(F=>_chunk2Z3O2CFMcjs.eo.call(void 0, F,{quoted:!0}));[w,ke,Ve].forEach(F=>{F&&F.updatePositions(_chunk2Z3O2CFMcjs.p.call(void 0, a.args.this,_chunk2Z3O2CFMcjs.Wq,_chunk2Z3O2CFMcjs.Ca))});let Dt=Ve;0<Xe.length&&Dt&&(Dt=_chunk2Z3O2CFMcjs.Ae.build([Dt,...Xe.map(F=>_nullishCoalesce(F, () => (_chunk2Z3O2CFMcjs.eo.call(void 0, "",{quoted:!0}))))])),a=new (0, _chunk2Z3O2CFMcjs.Tb)({this:Dt,db:ke,catalog:w,pivots:a.args.pivots}),a.meta.quotedTable=!0}let u=a.parts,R=u.length;if(1<R&&u[R-2].name.toUpperCase()==="INFORMATION_SCHEMA"){_chunk2Z3O2CFMcjs.ho.call(void 0, a,T||u[R-1],{table:!0,copy:!1});let O=`${u[R-2].name}.${u[R-1].name}`,N=new (0, _chunk2Z3O2CFMcjs.rb)({this:O,quoted:!0}).updatePositions(void 0,{line:_optionalChain([u, 'access', _44 => _44[R-2], 'access', _45 => _45.meta, 'optionalAccess', _46 => _46.line]),col:_optionalChain([u, 'access', _47 => _47[R-1], 'access', _48 => _48.meta, 'optionalAccess', _49 => _49.col]),start:_optionalChain([u, 'access', _50 => _50[R-2], 'access', _51 => _51.meta, 'optionalAccess', _52 => _52.start]),end:_optionalChain([u, 'access', _53 => _53[R-1], 'access', _54 => _54.meta, 'optionalAccess', _55 => _55.end])});a.setArgKey("this",N),a.setArgKey("db",_chunk2Z3O2CFMcjs.ca.call(void 0, u,-3)),a.setArgKey("catalog",_chunk2Z3O2CFMcjs.ca.call(void 0, u,-4))}return a}parseColumn(){let t=super.parseColumn();if(t instanceof _chunk2Z3O2CFMcjs.Ic){let e=t.parts;if(e.some(r=>r.name.includes("."))){let r=e.map(w=>w.name).join("."),i=_chunk2Z3O2CFMcjs.ha.call(void 0, r,".",4),[a,T,u,R,...O]=i.map(w=>_chunk2Z3O2CFMcjs.eo.call(void 0, w,{quoted:!0})),N=R||_chunk2Z3O2CFMcjs.eo.call(void 0, "",{quoted:!0});0<O.length&&N&&(N=_chunk2Z3O2CFMcjs.Ae.build([N,...O.map(w=>_nullishCoalesce(w, () => (_chunk2Z3O2CFMcjs.eo.call(void 0, "",{quoted:!0}))))])),t=new (0, _chunk2Z3O2CFMcjs.Ic)({this:N,table:u,db:T,catalog:a}),t.meta.quotedColumn=!0}}return t}parseJsonObject(t={}){let{agg:e=!1}=t,r=super.parseJsonObject(),i=_chunk2Z3O2CFMcjs.ca.call(void 0, r.args.expressions||[],0);if(i instanceof _chunk2Z3O2CFMcjs.Ca&&i.args.this instanceof _chunk2Z3O2CFMcjs.Mf&&i.args.expression instanceof _chunk2Z3O2CFMcjs.Mf){let a=i.args.this.args.expressions,T=i.args.expression.args.expressions;r.setArgKey("expressions",_optionalChain([a, 'optionalAccess', _56 => _56.map, 'call', _57 => _57((u,R)=>new (0, _chunk2Z3O2CFMcjs.vc)({this:u,expression:_optionalChain([T, 'optionalAccess', _58 => _58[R]])||""}))]))}return r}parseBracket(t){let e=super.parseBracket(t);if(e instanceof _chunk2Z3O2CFMcjs.Mf&&e.setArgKey("structNameInheritance",!0),t===e)return e;if(e instanceof _chunk2Z3O2CFMcjs.de)for(let r of _nullishCoalesce(e.args.expressions, () => ([]))){let i=r.name.toUpperCase();if(!(i in this._constructor.BRACKET_OFFSETS))break;let[a,T]=this._constructor.BRACKET_OFFSETS[i];e.setArgKey("offset",a),e.setArgKey("safe",T),r.replace(_chunk2Z3O2CFMcjs.p.call(void 0, _optionalChain([r, 'access', _59 => _59.args, 'access', _60 => _60.expressions, 'optionalAccess', _61 => _61[0]]),_chunk2Z3O2CFMcjs.Ca))}return e}parseUnnest(t={}){let{withAlias:e=!0}=t,r=super.parseUnnest({withAlias:e});if(!r)return;let i=_chunk2Z3O2CFMcjs.ca.call(void 0, _nullishCoalesce(r.args.expressions, () => ([])),0);return i instanceof _chunk2Z3O2CFMcjs.Ca&&(i=_chunk2Z3O2CFMcjs.Y.call(void 0, i,{dialect:this.dialect}),i.isType("array")&&i.type instanceof _chunk2Z3O2CFMcjs.Ca&&_optionalChain([i, 'access', _62 => _62.type, 'access', _63 => _63.args, 'access', _64 => _64.expressions, 'optionalAccess', _65 => _65.some, 'call', _66 => _66(a=>_chunk2Z3O2CFMcjs.Lo.call(void 0, a,"struct"))])&&r.setArgKey("explodeArray",!0)),r}parseColumnOps(t){let e=this.index+1,r=super.parseColumnOps(t);if(r instanceof _chunk2Z3O2CFMcjs.Ae&&r.args.expression instanceof _chunk2Z3O2CFMcjs.ge){let i=r.args.this instanceof _chunk2Z3O2CFMcjs.Ca?r.args.this.name.toUpperCase():void 0,a;i==="NET"?a=_chunk2Z3O2CFMcjs.pk:i==="SAFE"&&(a=_chunk2Z3O2CFMcjs.Ze),a&&(this.retreat(e),r=new a({this:this.parseFunction({anyToken:!0})}))}return r}};I=_chunk2Z3O2CFMcjs.a.call(void 0, Di),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"ID_VAR_TOKENS",Mi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"NO_PAREN_FUNCTIONS",Pi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"ALIAS_TOKENS",gi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"TABLE_ALIAS_TOKENS",Oi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"COMMENT_TABLE_ALIAS_TOKENS",mi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"UPDATE_ALIAS_TOKENS",di,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"NESTED_TYPE_TOKENS",_i,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"PROPERTY_PARSERS",Ni,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"CONSTRAINT_PARSERS",Ii,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"RANGE_PARSERS",Ri,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"DASHED_TABLE_PART_FOLLOW_TOKENS",hi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"STATEMENT_PARSERS",fi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"BRACKET_OFFSETS",li,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"FUNCTIONS",xi,f),_chunk2Z3O2CFMcjs.d.call(void 0, I,10,"FUNCTION_PARSERS",ui,f),_chunk2Z3O2CFMcjs.b.call(void 0, I,f),_chunk2Z3O2CFMcjs.c.call(void 0, I,3,f),f.PREFIXED_PIVOT_COLUMNS=!0,f.LOG_DEFAULTS_TO_LN=!0,f.SUPPORTS_IMPLICIT_UNNEST=!0,f.JOINS_HAVE_EQUAL_PRECEDENCE=!0;var Ci,Li,Ui,yi,wi,Fi,bi,qi,Gi,L,A= exports.BigQueryGenerator =class extends(Gi=_chunk2Z3O2CFMcjs.lp,qi=[_chunk2Z3O2CFMcjs.r],bi=[_chunk2Z3O2CFMcjs.r],Fi=[_chunk2Z3O2CFMcjs.r],wi=[_chunk2Z3O2CFMcjs.r],yi=[_chunk2Z3O2CFMcjs.r],Ui=[_chunk2Z3O2CFMcjs.r],Li=[_chunk2Z3O2CFMcjs.r],Ci=[_chunk2Z3O2CFMcjs.r],Gi){static get AFTER_HAVING_MODIFIER_TRANSFORMS(){let t=new Map([["qualify",_chunk2Z3O2CFMcjs.lp.AFTER_HAVING_MODIFIER_TRANSFORMS.get("qualify")],["windows",_chunk2Z3O2CFMcjs.lp.AFTER_HAVING_MODIFIER_TRANSFORMS.get("windows")],...super.AFTER_HAVING_MODIFIER_TRANSFORMS]);return["cluster","distribute","sort"].forEach(e=>t.delete(e)),t}static get NULL_ORDERING_SUPPORTED(){return"partial"}static get TS_OR_DS_TYPES(){return[_chunk2Z3O2CFMcjs.Ql,_chunk2Z3O2CFMcjs.Sl,_chunk2Z3O2CFMcjs.Rl,_chunk2Z3O2CFMcjs.Pl]}static get ORIGINAL_TRANSFORMS(){return new Map([..._chunk2Z3O2CFMcjs.lp.TRANSFORMS,[_chunk2Z3O2CFMcjs.xm,_chunk2Z3O2CFMcjs.pp.call(void 0, "APPROX_TOP_COUNT")],[_chunk2Z3O2CFMcjs.Lm,_chunk2Z3O2CFMcjs.pp.call(void 0, "APPROX_COUNT_DISTINCT")],[_chunk2Z3O2CFMcjs.vm,_chunk2Z3O2CFMcjs.qq.call(void 0, "MAX_BY")],[_chunk2Z3O2CFMcjs.wm,_chunk2Z3O2CFMcjs.qq.call(void 0, "MIN_BY")],[_chunk2Z3O2CFMcjs.Mf,_chunk2Z3O2CFMcjs.up],[_chunk2Z3O2CFMcjs.mg,xa],[_chunk2Z3O2CFMcjs.ng,_chunk2Z3O2CFMcjs.Cq],[_chunk2Z3O2CFMcjs.Cf,_chunk2Z3O2CFMcjs.Cq],[_chunk2Z3O2CFMcjs.om,_chunk2Z3O2CFMcjs.pp.call(void 0, "BIT_AND")],[_chunk2Z3O2CFMcjs.pm,_chunk2Z3O2CFMcjs.pp.call(void 0, "BIT_OR")],[_chunk2Z3O2CFMcjs.qm,_chunk2Z3O2CFMcjs.pp.call(void 0, "BIT_XOR")],[_chunk2Z3O2CFMcjs.tf,_chunk2Z3O2CFMcjs.pp.call(void 0, "BIT_COUNT")],[_chunk2Z3O2CFMcjs.xf,_chunk2Z3O2CFMcjs.pp.call(void 0, "BYTE_LENGTH")],[_chunk2Z3O2CFMcjs.Cg,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.Uo])],[_chunk2Z3O2CFMcjs.dd,function(t){return t.args.default?`DEFAULT COLLATE ${this.sql(t,"this")}`:`COLLATE ${this.sql(t,"this")}`}],[_chunk2Z3O2CFMcjs.cc,()=>"COMMIT TRANSACTION"],[_chunk2Z3O2CFMcjs.fn,_chunk2Z3O2CFMcjs.pp.call(void 0, "COUNTIF")],[_chunk2Z3O2CFMcjs.Ja,oa],[_chunk2Z3O2CFMcjs.Fc,_chunk2Z3O2CFMcjs.Po.call(void 0, [pa])],[_chunk2Z3O2CFMcjs.uh,_chunk2Z3O2CFMcjs.Pp.call(void 0, "DATE","ADD")],[_chunk2Z3O2CFMcjs.xh,function(t){return this.func("DATE_DIFF",[t.args.this,t.args.expression,_chunk2Z3O2CFMcjs.vq.call(void 0, t)])}],[_chunk2Z3O2CFMcjs.hi,_chunk2Z3O2CFMcjs.pp.call(void 0, "DATE")],[_chunk2Z3O2CFMcjs.ji,_chunk2Z3O2CFMcjs.Xp],[_chunk2Z3O2CFMcjs.wh,_chunk2Z3O2CFMcjs.Pp.call(void 0, "DATE","SUB")],[_chunk2Z3O2CFMcjs.Ah,_chunk2Z3O2CFMcjs.Pp.call(void 0, "DATETIME","ADD")],[_chunk2Z3O2CFMcjs.Bh,_chunk2Z3O2CFMcjs.Pp.call(void 0, "DATETIME","SUB")],[_chunk2Z3O2CFMcjs.Eh,_chunk2Z3O2CFMcjs.pp.call(void 0, "DATE_FROM_UNIX_DATE")],[_chunk2Z3O2CFMcjs.lc,function(t){return this.func("DATETIME",[this.func("TIMESTAMP",[t.args.this,t.args.zone]),"'UTC'"])}],[_chunk2Z3O2CFMcjs.bg,_chunk2Z3O2CFMcjs.pp.call(void 0, "GENERATE_ARRAY")],[_chunk2Z3O2CFMcjs.in,function(t){return _chunk2Z3O2CFMcjs.Qq.call(this,t,{funcName:"STRING_AGG",withinGroup:!1,sep:void 0})}],[_chunk2Z3O2CFMcjs.Ri,function(t){return this.func("UPPER",[this.func("TO_HEX",[this.sql(t,"this")])])}],[_chunk2Z3O2CFMcjs.Gc,function(t){return this.hexStringSql(t,{binaryFunctionRepr:"FROM_HEX"})}],[_chunk2Z3O2CFMcjs._i,_chunk2Z3O2CFMcjs.rp.call(void 0, "IF","NULL")],[_chunk2Z3O2CFMcjs.Ie,_chunk2Z3O2CFMcjs.vp],[_chunk2Z3O2CFMcjs.Je,_chunk2Z3O2CFMcjs.pp.call(void 0, "DIV")],[_chunk2Z3O2CFMcjs.dj,_chunk2Z3O2CFMcjs.pp.call(void 0, "INT64")],[_chunk2Z3O2CFMcjs.Bf,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOL")],[_chunk2Z3O2CFMcjs.uj,Ke],[_chunk2Z3O2CFMcjs.vj,Ke],[_chunk2Z3O2CFMcjs.wj,Ke],[_chunk2Z3O2CFMcjs.zj,function(t){return this.func(t.args.toJson?"TO_JSON":"TO_JSON_STRING",[t.args.this,...Array.isArray(t.args.options)?t.args.options:t.args.options?[t.args.options]:[]])}],[_chunk2Z3O2CFMcjs.jj,_chunk2Z3O2CFMcjs.pp.call(void 0, "JSON_KEYS")],[_chunk2Z3O2CFMcjs.pj,_chunk2Z3O2CFMcjs.pp.call(void 0, "JSON_VALUE_ARRAY")],[_chunk2Z3O2CFMcjs.Rj,Ra],[_chunk2Z3O2CFMcjs.sn,_chunk2Z3O2CFMcjs.$p],[_chunk2Z3O2CFMcjs.gk,function(t){return this.func("TO_HEX",[this.func("MD5",[t.args.this])])}],[_chunk2Z3O2CFMcjs.hk,_chunk2Z3O2CFMcjs.pp.call(void 0, "MD5")],[_chunk2Z3O2CFMcjs.vn,_chunk2Z3O2CFMcjs._p],[_chunk2Z3O2CFMcjs.nk,function(t){return this.func(t.args.isCasefold?"NORMALIZE_AND_CASEFOLD":"NORMALIZE",[t.args.this,t.args.form])}],[_chunk2Z3O2CFMcjs.ud,function(t){return`PARTITION BY ${this.sql(t,"this")}`}],[_chunk2Z3O2CFMcjs.Ik,function(t){return this.func("REGEXP_EXTRACT",[t.args.this,t.args.expression,t.args.position,t.args.occurrence])}],[_chunk2Z3O2CFMcjs.Jk,function(t){return this.func("REGEXP_EXTRACT_ALL",[t.args.this,t.args.expression])}],[_chunk2Z3O2CFMcjs.Kk,_chunk2Z3O2CFMcjs.gq],[_chunk2Z3O2CFMcjs.Lk,_chunk2Z3O2CFMcjs.pp.call(void 0, "REGEXP_CONTAINS")],[_chunk2Z3O2CFMcjs.Cd,aa],[_chunk2Z3O2CFMcjs.dc,()=>"ROLLBACK TRANSACTION"],[_chunk2Z3O2CFMcjs.Ij,function(t){return this.func("PARSE_TIME",[this.formatTime(t),t.args.this])}],[_chunk2Z3O2CFMcjs.Jj,function(t){return this.func("PARSE_DATETIME",[this.formatTime(t),t.args.this])}],[_chunk2Z3O2CFMcjs.Wd,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.Yo.call(void 0, ),_chunk2Z3O2CFMcjs.Vo,_chunk2Z3O2CFMcjs.So,Ea,_chunk2Z3O2CFMcjs.bp])],[_chunk2Z3O2CFMcjs.fl,_chunk2Z3O2CFMcjs.pp.call(void 0, "SHA1")],[_chunk2Z3O2CFMcjs.gl,_chunk2Z3O2CFMcjs.Hq],[_chunk2Z3O2CFMcjs.hl,_chunk2Z3O2CFMcjs.pp.call(void 0, "SHA1")],[_chunk2Z3O2CFMcjs.il,_chunk2Z3O2CFMcjs.Iq],[_chunk2Z3O2CFMcjs.Id,function(t){return t.name==="IMMUTABLE"?"DETERMINISTIC":"NOT DETERMINISTIC"}],[_chunk2Z3O2CFMcjs.ug,_chunk2Z3O2CFMcjs.pp.call(void 0, "STRING")],[_chunk2Z3O2CFMcjs.tl,function(t){return _chunk2Z3O2CFMcjs.Ep.call(this,t,{funcName:"INSTR",supportsPosition:!0,supportsOccurrence:!0})}],[_chunk2Z3O2CFMcjs.wl,ni],[_chunk2Z3O2CFMcjs.xl,ni],[_chunk2Z3O2CFMcjs.qh,()=>"SESSION_USER()"],[_chunk2Z3O2CFMcjs.di,_chunk2Z3O2CFMcjs.Pp.call(void 0, "TIME","ADD")],[_chunk2Z3O2CFMcjs.ii,_chunk2Z3O2CFMcjs.pp.call(void 0, "TIME")],[_chunk2Z3O2CFMcjs.dm,_chunk2Z3O2CFMcjs.pp.call(void 0, "DATETIME")],[_chunk2Z3O2CFMcjs.ei,_chunk2Z3O2CFMcjs.Pp.call(void 0, "TIME","SUB")],[_chunk2Z3O2CFMcjs._h,_chunk2Z3O2CFMcjs.Pp.call(void 0, "TIMESTAMP","ADD")],[_chunk2Z3O2CFMcjs.ai,_chunk2Z3O2CFMcjs.pp.call(void 0, "TIMESTAMP_DIFF")],[_chunk2Z3O2CFMcjs.$h,_chunk2Z3O2CFMcjs.Pp.call(void 0, "TIMESTAMP","SUB")],[_chunk2Z3O2CFMcjs.Kl,_chunk2Z3O2CFMcjs.Wp],[_chunk2Z3O2CFMcjs.bc,()=>"BEGIN TRANSACTION"],[_chunk2Z3O2CFMcjs.Nl,_a],[_chunk2Z3O2CFMcjs.Ol,da],[_chunk2Z3O2CFMcjs.Rl,_chunk2Z3O2CFMcjs.pp.call(void 0, "TIME")],[_chunk2Z3O2CFMcjs.Ql,_chunk2Z3O2CFMcjs.pp.call(void 0, "DATETIME")],[_chunk2Z3O2CFMcjs.Sl,_chunk2Z3O2CFMcjs.pp.call(void 0, "TIMESTAMP")],[_chunk2Z3O2CFMcjs.Ul,_chunk2Z3O2CFMcjs.pp.call(void 0, "FROM_HEX")],[_chunk2Z3O2CFMcjs.Xl,_chunk2Z3O2CFMcjs.pp.call(void 0, "UNIX_DATE")],[_chunk2Z3O2CFMcjs.Zl,ma],[_chunk2Z3O2CFMcjs.Il,_chunk2Z3O2CFMcjs.pp.call(void 0, "TIME_TO_UNIX")],[_chunk2Z3O2CFMcjs.cm,()=>"GENERATE_UUID()"],[_chunk2Z3O2CFMcjs.se,ia],[_chunk2Z3O2CFMcjs.Sn,_chunk2Z3O2CFMcjs.pp.call(void 0, "VAR_POP")],[_chunk2Z3O2CFMcjs.al,_chunk2Z3O2CFMcjs.pp.call(void 0, "SAFE_DIVIDE")]])}static get SUPPORTED_JSON_PATH_PARTS(){return new Set([_chunk2Z3O2CFMcjs.ie,_chunk2Z3O2CFMcjs.je,_chunk2Z3O2CFMcjs.ke])}static get TYPE_MAPPING(){return new Map([..._chunk2Z3O2CFMcjs.lp.TYPE_MAPPING,["bigdecimal","BIGNUMERIC"],["bigint","INT64"],["binary","BYTES"],["blob","BYTES"],["boolean","BOOL"],["char","STRING"],["decimal","NUMERIC"],["double","FLOAT64"],["float","FLOAT64"],["int","INT64"],["nchar","STRING"],["nvarchar","STRING"],["smallint","INT64"],["text","STRING"],["timestamp","DATETIME"],["timestampntz","DATETIME"],["timestamptz","TIMESTAMP"],["timestampltz","TIMESTAMP"],["tinyint","INT64"],["rowversion","BYTES"],["uuid","STRING"],["varbinary","BYTES"],["varchar","STRING"],["variant","ANY TYPE"]])}static get PROPERTIES_LOCATION(){return new Map([..._chunk2Z3O2CFMcjs.lp.PROPERTIES_LOCATION,[_chunk2Z3O2CFMcjs.ud,"postSchema"],[_chunk2Z3O2CFMcjs.Od,"unsupported"]])}static get RESERVED_KEYWORDS(){return new Set(["all","and","any","array","as","asc","assert_rows_modified","at","between","by","case","cast","collate","contains","create","cross","cube","current","default","define","desc","distinct","else","end","enum","escape","except","exclude","exists","extract","false","fetch","following","for","from","full","group","grouping","groups","hash","having","if","ignore","in","inner","intersect","interval","into","is","join","lateral","left","like","limit","lookup","merge","natural","new","no","not","null","nulls","of","on","or","order","outer","over","partition","preceding","proto","qualify","range","recursive","respect","right","rollup","rows","select","set","some","struct","tablesample","then","to","treat","true","unbounded","union","unnest","using","when","where","window","with","within"])}dateTruncSql(t){let e=t.unit,r=_optionalChain([e, 'optionalAccess', _67 => _67.isString])?e.name:this.sql(e);return this.func("DATE_TRUNC",[t.args.this,r,t.args.zone])}modSql(t){let e=t.args.this,r=t.args.expression;return this.func("MOD",[e instanceof _chunk2Z3O2CFMcjs.Ve?e.unnest():e,r instanceof _chunk2Z3O2CFMcjs.Ve?r.unnest():r])}columnParts(t){if(_optionalChain([t, 'access', _68 => _68.meta, 'optionalAccess', _69 => _69.quotedColumn])){let e=t.parts.slice(0,-1).map(i=>i.name).join(".");return`${this.sql(new (0, _chunk2Z3O2CFMcjs.rb)({this:e,quoted:!0}))}.${this.sql(t,"this")}`}return super.columnParts(t)}tableParts(t){if(_optionalChain([t, 'access', _70 => _70.meta, 'optionalAccess', _71 => _71.quotedTable])){let e=t.parts.map(r=>r.name).join(".");return this.sql(new (0, _chunk2Z3O2CFMcjs.rb)({this:e,quoted:!0}))}return super.tableParts(t)}timeToStrSql(t){let e=t.args.this,r;e instanceof _chunk2Z3O2CFMcjs.Ql?r="FORMAT_DATETIME":e instanceof _chunk2Z3O2CFMcjs.Sl?r="FORMAT_TIMESTAMP":e instanceof _chunk2Z3O2CFMcjs.Rl?r="FORMAT_TIME":r="FORMAT_DATE";let a=this._constructor.TS_OR_DS_TYPES.some(T=>e instanceof T)&&e?e:t;return this.func(r,[this.formatTime(t),_chunk2Z3O2CFMcjs.p.call(void 0, a.args.this,"string",_chunk2Z3O2CFMcjs.Ca),t.args.zone])}eqSql(t){return(t.left instanceof _chunk2Z3O2CFMcjs.$d||t.right instanceof _chunk2Z3O2CFMcjs.$d)&&!(t.parent instanceof _chunk2Z3O2CFMcjs.Vd)?"NULL":this.binary(t,"=")}atTimeZoneSql(t){let e=t.parent;return!(e instanceof _chunk2Z3O2CFMcjs.Cg)||!_chunk2Z3O2CFMcjs.Lo.call(void 0, e.args.to,"text")?this.func("TIMESTAMP",[this.func("DATETIME",[t.args.this,t.args.zone])]):super.atTimeZoneSql(t)}tryCastSql(t){return this.castSql(t,{safePrefix:"SAFE_"})}bracketSql(t){let e=t.args.this,r=t.args.expressions;if(r&&r.length===1&&e instanceof _chunk2Z3O2CFMcjs.Ca&&e.isType("struct")){let T=r[0];if(T.type||(T=_chunk2Z3O2CFMcjs.Y.call(void 0, T,{dialect:this.dialect})),T.type&&_chunk2Z3O2CFMcjs.ac.TEXT_TYPES.has(_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, T.type,_chunk2Z3O2CFMcjs.Ca), 'optionalAccess', _72 => _72.args, 'access', _73 => _73.this])))return`${this.sql(e)}.${T.name}`}let i=this.expressions(t,{flat:!0}),a=t.args.offset;return a===0?i=`OFFSET(${i})`:a===1?i=`ORDINAL(${i})`:a!==void 0&&this.unsupported(`Unsupported array offset: ${a}`),t.args.safe&&(i=`SAFE_${i}`),`${this.sql(e)}[${i}]`}inUnnestOp(t){return this.sql(t)}versionSql(t){return t.name==="TIMESTAMP"&&t.setArgKey("this","SYSTEM_TIME"),super.versionSql(t)}containsSql(t){let e=t.args.this,r=t.args.expression,i=e instanceof _chunk2Z3O2CFMcjs.Ca||typeof e=="string"?e:void 0,a=r instanceof _chunk2Z3O2CFMcjs.Ca||typeof r=="string"?r:void 0;if(i instanceof _chunk2Z3O2CFMcjs.Uj&&a instanceof _chunk2Z3O2CFMcjs.Uj){let T=i.args.this,u=a.args.this;i=T instanceof _chunk2Z3O2CFMcjs.Ca||typeof T=="string"?T:i,a=u instanceof _chunk2Z3O2CFMcjs.Ca||typeof u=="string"?u:a}return this.func("CONTAINS_SUBSTR",[i,a,t.args.jsonScope])}castSql(t,e={}){let{safePrefix:r}=e,i=t.args.this;if(i instanceof _chunk2Z3O2CFMcjs.Mf){let a=_chunk2Z3O2CFMcjs.ca.call(void 0, i.args.expressions||[],0);if(!(a instanceof _chunk2Z3O2CFMcjs.Ca&&a.find(_chunk2Z3O2CFMcjs.Fa)))return`${this.sql(t,"to")}${this.sql(i)}`}return super.castSql(t,{safePrefix:r})}declareItemSql(t){let e=this.expressions(t,{key:"this"}),r=this.sql(t,"default");r=r?` DEFAULT ${r}`:"";let i=this.sql(t,"kind");return i=i?` ${i}`:"",`${e}${i}${r}`}};L=_chunk2Z3O2CFMcjs.a.call(void 0, Gi),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"AFTER_HAVING_MODIFIER_TRANSFORMS",qi,A),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"NULL_ORDERING_SUPPORTED",bi,A),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"TS_OR_DS_TYPES",Fi,A),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"ORIGINAL_TRANSFORMS",wi,A),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"SUPPORTED_JSON_PATH_PARTS",yi,A),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"TYPE_MAPPING",Ui,A),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"PROPERTIES_LOCATION",Li,A),_chunk2Z3O2CFMcjs.d.call(void 0, L,10,"RESERVED_KEYWORDS",Ci,A),_chunk2Z3O2CFMcjs.b.call(void 0, L,A),_chunk2Z3O2CFMcjs.c.call(void 0, L,3,A),A.SUPPORTS_DECODE_CASE=!1,A.TRY_SUPPORTED=!1,A.SUPPORTS_UESCAPE=!1,A.INTERVAL_ALLOWS_PLURAL_FORM=!1,A.JOIN_HINTS=!1,A.QUERY_HINTS=!1,A.TABLE_HINTS=!1,A.LIMIT_FETCH="LIMIT",A.RENAME_TABLE_WITH_DB=!1,A.NVL2_SUPPORTED=!1,A.UNNEST_WITH_ORDINALITY=!1,A.COLLATE_IS_FUNC=!0,A.LIMIT_ONLY_LITERALS=!0,A.SUPPORTS_TABLE_ALIAS_COLUMNS=!1,A.UNPIVOT_ALIASES_ARE_IDENTIFIERS=!1,A.JSON_KEY_VALUE_PAIR_SEP=",",A.IGNORE_NULLS_IN_FUNC=!0,A.JSON_PATH_SINGLE_QUOTE_ESCAPE=!0,A.CAN_IMPLEMENT_ARRAY_ANY=!0,A.SUPPORTS_TO_NUMBER=!1,A.NAMED_PLACEHOLDER_TOKEN="@",A.HEX_FUNC="TO_HEX",A.WITH_PROPERTIES_PREFIX="OPTIONS",A.SUPPORTS_EXPLODING_PROJECTIONS=!1,A.EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE=!1,A.SUPPORTS_UNIX_SECONDS=!0,A.SAFE_JSON_PATH_KEY_RE=/^[_\-a-zA-Z][\-\w]*$/;var Yi,Ki,He,rt= exports.BigQueryJsonPathTokenizer =class extends(Ki=_chunk2Z3O2CFMcjs.Mo,Yi=[_chunk2Z3O2CFMcjs.r],Ki){static get VAR_TOKENS(){return new Set(["dash","var"])}};He=_chunk2Z3O2CFMcjs.a.call(void 0, Ki),_chunk2Z3O2CFMcjs.d.call(void 0, He,10,"VAR_TOKENS",Yi,rt),_chunk2Z3O2CFMcjs.b.call(void 0, He,rt),_chunk2Z3O2CFMcjs.c.call(void 0, He,3,rt);var Hi,Ji,ki,Vi,Xi,vi,Bi,Wi,$i,ji,Zi,P,c= exports.BigQuery =class extends(Zi=_chunk2Z3O2CFMcjs.op,ji=[_chunk2Z3O2CFMcjs.r],$i=[_chunk2Z3O2CFMcjs.r],Wi=[_chunk2Z3O2CFMcjs.r],Bi=[_chunk2Z3O2CFMcjs.r],vi=[_chunk2Z3O2CFMcjs.r],Xi=[_chunk2Z3O2CFMcjs.r],Vi=[_chunk2Z3O2CFMcjs.r],ki=[_chunk2Z3O2CFMcjs.r],Ji=[_chunk2Z3O2CFMcjs.r],Hi=[_chunk2Z3O2CFMcjs.r],Zi){static get DEFAULT_NULL_TYPE(){return"bigint"}static get NORMALIZATION_STRATEGY(){return"caseInsensitive"}static get NORMALIZE_FUNCTIONS(){return""}static get TIME_MAPPING(){return{"%x":"%m/%d/%y","%D":"%m/%d/%y","%E6S":"%S.%f","%e":"%-d","%F":"%Y-%m-%d","%T":"%H:%M:%S","%c":"%a %b %e %H:%M:%S %Y"}}static get INVERSE_TIME_MAPPING(){return{...super.INVERSE_TIME_MAPPING,"%H:%M:%S.%f":"%H:%M:%E6S"}}static get FORMAT_MAPPING(){return{DD:"%d",MM:"%m",MON:"%b",MONTH:"%B",YYYY:"%Y",YY:"%y",HH:"%I",HH12:"%I",HH24:"%H",MI:"%M",SS:"%S",SSSSS:"%f",TZH:"%z"}}static get PSEUDOCOLUMNS(){return new Set(["_PARTITIONTIME","_PARTITIONDATE","_TABLE_SUFFIX","_FILE_NAME","_DBT_MAX_PARTITION"])}static get SET_OP_DISTINCT_BY_DEFAULT(){return{}}static get COERCES_TO(){let t=new Map;for(let[e,r]of _chunk2Z3O2CFMcjs.Z.COERCES_TO)t.set(e,new Set(r));t.set("bigdecimal",new Set(["double"])),_optionalChain([t, 'access', _74 => _74.get, 'call', _75 => _75("decimal"), 'optionalAccess', _76 => _76.add, 'call', _77 => _77("bigdecimal")]),_optionalChain([t, 'access', _78 => _78.get, 'call', _79 => _79("bigint"), 'optionalAccess', _80 => _80.add, 'call', _81 => _81("bigdecimal")]),t.has("varchar")||t.set("varchar",new Set);for(let e of["date","datetime","time","timestamp","timestamptz"])_optionalChain([t, 'access', _82 => _82.get, 'call', _83 => _83("varchar"), 'optionalAccess', _84 => _84.add, 'call', _85 => _85(e)]);return t}static get EXPRESSION_METADATA(){return new Map(X.EXPRESSION_METADATA)}normalizeIdentifier(t){if(t instanceof _chunk2Z3O2CFMcjs.rb&&this.normalizationStrategy==="caseInsensitive"){let e=t.parent;for(;e instanceof _chunk2Z3O2CFMcjs.Ae;)e=e.parent;return e instanceof _chunk2Z3O2CFMcjs.Ua||e instanceof _chunk2Z3O2CFMcjs.Tb&&e.db&&(e.meta.quotedTable||!e.meta.maybeColumn)||t.meta.isTable||t.setArgKey("this",t.args.this.toLowerCase()),t}return super.normalizeIdentifier(t)}};P=_chunk2Z3O2CFMcjs.a.call(void 0, Zi),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"DEFAULT_NULL_TYPE",ji,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"NORMALIZATION_STRATEGY",$i,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"NORMALIZE_FUNCTIONS",Wi,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"TIME_MAPPING",Bi,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"INVERSE_TIME_MAPPING",vi,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"FORMAT_MAPPING",Xi,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"PSEUDOCOLUMNS",Vi,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"SET_OP_DISTINCT_BY_DEFAULT",ki,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"COERCES_TO",Ji,c),_chunk2Z3O2CFMcjs.d.call(void 0, P,10,"EXPRESSION_METADATA",Hi,c),_chunk2Z3O2CFMcjs.b.call(void 0, P,c),_chunk2Z3O2CFMcjs.c.call(void 0, P,3,c),c.DIALECT_NAME="bigquery",c.WEEK_OFFSET=-1,c.UNNEST_COLUMN_ONLY=!0,c.SUPPORTS_USER_DEFINED_TYPES=!1,c.SUPPORTS_SEMI_ANTI_JOIN=!1,c.LOG_BASE_FIRST=!1,c.HEX_LOWERCASE=!0,c.FORCE_EARLY_ALIAS_REF_EXPANSION=!0,c.EXPAND_ONLY_GROUP_ALIAS_REF=!0,c.PRESERVE_ORIGINAL_NAMES=!0,c.HEX_STRING_IS_INTEGER_TYPE=!0,c.BYTE_STRING_IS_BYTES_TYPE=!0,c.UUID_IS_STRING_TYPE=!0,c.ANNOTATE_ALL_SCOPES=!0,c.PROJECTION_ALIASES_SHADOW_SOURCE_NAMES=!0,c.TABLES_REFERENCEABLE_AS_COLUMNS=!0,c.SUPPORTS_STRUCT_STAR_EXPANSION=!0,c.EXCLUDES_PSEUDOCOLUMNS_FROM_STAR=!0,c.QUERY_RESULTS_ARE_STRUCTS=!0,c.JSON_EXTRACT_SCALAR_SCALAR_ONLY=!0,c.LEAST_GREATEST_IGNORES_NULLS=!1,c.PRIORITIZE_NON_LITERAL_TYPES=!0,c.INITCAP_DEFAULT_DELIMITER_CHARS=`
2
+ \r\f\v\\[\\](){}/|<>!?@"^#$&~_,.:;*%+\\-`,c.Tokenizer=Je,c.Parser=f,c.Generator=A,c.JsonPathTokenizer=rt;_chunk2Z3O2CFMcjs.op.register("bigquery",c);exports.BigQuery = c; exports.BigQueryGenerator = A; exports.BigQueryJsonPathTokenizer = rt; exports.BigQueryParser = f; exports.BigQueryTokenizer = Je; exports.arrayContainsSql = xa; exports.buildContainsSubstring = Na; exports.buildDate = Aa; exports.buildDateDiff = ha; exports.buildDatetime = fa; exports.buildExtractJsonWithDefaultPath = et; exports.buildJsonStripNulls = ua; exports.buildLevenshtein = Ia; exports.buildParseTimestamp = Ta; exports.buildRegexpExtract = Ye; exports.buildTime = la; exports.buildTimestamp = ca; exports.buildToHex = Sa; exports.levenshteinSql = Ra; exports.pushdownCteColumnNames = pa;
3
+ //# sourceMappingURL=bigquery.cjs.map