@hdnax/sqlingo.js 0.0.4 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +8 -14
  3. package/README.npm.md +8 -14
  4. package/README.repo.md +1 -2
  5. package/dist/chunk-2YNOERAO.cjs +2 -0
  6. package/dist/chunk-2YNOERAO.cjs.map +1 -0
  7. package/dist/chunk-2Z3O2CFM.cjs +19 -0
  8. package/dist/chunk-2Z3O2CFM.cjs.map +1 -0
  9. package/dist/chunk-4ZMKB6PV.cjs +2 -0
  10. package/dist/chunk-4ZMKB6PV.cjs.map +1 -0
  11. package/dist/chunk-53OWF4GG.js +2 -0
  12. package/dist/chunk-53OWF4GG.js.map +1 -0
  13. package/dist/chunk-C4CLTVOW.cjs +2 -0
  14. package/dist/chunk-C4CLTVOW.cjs.map +1 -0
  15. package/dist/chunk-DOKMTZYO.cjs +4 -0
  16. package/dist/chunk-DOKMTZYO.cjs.map +1 -0
  17. package/dist/chunk-FCGUTI7Y.js +2 -0
  18. package/dist/chunk-FCGUTI7Y.js.map +1 -0
  19. package/dist/chunk-IPCIXWCY.js +2 -0
  20. package/dist/chunk-IPCIXWCY.js.map +1 -0
  21. package/dist/chunk-KCNOE4DZ.js +19 -0
  22. package/dist/chunk-KCNOE4DZ.js.map +1 -0
  23. package/dist/chunk-NRJHX2GZ.js +2 -0
  24. package/dist/chunk-NRJHX2GZ.js.map +1 -0
  25. package/dist/chunk-O2J5RKBN.js +2 -0
  26. package/dist/chunk-O2J5RKBN.js.map +1 -0
  27. package/dist/chunk-PXUASP5I.js +2 -0
  28. package/dist/chunk-PXUASP5I.js.map +1 -0
  29. package/dist/chunk-R7C3ZHVK.cjs +2 -0
  30. package/dist/chunk-R7C3ZHVK.cjs.map +1 -0
  31. package/dist/chunk-UHWHUDLE.cjs +2 -0
  32. package/dist/chunk-UHWHUDLE.cjs.map +1 -0
  33. package/dist/chunk-WRNYJ54A.cjs +2 -0
  34. package/dist/chunk-WRNYJ54A.cjs.map +1 -0
  35. package/dist/chunk-XZQFOICX.cjs +3 -0
  36. package/dist/chunk-XZQFOICX.cjs.map +1 -0
  37. package/dist/chunk-YLOQRUXC.js +2 -0
  38. package/dist/chunk-YLOQRUXC.js.map +1 -0
  39. package/dist/chunk-YSS2WVCM.cjs +2 -0
  40. package/dist/chunk-YSS2WVCM.cjs.map +1 -0
  41. package/dist/chunk-Z5V6VOIN.js +3 -0
  42. package/dist/chunk-Z5V6VOIN.js.map +1 -0
  43. package/dist/chunk-ZBFGQPJR.js +4 -0
  44. package/dist/chunk-ZBFGQPJR.js.map +1 -0
  45. package/dist/dialects/athena.cjs +2 -0
  46. package/dist/dialects/athena.cjs.map +1 -0
  47. package/dist/dialects/athena.d.cts +66 -0
  48. package/dist/dialects/athena.d.ts +66 -0
  49. package/dist/dialects/athena.js +2 -0
  50. package/dist/dialects/athena.js.map +1 -0
  51. package/dist/dialects/bigquery.cjs +3 -0
  52. package/dist/dialects/bigquery.cjs.map +1 -0
  53. package/dist/dialects/bigquery.d.cts +651 -0
  54. package/dist/dialects/bigquery.d.ts +651 -0
  55. package/dist/dialects/bigquery.js +3 -0
  56. package/dist/dialects/bigquery.js.map +1 -0
  57. package/dist/dialects/clickhouse.cjs +2 -0
  58. package/dist/dialects/clickhouse.cjs.map +1 -0
  59. package/dist/dialects/clickhouse.d.cts +634 -0
  60. package/dist/dialects/clickhouse.d.ts +634 -0
  61. package/dist/dialects/clickhouse.js +2 -0
  62. package/dist/dialects/clickhouse.js.map +1 -0
  63. package/dist/dialects/databricks.cjs +2 -0
  64. package/dist/dialects/databricks.cjs.map +1 -0
  65. package/dist/dialects/databricks.d.cts +484 -0
  66. package/dist/dialects/databricks.d.ts +484 -0
  67. package/dist/dialects/databricks.js +2 -0
  68. package/dist/dialects/databricks.js.map +1 -0
  69. package/dist/dialects/doris.cjs +2 -0
  70. package/dist/dialects/doris.cjs.map +1 -0
  71. package/dist/dialects/doris.d.cts +484 -0
  72. package/dist/dialects/doris.d.ts +484 -0
  73. package/dist/dialects/doris.js +2 -0
  74. package/dist/dialects/doris.js.map +1 -0
  75. package/dist/dialects/dremio.cjs +2 -0
  76. package/dist/dialects/dremio.cjs.map +1 -0
  77. package/dist/dialects/dremio.d.cts +522 -0
  78. package/dist/dialects/dremio.d.ts +522 -0
  79. package/dist/dialects/dremio.js +2 -0
  80. package/dist/dialects/dremio.js.map +1 -0
  81. package/dist/dialects/drill.cjs +2 -0
  82. package/dist/dialects/drill.cjs.map +1 -0
  83. package/dist/dialects/drill.d.cts +512 -0
  84. package/dist/dialects/drill.d.ts +512 -0
  85. package/dist/dialects/drill.js +2 -0
  86. package/dist/dialects/drill.js.map +1 -0
  87. package/dist/dialects/druid.cjs +2 -0
  88. package/dist/dialects/druid.cjs.map +1 -0
  89. package/dist/dialects/druid.d.cts +17 -0
  90. package/dist/dialects/druid.d.ts +17 -0
  91. package/dist/dialects/druid.js +2 -0
  92. package/dist/dialects/druid.js.map +1 -0
  93. package/dist/dialects/duckdb.cjs +86 -0
  94. package/dist/dialects/duckdb.cjs.map +1 -0
  95. package/dist/dialects/duckdb.d.cts +756 -0
  96. package/dist/dialects/duckdb.d.ts +756 -0
  97. package/dist/dialects/duckdb.js +86 -0
  98. package/dist/dialects/duckdb.js.map +1 -0
  99. package/dist/dialects/dune.cjs +2 -0
  100. package/dist/dialects/dune.cjs.map +1 -0
  101. package/dist/dialects/dune.d.cts +21 -0
  102. package/dist/dialects/dune.d.ts +21 -0
  103. package/dist/dialects/dune.js +2 -0
  104. package/dist/dialects/dune.js.map +1 -0
  105. package/dist/dialects/exasol.cjs +2 -0
  106. package/dist/dialects/exasol.cjs.map +1 -0
  107. package/dist/dialects/exasol.d.cts +507 -0
  108. package/dist/dialects/exasol.d.ts +507 -0
  109. package/dist/dialects/exasol.js +2 -0
  110. package/dist/dialects/exasol.js.map +1 -0
  111. package/dist/dialects/fabric.cjs +2 -0
  112. package/dist/dialects/fabric.cjs.map +1 -0
  113. package/dist/dialects/fabric.d.cts +463 -0
  114. package/dist/dialects/fabric.d.ts +463 -0
  115. package/dist/dialects/fabric.js +2 -0
  116. package/dist/dialects/fabric.js.map +1 -0
  117. package/dist/dialects/hive.cjs +2 -0
  118. package/dist/dialects/hive.cjs.map +1 -0
  119. package/dist/dialects/hive.d.cts +585 -0
  120. package/dist/dialects/hive.d.ts +585 -0
  121. package/dist/dialects/hive.js +2 -0
  122. package/dist/dialects/hive.js.map +1 -0
  123. package/dist/dialects/materialize.cjs +2 -0
  124. package/dist/dialects/materialize.cjs.map +1 -0
  125. package/dist/dialects/materialize.d.cts +890 -0
  126. package/dist/dialects/materialize.d.ts +890 -0
  127. package/dist/dialects/materialize.js +2 -0
  128. package/dist/dialects/materialize.js.map +1 -0
  129. package/dist/dialects/mysql.cjs +2 -0
  130. package/dist/dialects/mysql.cjs.map +1 -0
  131. package/dist/dialects/mysql.d.cts +292 -0
  132. package/dist/dialects/mysql.d.ts +292 -0
  133. package/dist/dialects/mysql.js +2 -0
  134. package/dist/dialects/mysql.js.map +1 -0
  135. package/dist/dialects/oracle.cjs +2 -0
  136. package/dist/dialects/oracle.cjs.map +1 -0
  137. package/dist/dialects/oracle.d.cts +539 -0
  138. package/dist/dialects/oracle.d.ts +539 -0
  139. package/dist/dialects/oracle.js +2 -0
  140. package/dist/dialects/oracle.js.map +1 -0
  141. package/dist/dialects/postgres.cjs +2 -0
  142. package/dist/dialects/postgres.cjs.map +1 -0
  143. package/dist/dialects/postgres.d.cts +587 -0
  144. package/dist/dialects/postgres.d.ts +587 -0
  145. package/dist/dialects/postgres.js +2 -0
  146. package/dist/dialects/postgres.js.map +1 -0
  147. package/dist/dialects/presto.cjs +2 -0
  148. package/dist/dialects/presto.cjs.map +1 -0
  149. package/dist/dialects/presto.d.cts +173 -0
  150. package/dist/dialects/presto.d.ts +173 -0
  151. package/dist/dialects/presto.js +2 -0
  152. package/dist/dialects/presto.js.map +1 -0
  153. package/dist/dialects/prql.cjs +2 -0
  154. package/dist/dialects/prql.cjs.map +1 -0
  155. package/dist/dialects/prql.d.cts +496 -0
  156. package/dist/dialects/prql.d.ts +496 -0
  157. package/dist/dialects/prql.js +2 -0
  158. package/dist/dialects/prql.js.map +1 -0
  159. package/dist/dialects/redshift.cjs +2 -0
  160. package/dist/dialects/redshift.cjs.map +1 -0
  161. package/dist/dialects/redshift.d.cts +132 -0
  162. package/dist/dialects/redshift.d.ts +132 -0
  163. package/dist/dialects/redshift.js +2 -0
  164. package/dist/dialects/redshift.js.map +1 -0
  165. package/dist/dialects/risingwave.cjs +2 -0
  166. package/dist/dialects/risingwave.cjs.map +1 -0
  167. package/dist/dialects/risingwave.d.cts +478 -0
  168. package/dist/dialects/risingwave.d.ts +478 -0
  169. package/dist/dialects/risingwave.js +2 -0
  170. package/dist/dialects/risingwave.js.map +1 -0
  171. package/dist/dialects/singlestore.cjs +2 -0
  172. package/dist/dialects/singlestore.cjs.map +1 -0
  173. package/dist/dialects/singlestore.d.cts +73 -0
  174. package/dist/dialects/singlestore.d.ts +73 -0
  175. package/dist/dialects/singlestore.js +2 -0
  176. package/dist/dialects/singlestore.js.map +1 -0
  177. package/dist/dialects/snowflake.cjs +3 -0
  178. package/dist/dialects/snowflake.cjs.map +1 -0
  179. package/dist/dialects/snowflake.d.cts +320 -0
  180. package/dist/dialects/snowflake.d.ts +320 -0
  181. package/dist/dialects/snowflake.js +3 -0
  182. package/dist/dialects/snowflake.js.map +1 -0
  183. package/dist/dialects/solr.cjs +2 -0
  184. package/dist/dialects/solr.cjs.map +1 -0
  185. package/dist/dialects/solr.d.cts +458 -0
  186. package/dist/dialects/solr.d.ts +458 -0
  187. package/dist/dialects/solr.js +2 -0
  188. package/dist/dialects/solr.js.map +1 -0
  189. package/dist/dialects/spark.cjs +2 -0
  190. package/dist/dialects/spark.cjs.map +1 -0
  191. package/dist/dialects/spark.d.cts +484 -0
  192. package/dist/dialects/spark.d.ts +484 -0
  193. package/dist/dialects/spark.js +2 -0
  194. package/dist/dialects/spark.js.map +1 -0
  195. package/dist/dialects/spark2.cjs +2 -0
  196. package/dist/dialects/spark2.cjs.map +1 -0
  197. package/dist/dialects/spark2.d.cts +486 -0
  198. package/dist/dialects/spark2.d.ts +486 -0
  199. package/dist/dialects/spark2.js +2 -0
  200. package/dist/dialects/spark2.js.map +1 -0
  201. package/dist/dialects/sqlite.cjs +2 -0
  202. package/dist/dialects/sqlite.cjs.map +1 -0
  203. package/dist/dialects/sqlite.d.cts +510 -0
  204. package/dist/dialects/sqlite.d.ts +510 -0
  205. package/dist/dialects/sqlite.js +2 -0
  206. package/dist/dialects/sqlite.js.map +1 -0
  207. package/dist/dialects/starrocks.cjs +2 -0
  208. package/dist/dialects/starrocks.cjs.map +1 -0
  209. package/dist/dialects/starrocks.d.cts +518 -0
  210. package/dist/dialects/starrocks.d.ts +518 -0
  211. package/dist/dialects/starrocks.js +2 -0
  212. package/dist/dialects/starrocks.js.map +1 -0
  213. package/dist/dialects/tableau.cjs +2 -0
  214. package/dist/dialects/tableau.cjs.map +1 -0
  215. package/dist/dialects/tableau.d.cts +466 -0
  216. package/dist/dialects/tableau.d.ts +466 -0
  217. package/dist/dialects/tableau.js +2 -0
  218. package/dist/dialects/tableau.js.map +1 -0
  219. package/dist/dialects/teradata.cjs +2 -0
  220. package/dist/dialects/teradata.cjs.map +1 -0
  221. package/dist/dialects/teradata.d.cts +539 -0
  222. package/dist/dialects/teradata.d.ts +539 -0
  223. package/dist/dialects/teradata.js +2 -0
  224. package/dist/dialects/teradata.js.map +1 -0
  225. package/dist/dialects/trino.cjs +2 -0
  226. package/dist/dialects/trino.cjs.map +1 -0
  227. package/dist/dialects/trino.d.cts +465 -0
  228. package/dist/dialects/trino.d.ts +465 -0
  229. package/dist/dialects/trino.js +2 -0
  230. package/dist/dialects/trino.js.map +1 -0
  231. package/dist/dialects/tsql.cjs +2 -0
  232. package/dist/dialects/tsql.cjs.map +1 -0
  233. package/dist/dialects/tsql.d.cts +703 -0
  234. package/dist/dialects/tsql.d.ts +703 -0
  235. package/dist/dialects/tsql.js +2 -0
  236. package/dist/dialects/tsql.js.map +1 -0
  237. package/dist/index.cjs +5 -25
  238. package/dist/index.cjs.map +1 -1
  239. package/dist/index.d.cts +3 -14178
  240. package/dist/index.d.ts +3 -14178
  241. package/dist/index.js +5 -25
  242. package/dist/index.js.map +1 -1
  243. package/dist/tokens-VcMD09XM.d.cts +15805 -0
  244. package/dist/tokens-VcMD09XM.d.ts +15805 -0
  245. package/package.json +171 -5
@@ -0,0 +1,3 @@
1
+ import"../chunk-ZBFGQPJR.js";import{$c as f,$e as ys,$f as or,$j as Ci,$m as Ua,$p as Co,Ae as ms,Af as Pt,Ag as sn,Ah as Cn,Ai as V,Ak as Bi,Bb as nt,Bi as Qn,Bk as bi,Bn as $a,Bo as z,Ca as d,Cc as Es,Ce as rr,Cf as Ws,Cg as D,Ch as yn,Ck as Tt,Cl as Mr,Cm as Ia,Dm as da,Dn as Xa,Ef as vs,Eg as nn,Ei as Ut,Ek as Gi,El as Cr,Em as ma,En as ka,Ep as go,Fa as $e,Fb as At,Fd as hs,Fe as er,Fg as an,Fh as Ln,Fi as zn,Fj as pt,Fl as ia,Fm as Oa,Fn as Za,Gb as Qe,Gc as ps,Gf as ne,Gg as on,Gh as pe,Gi as jn,Gj as lr,Gm as _a,Gn as Ja,Gp as De,Gq as Do,Hg as En,Hh as Dn,Hi as ti,Hj as li,Hm as Na,Hn as Qa,Hp as Io,Ic as Qt,Ie as se,Ig as pn,Ih as Fn,Ii as ri,Ik as J,Il as aa,In as za,Ip as Fe,Ja as kt,Jh as Un,Ji as ei,Jk as ct,Jm as Pa,Jn as ja,Ke as sr,Kf as ar,Ki as si,Kj as Ri,Kk as mr,Kl as oa,Kn as to,Kp as Ue,Kq as be,Ld as fs,Le as at,Lh as Te,Li as ni,Lj as gi,Lk as wi,Lm as Ma,Ln as ro,Lo as co,Mb as ze,Me as Os,Mf as ot,Mh as Bn,Mi as ii,Mj as Ii,Mk as Yi,Mn as eo,Mo as Me,Nd as Ss,Nf as $s,Ng as Tn,Nh as bn,Nj as di,Nl as Ea,Nm as Q,Nn as so,Nq as Fo,Od as ls,Of as Mt,Og as cn,Oh as Gn,Oi as Ae,Oj as Se,Ok as qi,Ol as pa,Om as Ca,Op as mo,Oq as Uo,Pf as Xs,Pg as un,Ph as wn,Pj as mi,Pl as me,Pm as ya,Pn as no,Po as j,Qa as kr,Qf as ks,Qg as An,Qh as Yn,Qi as ai,Qk as Hi,Qm as La,Qp as Oo,Qq as Bo,Ra as Xe,Rb as je,Re as _s,Rg as xn,Rh as qn,Rj as le,Rk as Ki,Rl as qt,Rm as Da,Rn as io,Rp as _o,Rq as Ge,Sb as ts,Se as Ns,Sf as K,Sg as hn,Si as oi,Sj as Oi,Sk as Vi,Sm as Fa,Sn as ao,So as uo,Sq as bo,Ta as ke,Tb as it,Tc as Ts,Te as nr,Tf as ie,Tg as fn,Ti as Ei,Tj as _i,Tk as Wi,Tn as oo,U as Wr,Ub as xt,Ue as Ps,Uf as Zs,Ug as Sn,Uk as Or,Ul as Ht,Un as Ne,Vb as rs,Vf as Js,Vg as ln,Vi as pi,Vj as Re,Vn as Eo,W as vr,Wa as Zt,Wd as B,We as Ms,Wf as Ct,Wg as Rn,Wh as ce,Wi as Ti,Wn as po,Wp as No,Xc as cs,Xg as gn,Xi as ci,Xk as vi,Xp as Po,Xq as vt,Y as $r,Ya as X,Yb as Qr,Ye as Cs,Yg as In,Yi as ui,Yj as Ni,Yk as $i,Yo as Ao,Za as Zr,Zg as dn,Zh as Hn,Zi as Ai,Zj as Pi,Zk as Xi,Zl as Oe,Zn as To,Zo as Ce,_b as es,_g as mn,_h as ue,_i as Z,_j as Mi,_k as ki,_p as Mo,a as Y,ac as h,af as Ls,ai as Kn,ak as yi,an as Ba,b as q,be as ht,bf as Ds,bg as ae,bi as yt,bk as Li,bn as ba,bp as xo,c as H,ca as i,cf as Fs,cg as Qs,ch as ur,ci as hr,ck as Di,cm as yr,d as p,de as Rs,df as Us,dg as zs,dh as Ar,di as Et,dk as Rr,dm as Kt,dn as Ga,dp as ye,ea as Ve,ed as us,ek as ge,eo as C,fa as We,fe as gs,ff as Bs,fg as Er,fh as b,fj as xi,fl as Ie,fm as Ta,gg as pr,gk as Fi,gl as Zi,gm as ca,hc as ss,hg as Tr,hi as Vn,hk as Bt,hl as wt,hm as ua,ho as Gr,ic as ns,ie as Is,ig as js,ih as On,ii as Lt,ij as xe,ik as bt,il as Yt,im as Aa,in as wa,ip as ho,iq as yo,ja as Xr,je as re,ji as Wn,jk as Gt,jm as xa,jn as Ya,jo as Pe,jp as fo,kb as Ze,kc as is,kd as zr,ke as ds,kf as bs,kj as hi,kl as de,kp as Le,kq as Be,lb as Je,lc as as,ld as jr,lf as Gs,lg as tn,lk as gr,ll as Ji,lm as ha,lp as Wt,md as As,mf as ws,mg as oe,mh as _n,mk as Ir,ml as Qi,mm as fa,mn as _e,n as I,ne as jt,nf as Ys,nh as Nn,nl as zi,np as So,oe as tr,of as It,oh as Pn,oi as vn,ok as Ui,ol as _r,om as W,op as wr,p as et,pb as Jt,pd as zt,pf as dt,ph as Mn,pi as Dt,pj as he,pl as ji,pm as v,pp as E,q as Vr,qf as mt,qi as Ft,qm as $,qn as qa,r as T,rb as st,rd as xs,rf as Ot,rg as rn,rl as ta,rm as Sa,rn as Ha,rp as lo,sa as ve,sf as qs,sg as en,sl as ra,sm as la,sn as Ka,sq as G,ti as $n,tl as ea,tm as Lr,tn as Va,tp as Ro,ud as te,ue as ft,uf as Hs,uh as k,ui as Xn,uj as Sr,ul as Nr,un as Wa,uq as Lo,ve as St,vf as Ks,vg as cr,vi as kn,vj as fi,vl as sa,vm as Dr,vn as va,we as lt,wf as Vs,wi as Zn,wj as Si,wl as na,wm as Fr,wq as tt,xe as Rt,xf as _t,xh as Ee,xi as Jn,xl as Pr,xm as Ur,xn as Br,ye as gt,yf as ir,yh as xr,yi as fr,ym as Ra,yn as br,za as N,zb as Jr,zc as os,ze as ee,zf as Nt,zj as fe,zk as dr,zm as ga,zo as Vt}from"../chunk-KCNOE4DZ.js";var HE=new Set(["DAY","WEEK","MONTH","QUARTER","YEAR"]),$t=38,KE=37;function VE(e){return this.annotateByArgs(e,["this"]),e.isType("null")&&this.setType(e,"varchar"),e}function WE(e){return e.args.zone?this.setType(e,"timestamptz"):this.setType(e,"timestamp"),e}function Go(e){let n=e.args.this;return I(n,d)&&n.isType("date")&&!HE.has(e.text("unit").toUpperCase())?this.setType(e,"timestampntz"):this.annotateByArgs(e,["this"]),e}function vE(e){let n=e.args.expressions??[],r=[];for(let s=2;s<n.length;s+=2)r.push(n[s].type);n.length%2===0&&r.push(n[n.length-1].type);let t;for(let s of r){let a=I(s,h)?s:void 0;t=this.maybeCoerce(t||a,a)}return this.setType(e,t),e}function wo(e){let n=e.args.this,r=I(n,d)?n.type:void 0;return this.setType(e,e.args.count?"array":I(r,h)?r:void 0),e}function $E(e){let n=e.args.this,r=e.args.expression,t=I(r,At)?r.args.expressions??[]:[];if((I(n,br)||I(n,Br))&&I(r,At)&&t.length===1&&I(t[0],Qe)){let s=t[0].args.this,a=I(s,d)?s.type:void 0;this.setType(e,I(a,h)?a:void 0)}return e}function XE(e){this.annotateByArgs(e,["this"]);let n=e.args.this,r=I(n,d)?n.type:void 0;if(!I(r,h))return e;if(r.isType("double"))this.setType(e,"double");else{let t=Vr(r.args.expressions??[],d),s=t[0]?Number(t[0].text("this")):$t,a=t[1]?Number(t[1].text("this")):0,o=Math.min(s+3,$t),x=Math.min(a+3,KE),u=h.build(`NUMBER(${o}, ${x})`,{dialect:"snowflake"});this.setType(e,u)}return e}function kE(e){this.annotateByArgs(e,["this"]);let n=e.args.this,r=I(n,d)?n.type:void 0;if(!I(r,h))return e;if(r.isType("decfloat"))this.setType(e,h.build("DECFLOAT",{dialect:"snowflake"}));else if(r.isType(["float","double"]))this.setType(e,"double");else{let t=Vr(r.args.expressions??[],d),s=t[1]?Number(t[1].text("this")):0,a=s===0?6:Math.max(12,s),o=h.build(`NUMBER(${$t}, ${a})`,{dialect:"snowflake"});this.setType(e,o)}return e}function ZE(e){this.annotateByArgs(e,["this"]);let n=e.args.this,r=I(n,d)?n.type:void 0;return I(r,h)?(r.isType("decfloat")?this.setType(e,h.build("DECFLOAT",{dialect:"snowflake"})):r.isType(["float","double"])?this.setType(e,"double"):this.setType(e,h.build(`NUMBER(${$t}, 12)`,{dialect:"snowflake"})),e):(this.setType(e,h.build(`NUMBER(${$t}, 12)`,{dialect:"snowflake"})),e)}function JE(e){this.annotateByArgs(e,["this"]);let n=e.args.this;if(I(n,d)&&n.isType("decfloat")){let r=n.type;this.setType(e,I(r,h)?r:void 0)}else this.setType(e,"double");return e}function QE(e){let n=e.args.targetType,r=I(n,h)?n:"timestamp";return this.setType(e,r),e}var Yo,we;Yo=[T];var rt=class{static get EXPRESSION_METADATA(){let n=new Map(So.EXPRESSION_METADATA),r=(t,s)=>{for(let a of t)n.set(a,s)};return r([Ir,pn,xr,Qn,gi,Wa,Xs,Ii,Or,Cr,ji,hr,yt],{annotator:(t,s)=>t.annotateByArgs(s,["this"])}),r([Ur,vs,ot,Q,Er,js,Tr,tn,pr,Ws,sn,Ca,Fa,yi,ct,zi,cr],{returns:"array"}),r([Vs,Hs,Ks,Jn,Na,bt,Gt,Tt,ki,ha],{returns:"bigint"}),r([zn,la,Lr,ci,ui,Dt,Ft,$n,Xn,ps,Bt,wt,Yt,Ut,ri,si,Ht],{returns:"binary"}),r([Nt,ir,Pt,Sa,kn,xi,Pi,Nr,sa,Mt],{returns:"boolean"}),r([Aa,qn],{returns:"date"}),r([W,v,$,Hi,qi,K],{annotator:(t,s)=>t.setType(s,h.build("NUMBER",{dialect:"snowflake"}))}),r([Bi,Oa,It,po,Eo,dt,mt,Ot,Gn,Ui],{returns:"double"}),r([Zs,Js],{returns:"decfloat"}),r([ys,Ls,Ds,Fs,Tn,Bs,Us,Ys,Zn,Oi,_i,dr,Wi,Ja,Za,Qa,za,ja,so,to,ro,eo,Xa,ka,bs,ia,Gs,ws],{annotator:(t,s)=>JE.call(t,s)}),r([_t,_a,qs,Di,pi,mi,Ti,vi,$i,Xi,ca],{returns:"int"}),r([$a,Ia,Ra,ga,Ba,li,lr,xa],{returns:"object"}),r([Ni,Mi,Ci,Li],{returns:"map"}),n.set(Ct,{returns:"file"}),r([Lt,qt],{returns:"time"}),r([b,Ar],{returns:"timestampltz"}),n.set(bi,{returns:"tinyint"}),r([ya,zs,La,jn,ti,nn,an,on,En,cn,un,An,xn,fn,hn,Sn,ln,Rn,gn,In,dn,mn,Mn,_n,Nn,Pn,On,Ai,oi,Ei,gr,Gi,J,mr,Ki,Vi,Ji,Qi,_r,ei,ni,yr],{returns:"varchar"}),r([da,ma],{returns:"variant"}),r([io,ao],{annotator:(t,s)=>kE.call(t,s)}),n.set(Dr,{annotator:(t,s)=>wo.call(t,s)}),n.set(Fr,{annotator:(t,s)=>wo.call(t,s)}),n.set(Ga,{annotator:(t,s)=>t.annotateByArgs(s,["expressions"])}),n.set(or,{annotator:(t,s)=>t.setType(s,s.args.sourceTz?"timestampntz":"timestamptz")}),n.set(k,{annotator:(t,s)=>Go.call(t,s)}),n.set(vn,{annotator:(t,s)=>vE.call(t,s)}),n.set(Pa,{annotator:(t,s)=>t.setType(s,h.build("NUMBER(19, 0)",{dialect:"snowflake"}))}),n.set(oo,{annotator:(t,s)=>ZE.call(t,s)}),n.set(Va,{annotator:(t,s)=>XE.call(t,s)}),n.set(di,{annotator:(t,s)=>VE.call(t,s)}),n.set(Pr,{annotator:(t,s)=>QE.call(t,s)}),n.set(Et,{annotator:(t,s)=>Go.call(t,s)}),n.set(Kt,{annotator:(t,s)=>WE.call(t,s)}),n.set(Zt,{annotator:(t,s)=>$E.call(t,s)}),n}};we=Y(null),p(we,10,"EXPRESSION_METADATA",Yo,rt),q(we,rt),H(we,3,rt);var wE={timestamp:"TO_TIMESTAMP",timestampltz:"TO_TIMESTAMP_LTZ",timestampntz:"TO_TIMESTAMP_NTZ",timestamptz:"TO_TIMESTAMP_TZ"};function zE(e){return e.length===1&&e.push(f.string(" ")),e.length===2&&e.push(f.number(1)),_r.fromArgList(e)}function jE(e){return e.length===1&&e.push(f.number(1)),Ur.fromArgList(e)}function qo(e){return new Vn({year:i(e,0),month:i(e,1),day:i(e,2),allowOverflow:!0})}function M(e,n,r={}){let{safe:t=!1}=r;return s=>{let a=i(s,0),o=i(s,1),x=a instanceof st&&We(a.name),u=o instanceof f&&o.isNumber;if(a instanceof f||a instanceof Ms||a&&o){if(s.length===1&&a instanceof f&&a.isString&&!x)return t?new ba({this:a,to:h.build(n),requiresString:!0}):new D({this:a,to:h.build(n)});if(n in wE){if(!t&&(u||x&&o===void 0)){let A=new Oe({this:a,scale:o});return A.setArgKey("targetType",h.build(n,{dialect:"snowflake"})),A}if(o&&!u){let A=Ue(Pr,{dialect:"snowflake"})(s);return A.setArgKey("safe",t),A.setArgKey("targetType",h.build(n,{dialect:"snowflake"})),A}}}let O=o&&!u;if((n==="date"||n==="time")&&(!x||O)){let A=n==="date"?me:qt,R=Ue(A,{dialect:"snowflake"})(s);return R.setArgKey("safe",t),R}return new ar({this:e,expressions:s})}}function YE(e){let n=ve(e);return n instanceof Rr?n:new Mr({expressions:[...n.args.keys??[]].map((r,t)=>new er({this:r,expression:i(n.args.values??[],t)}))})}function qr(e){return new Ee({this:i(e,2),expression:i(e,1),unit:tt(i(e,0)),datePartBoundary:!0})}function Xt(e){return n=>new e({this:i(n,2),expression:i(n,1),unit:tt(i(n,0))})}function F(e,n){return r=>{if(r.length===3)return e===ft||e===lt||e===gt?new e({this:i(r,0),expression:i(r,1),padside:i(r,2)}):new ar({this:n,expressions:r});let t=yo(e)(r);return(e===St||e===Rt)&&t.setArgKey("requiresInt128",!0),t}}function tp(e){let n=Vt(i(e,0),ht),r=Vt(i(e,1),ht),t=new rr({this:r,expression:f.number(0)}).and(new sr({this:n,expression:z()}).not()),s=f.number(0),a=new ee({this:n,expression:r});return new Z({this:t,true:s,false:a})}function rp(e){let n=Vt(i(e,0),ht),r=Vt(i(e,1),ht),t=new rr({this:r,expression:f.number(0)}).or(new sr({this:r,expression:z()})),s=f.number(0),a=new ee({this:n,expression:r});return new Z({this:t,true:s,false:a})}function ep(e){let n=new sr({this:i(e,0),expression:z()});return new Z({this:n,true:f.number(0),false:i(e,0)})}function sp(e){let n={this:i(e,0),expression:i(e,1)};return e.slice(2).forEach(r=>{r instanceof at&&(n[r.name]=r)}),new Nr(n)}function np(e){let n=new rr({this:i(e,0),expression:f.number(0)});return new Z({this:n,true:z(),false:i(e,0)})}function ip(e){let n=e.text("flag");return n.includes("i")||(n+="i"),this.func("REGEXP_LIKE",[e.args.this,e.args.expression,f.string(n)])}function ap(e){let n=mr.fromArgList(e);return n.args.replacement||n.setArgKey("replacement",f.string("")),n}function g(e){return function(){return this.parseShowSnowflake(e)}}function op(e){let n=mo(e),r=tt(n.args.unit);n.setArgKey("unit",r);let t=n.args.this?.isType(["time","timetz"]);return(n instanceof yt&&(Xr(r)||t)||n instanceof xr&&!Xr(r))&&n.setArgKey("inputTypePreserved",!0),n}function Ep(e){if(e instanceof Qr){if(e.args.unpivot)return ye(e);e.args.fields?.forEach(n=>{let r=i(n?.args.expressions||[],0);if(r instanceof ns){let t=ye(r);n?.setArgKey("expressions",[t],0)}})}return e}function pp(e){if(!(e instanceof kt))return e;let n=s=>(s instanceof h&&h.NESTED_TYPES.has(s.args.this?.toString())&&s.setArgKey("expressions",void 0),s),t=e.args.properties?.find(As);if(e.args.this instanceof rs&&!t)for(let s of e.args.this.args.expressions||[])s instanceof Zr&&s.args.kind instanceof h&&s.args.kind.transform(n,{copy:!1});return e}function Tp(e){let n=e.args.expressions?.[0],{start:r,end:t,step:s}=n.args;if(!r||!t||!(s instanceof gs)||s.name!=="1")return;let a=s.args.unit;if(!a)return;let o=e.args.alias,x=et(o,X)?.args.columns?.[0]||"value",u=Xt(k)([a,new D({this:x,to:h.build("int")}),new D({this:r,to:h.build("date")})]),O=Hr.FUNCTIONS.ARRAY_GENERATE_RANGE([f.number(0),qr([a,r,t]).add(1)]);e.setArgKey("expressions",[O]);let A=e.parent;if(A instanceof nt){let R=A.parent;if(R instanceof B){let _=x instanceof d?x.name:x.toString(),L=Wr(R);if(L)for(let Kr of L.columns)Kr.name.toLowerCase()===_.toLowerCase()&&Kr.replace(Kr.parent instanceof B?u.as(_):u);let Ke=new jt({this:A.args.this?.pop()});A.replace(new nt({this:Ke}))}}else e.replace(Pe(u.as(x)).from(e.copy()).subquery(o))}function cp(e){if(e instanceof B)for(let n of e.findAll(ii)){let r=n.parent;if(!(r instanceof V)){let t=new V({expressions:[n.copy()]});n.replace(Pe(new Q({this:new es({})})).from(t).subquery())}r instanceof V&&(r.parent instanceof Jt||r.parent instanceof nt)&&r.args.expressions?.length===1&&Tp(r)}return e}function Ye(e){return(n,{dialect:r})=>new e({this:i(n,0),expression:i(n,1),position:i(n,2),occurrence:i(n,3),parameters:i(n,4),group:i(n,5)||f.number(0),...e===J?{nullIfPosOverflow:r._constructor.REGEXP_EXTRACT_POSITION_OVERFLOW_RETURNS_NULL}:{}})}function Ho(e){let n=e.args.group;n&&(n instanceof st&&n.name==="0"||n instanceof f&&String(n.args.this)==="0")&&(n=void 0);let r=e.args.parameters||(n?f.string("c"):void 0),t=e.args.occurrence||(r?f.number(1):void 0),s=e.args.position||(t?f.number(1):void 0);return this.func(e instanceof J?"REGEXP_SUBSTR":"REGEXP_EXTRACT_ALL",[e.args.this,e.args.expression,s,t,r,n])}function Ko(e){let n=new Sr({this:e.args.this,expression:e.args.expression}),r=C("x"),t=e instanceof he?new D({this:r,to:h.build("varchar")}):new pt({this:`TO_JSON(${r})`}),s=new Jr({expressions:[r],this:t});return this.func("TRANSFORM",[n,s])}function up(e){if(!(e instanceof B))return e;let n=Wr(e);if(!n)return e;let r=Array.from(n.findAll(V));if(r.length===0)return e;let t=new Set(n.sources.keys()),s={},a=new Map,o,x=e.copy();for(let u of r){if(!(u.parent instanceof Jt||u.parent instanceof nt))continue;let O=new Set;for(let R of u.args.expressions||[])if(R instanceof ot){for(let _ of R.args.expressions||[])if(_ instanceof Mr&&0<(_.args.expressions||[]).length&&_.args.expressions?.every(L=>L instanceof er)){_.args.expressions.forEach(L=>{O.add(L.args.this instanceof d?L.args.this.name.toLowerCase():L.args.this?.toString().toLowerCase()??"")});break}if(0<O.size)break}let A=u.args.alias;if(A){let R=et(A,X),_=R?.args.columns||[];o=R?.args.this||i(_,0)}else{let R=Ve(t,"value");t.add(R);let _=Gr(u,void 0,{table:[R]});n.replace(u,_),o=et(_.args.alias,X)?.args.columns?.[0]}if(!(o instanceof st))return x;a.set(u,o),O.forEach(R=>{o&&(s[R.toLowerCase()]=o)})}for(let u of n.columns){if(u.args.table)continue;let O=o instanceof d?o.name:o?.toString(),A=s[u.name.toLowerCase()];if(o&&!A&&n.sources.size===1&&u.name.toLowerCase()!==O?.toLowerCase()){let R=u.findAncestor(V,B),_=R?a.get(R):void 0;if(R instanceof V&&_&&_.name.toLowerCase()===O?.toLowerCase())continue;A=o}A&&u.setArgKey("table",A instanceof d?A.copy():A)}return e}function Ap(e){if(e instanceof B){let n=new Set;for(let r of vr(e,[V])){let t=r.args.alias;t instanceof X&&!t.args.this&&t.args.columns?.length===1&&n.add(t.args.columns[0]instanceof d?t.args.columns[0].name:t.args.columns[0].toString())}if(0<n.size){for(let r of vr(e,[Qt]))if(r.args.table instanceof d&&n.has(r.args.table.name)){let t=r.args.table,s=f.string(r.name),a=new Rs({this:t,expressions:[s]});r.parent===e?r.replace(Gr(a,r.args.this instanceof d?r.args.this.copy():r.args.this?.toString())):r.replace(a)}}}return e}function Yr(e){return e.length===2?new Kt({this:i(e,0),expression:i(e,1)}):Kt.fromArgList(e)}function xp(e){let n={EXPR:"this",SCALE:"decimals",ROUNDING_MODE:"truncate"},r={},t=["this","decimals","truncate"],s=0;for(let o of e)if(o instanceof at){let x=o.args.this?.name.toUpperCase(),u=x!==void 0?n[x]:void 0;u&&(r[u]=o.args.expression)}else s<t.length&&(r[t[s]]=o,s++);let a=new Or(r);return a.setArgKey("castsNonIntegerDecimals",!0),a}function hp(e){let n={ROWCOUNT:"rowcount",TIMELIMIT:"timeLimit"},r={};for(let t of e)if(t instanceof at){let s=t.args.this?.name.toUpperCase(),a=s!==void 0?n[s]:void 0;a&&(r[a]=t.args.expression)}return new Qs(r)}function qe(e){return new K({this:i(e,0),format:i(e,1),precision:i(e,2),scale:i(e,3),safe:!0})}var Vo,Wo,He,ut=class extends(Wo=Me,Vo=[T],Wo){static get SINGLE_TOKENS(){let r={...Me.SINGLE_TOKENS};return delete r.$,r}};He=Y(Wo),p(He,10,"SINGLE_TOKENS",Vo,ut),q(He,ut),H(He,3,ut);var vo,$o,Xo,ko,Zo,Jo,Qo,zo,jo,U,P=class extends(jo=vt,zo=[T],Qo=[T],Jo=[T],Zo=[T],ko=[T],Xo=[T],$o=[T],vo=[T],jo){static get STRING_ESCAPES(){return["\\","'"]}static get HEX_STRINGS(){return[["x'","'"],["X'","'"]]}static get RAW_STRINGS(){return["$$"]}static get COMMENTS(){return["--","//",["/*","*/"]]}static get ORIGINAL_KEYWORDS(){let r={...vt.KEYWORDS,BYTEINT:"int","FILE://":"uriStart","FILE FORMAT":"fileFormat",GET:"get",MATCH_CONDITION:"matchCondition",MATCH_RECOGNIZE:"matchRecognize",MINUS:"except","NCHAR VARYING":"varchar",PUT:"put",REMOVE:"command",RM:"command",SAMPLE:"tableSample","SEMANTIC VIEW":"semanticView",SQL_DOUBLE:"double",SQL_VARCHAR:"varchar",STAGE:"stage","STORAGE INTEGRATION":"storageIntegration",STREAMLIT:"streamlit",TAG:"tag",TIMESTAMP_TZ:"timestamptz",TOP:"top",WAREHOUSE:"warehouse",FLOAT:"double"};return delete r["/*+"],r}static get SINGLE_TOKENS(){return{...vt.SINGLE_TOKENS,$:"parameter","!":"exclamation"}}static get VAR_SINGLE_TOKENS(){return new Set(["$"])}static get COMMANDS(){return new Set(Array.from(vt.COMMANDS).filter(r=>r!=="show"))}};U=Y(jo),p(U,10,"STRING_ESCAPES",zo,P),p(U,10,"HEX_STRINGS",Qo,P),p(U,10,"RAW_STRINGS",Jo,P),p(U,10,"COMMENTS",Zo,P),p(U,10,"ORIGINAL_KEYWORDS",ko,P),p(U,10,"SINGLE_TOKENS",Xo,P),p(U,10,"VAR_SINGLE_TOKENS",$o,P),p(U,10,"COMMANDS",vo,P),q(U,P),H(U,3,P),P.NESTED_COMMENTS=!1;var tE,rE,eE,sE,nE,iE,aE,oE,EE,pE,TE,cE,uE,AE,xE,hE,fE,SE,lE,RE,m,l=class l extends(RE=N,lE=[T],SE=[T],fE=[T],hE=[T],xE=[T],AE=[T],uE=[T],cE=[T],TE=[T],pE=[T],EE=[T],oE=[T],aE=[T],iE=[T],nE=[T],sE=[T],eE=[T],rE=[T],tE=[T],RE){static get ID_VAR_TOKENS(){return new Set([...N.ID_VAR_TOKENS,"sessionUser","currentCatalog","except","matchCondition","straightJoin"])}static get TABLE_ALIAS_TOKENS(){return(()=>{let r=new Set([...N.TABLE_ALIAS_TOKENS,"window","straightJoin"]);return r.delete("matchCondition"),r})()}static get COLON_PLACEHOLDER_TOKENS(){return new Set([...l.ID_VAR_TOKENS,"number"])}static get NO_PAREN_FUNCTIONS(){return{...N.NO_PAREN_FUNCTIONS,currentTime:ur}}static get FUNCTIONS(){return(()=>{let r={...N.FUNCTIONS,ADD_MONTHS:t=>new Ir({this:i(t,0),expression:i(t,1),preserveEndOfMonth:!0}),APPROX_PERCENTILE:t=>To.fromArgList(t),CURRENT_TIME:t=>new ur({this:i(t,0)}),APPROX_TOP_K:jE,ARRAY_CONSTRUCT:t=>new ot({expressions:t}),ARRAY_CONTAINS:t=>new oe({this:i(t,1),expression:i(t,0),ensureVariant:!1}),ARRAY_GENERATE_RANGE:t=>new ae({start:i(t,0),end:new Ns({this:i(t,1),expression:f.number(1)}),step:i(t,2)}),ARRAY_SORT:t=>de.fromArgList(t),ARRAY_FLATTEN:t=>ne.fromArgList(t),BITAND:F(ft,"BITAND"),BIT_AND:F(ft,"BITAND"),BITNOT:t=>new nr({this:i(t,0)}),BIT_NOT:t=>new nr({this:i(t,0)}),BITXOR:F(gt,"BITXOR"),BIT_XOR:F(gt,"BITXOR"),BITOR:F(lt,"BITOR"),BIT_OR:F(lt,"BITOR"),BITSHIFTLEFT:F(St,"BITSHIFTLEFT"),BIT_SHIFTLEFT:F(St,"BIT_SHIFTLEFT"),BITSHIFTRIGHT:F(Rt,"BITSHIFTRIGHT"),BIT_SHIFTRIGHT:F(Rt,"BITSHIFTRIGHT"),BITANDAGG:t=>W.fromArgList(t),BITAND_AGG:t=>W.fromArgList(t),BIT_AND_AGG:t=>W.fromArgList(t),BIT_ANDAGG:t=>W.fromArgList(t),BITORAGG:t=>v.fromArgList(t),BITOR_AGG:t=>v.fromArgList(t),BIT_OR_AGG:t=>v.fromArgList(t),BIT_ORAGG:t=>v.fromArgList(t),BITXORAGG:t=>$.fromArgList(t),BITXOR_AGG:t=>$.fromArgList(t),BIT_XOR_AGG:t=>$.fromArgList(t),BIT_XORAGG:t=>$.fromArgList(t),BITMAP_OR_AGG:t=>Lr.fromArgList(t),BOOLAND:t=>new Nt({this:i(t,0),expression:i(t,1),roundInput:!0}),BOOLOR:t=>new Pt({this:i(t,0),expression:i(t,1),roundInput:!0}),BOOLNOT:t=>new ir({this:i(t,0),roundInput:!0}),BOOLXOR:t=>new _e({this:i(t,0),expression:i(t,1),roundInput:!0}),CORR:t=>new Ta({this:i(t,0),expression:i(t,1),nullOnZeroVariance:!0}),DATE:M("DATE","date"),DATEFROMPARTS:qo,DATE_FROM_PARTS:qo,DATE_TRUNC:op,DATEADD:Xt(k),DATEDIFF:qr,DAYNAME:t=>new Un({this:i(t,0),abbreviated:!0}),DAYOFWEEKISO:t=>pe.fromArgList(t),DIV0:tp,DIV0NULL:rp,EDITDISTANCE:t=>new le({this:i(t,0),expression:i(t,1),maxDist:i(t,2)}),FLATTEN:t=>fr.fromArgList(t),GENERATOR:hp,GET:t=>Ae.fromArgList(t),GETDATE:t=>b.fromArgList(t),GET_PATH:(t,{dialect:s})=>new Sr({this:i(t,0),expression:s.toJsonPath(i(t,1)),requiresJson:!0}),GREATEST_IGNORE_NULLS:t=>new ai({this:i(t,0),expressions:t.slice(1),ignoreNulls:!0}),LEAST_IGNORE_NULLS:t=>new Ri({this:i(t,0),expressions:t.slice(1),ignoreNulls:!0}),HEX_DECODE_BINARY:t=>Ht.fromArgList(t),IFF:t=>Z.fromArgList(t),MD5_HEX:t=>Fi.fromArgList(t),MD5_BINARY:t=>Bt.fromArgList(t),MD5_NUMBER_LOWER64:t=>bt.fromArgList(t),MD5_NUMBER_UPPER64:t=>Gt.fromArgList(t),MONTHNAME:t=>new gr({this:i(t,0),abbreviated:!0}),LAST_DAY:t=>new Yn({this:i(t,0),unit:tt(i(t,1))}),LEN:t=>new Se({this:i(t,0),binary:!0}),LENGTH:t=>new Se({this:i(t,0),binary:!0}),LOCALTIMESTAMP:t=>b.fromArgList(t),NULLIFZERO:np,OBJECT_CONSTRUCT:YE,OBJECT_KEYS:t=>xe.fromArgList(t),OCTET_LENGTH:t=>_t.fromArgList(t),PARSE_URL:t=>new lr({this:i(t,0),permissive:i(t,1)}),REGEXP_EXTRACT_ALL:Ye(ct),REGEXP_REPLACE:ap,REGEXP_SUBSTR:Ye(J),REGEXP_SUBSTR_ALL:Ye(ct),REPLACE:bo,RLIKE:t=>wi.fromArgList(t),ROUND:xp,SHA1_BINARY:t=>wt.fromArgList(t),SHA1_HEX:t=>Ie.fromArgList(t),SHA2_BINARY:t=>Yt.fromArgList(t),SHA2_HEX:t=>Zi.fromArgList(t),SQUARE:t=>new dr({this:i(t,0),expression:f.number(2)}),STDDEV_SAMP:t=>no.fromArgList(t),STRTOK:zE,SYSDATE:t=>new b({this:i(t,0),sysdate:!0}),TABLE:t=>new tr({this:i(t,0)}),TIME_ADD:Xt(Et),TIMEADD:Xt(Et),TIMEDIFF:qr,TIME_FROM_PARTS:t=>new Lt({hour:i(t,0),min:i(t,1),sec:i(t,2),nano:i(t,3),overflow:!0}),TIMEFROMPARTS:t=>new Lt({hour:i(t,0),min:i(t,1),sec:i(t,2),nano:i(t,3),overflow:!0}),TIMESTAMPADD:Xt(k),TIMESTAMPDIFF:qr,TIMESTAMPFROMPARTS:Yr,TIMESTAMP_FROM_PARTS:Yr,TIMESTAMPNTZFROMPARTS:Yr,TIMESTAMP_NTZ_FROM_PARTS:Yr,TRUNC:(t,{dialect:s})=>Be(t,{dialect:s,dateTruncRequiresPart:!1}),TRUNCATE:(t,{dialect:s})=>Be(t,{dialect:s,dateTruncRequiresPart:!1}),TRY_DECRYPT:t=>new Dt({this:i(t,0),passphrase:i(t,1),aad:i(t,2),encryptionMethod:i(t,3),safe:!0}),TRY_DECRYPT_RAW:t=>new Ft({this:i(t,0),key:i(t,1),iv:i(t,2),aad:i(t,3),encryptionMethod:i(t,4),aead:i(t,5),safe:!0}),TRY_PARSE_JSON:t=>new pt({this:i(t,0),safe:!0}),TRY_TO_BINARY:t=>new Ut({this:i(t,0),format:i(t,1),safe:!0}),TRY_TO_BOOLEAN:t=>new Mt({this:i(t,0),safe:!0}),TRY_TO_DATE:M("TRY_TO_DATE","date",{safe:!0}),TRY_TO_DECIMAL:qe,TRY_TO_NUMBER:qe,TRY_TO_NUMERIC:qe,TRY_TO_DOUBLE:t=>new ie({this:i(t,0),format:i(t,1),safe:!0}),TRY_TO_FILE:t=>new Ct({this:i(t,0),path:i(t,1),safe:!0}),TRY_TO_TIME:M("TRY_TO_TIME","time",{safe:!0}),TRY_TO_TIMESTAMP:M("TRY_TO_TIMESTAMP","timestamp",{safe:!0}),TRY_TO_TIMESTAMP_LTZ:M("TRY_TO_TIMESTAMP_LTZ","timestampltz",{safe:!0}),TRY_TO_TIMESTAMP_NTZ:M("TRY_TO_TIMESTAMP_NTZ","timestampntz",{safe:!0}),TRY_TO_TIMESTAMP_TZ:M("TRY_TO_TIMESTAMP_TZ","timestamptz",{safe:!0}),TO_CHAR:Ge,TO_DATE:M("TO_DATE","date"),TO_DECIMAL:t=>new K({this:i(t,0),format:i(t,1),precision:i(t,2),scale:i(t,3)}),TO_NUMBER:t=>new K({this:i(t,0),format:i(t,1),precision:i(t,2),scale:i(t,3)}),TO_NUMERIC:t=>new K({this:i(t,0),format:i(t,1),precision:i(t,2),scale:i(t,3)}),TO_TIME:M("TO_TIME","time"),TO_TIMESTAMP:M("TO_TIMESTAMP","timestamp"),TO_TIMESTAMP_LTZ:M("TO_TIMESTAMP_LTZ","timestampltz"),TO_TIMESTAMP_NTZ:M("TO_TIMESTAMP_NTZ","timestampntz"),TO_TIMESTAMP_TZ:M("TO_TIMESTAMP_TZ","timestamptz"),TO_VARCHAR:Ge,TO_JSON:t=>fe.fromArgList(t),VECTOR_COSINE_SIMILARITY:t=>It.fromArgList(t),VECTOR_INNER_PRODUCT:t=>dt.fromArgList(t),VECTOR_L1_DISTANCE:t=>Ot.fromArgList(t),VECTOR_L2_DISTANCE:t=>mt.fromArgList(t),ZEROIFNULL:ep,LIKE:be(Os),ILIKE:be(se),SEARCH:sp,SKEW:t=>Ne.fromArgList(t),SYSTIMESTAMP:t=>b.fromArgList(t),WEEKISO:t=>Te.fromArgList(t),WEEKOFYEAR:t=>ua.fromArgList(t)};return delete r.PREDICT,r})()}static get FUNCTION_PARSERS(){return(()=>{let r={...N.FUNCTION_PARSERS,DATE_PART:function(){return this.parseDatePart()},DIRECTORY:function(){return this.parseDirectory()},OBJECT_CONSTRUCT_KEEP_NULL:function(){return this.parseJsonObject()},LISTAGG:function(){return this.parseStringAgg()},SEMANTIC_VIEW:function(){return this.parseSemanticView()}};return delete r.TRIM,r})()}static get TIMESTAMPS(){return new Set(Array.from(N.TIMESTAMPS).filter(r=>r!=="time"))}static get ALTER_PARSERS(){return{...N.ALTER_PARSERS,SESSION:function(){return this.parseAlterSession()},UNSET:function(){return this.expression(kr,{tag:this.matchTextSeq("TAG"),expressions:this.parseCsv(()=>this.parseIdVar()),unset:!0})}}}static get STATEMENT_PARSERS(){return{...N.STATEMENT_PARSERS,get:function(){return this.parseGet()},put:function(){return this.parsePut()},show:function(){return this.parseShow()}}}static get PROPERTY_PARSERS(){return{...N.PROPERTY_PARSERS,CREDENTIALS:function(){return this.parseCredentialsProperty()},FILE_FORMAT:function(){return this.parseFileFormatProperty()},LOCATION:function(){return this.parseLocationProperty()},TAG:function(){return this.parseTag()},USING:function(){return(this.matchTextSeq("TEMPLATE")||void 0)&&this.expression(Ss,{this:this.parseStatement()})}}}static get TYPE_CONVERTERS(){return{decimal:Do(38,0)}}static get SHOW_PARSERS(){return{DATABASES:g("DATABASES"),"TERSE DATABASES":g("DATABASES"),SCHEMAS:g("SCHEMAS"),"TERSE SCHEMAS":g("SCHEMAS"),OBJECTS:g("OBJECTS"),"TERSE OBJECTS":g("OBJECTS"),TABLES:g("TABLES"),"TERSE TABLES":g("TABLES"),VIEWS:g("VIEWS"),"TERSE VIEWS":g("VIEWS"),"PRIMARY KEYS":g("PRIMARY KEYS"),"TERSE PRIMARY KEYS":g("PRIMARY KEYS"),"IMPORTED KEYS":g("IMPORTED KEYS"),"TERSE IMPORTED KEYS":g("IMPORTED KEYS"),"UNIQUE KEYS":g("UNIQUE KEYS"),"TERSE UNIQUE KEYS":g("UNIQUE KEYS"),SEQUENCES:g("SEQUENCES"),"TERSE SEQUENCES":g("SEQUENCES"),STAGES:g("STAGES"),COLUMNS:g("COLUMNS"),USERS:g("USERS"),"TERSE USERS":g("USERS"),"FILE FORMATS":g("FILE FORMATS"),FUNCTIONS:g("FUNCTIONS"),PROCEDURES:g("PROCEDURES"),WAREHOUSES:g("WAREHOUSES")}}static get CONSTRAINT_PARSERS(){return{...N.CONSTRAINT_PARSERS,WITH:function(){return this.parseWithConstraint()},MASKING:function(){return this.parseWithConstraint()},PROJECTION:function(){return this.parseWithConstraint()},TAG:function(){return this.parseWithConstraint()}}}static get STAGED_FILE_SINGLE_TOKENS(){return new Set(["dot","mod","slash"])}static get FLATTEN_COLUMNS(){return["SEQ","KEY","PATH","INDEX","VALUE","THIS"]}static get SCHEMA_KINDS(){return new Set(["OBJECTS","TABLES","VIEWS","SEQUENCES","UNIQUE KEYS","IMPORTED KEYS"])}static get NON_TABLE_CREATABLES(){return new Set(["STORAGE INTEGRATION","TAG","WAREHOUSE","STREAMLIT"])}static get LAMBDAS(){return{...N.LAMBDAS,arrow:function(r){return this.expression(Jr,{this:this.replaceLambda(this.parseAssignment(),r),expressions:r.map(t=>t instanceof D?t.args.this:t)})}}}static get COLUMN_OPERATORS(){return{...N.COLUMN_OPERATORS,exclamation:function(r,t){return this.expression(os,{this:r,expression:t})}}}parseDirectory(){let r=this.parseTableParts();return r instanceof it&&(r=r.args.this),this.expression(Ze,{this:r})}parseUse(){if(this.matchTextSeq(["SECONDARY","ROLES"])){let r=this.matchTexts(["ALL","NONE"])&&new xt({this:this.prev?.text.toUpperCase()}),t=r?void 0:this.parseCsv(()=>this.parseTable({schema:!1}));return this.expression(Es,{kind:"SECONDARY ROLES",this:r||void 0,expressions:t})}return super.parseUse()}negateRange(r){if(!r)return r;let t=r.getArgKey("query");return r instanceof Cs&&t instanceof $e?this.expression(_s,{this:r.args.this,expression:new fa({this:t.unnest()})}):this.expression(Ps,{this:r})}parseTag(){return this.expression(fs,{expressions:this.parseWrappedCsv(()=>this.parseProperty())})}parseWithConstraint(){if(this.prev?.tokenType!=="with"&&this.retreat(this.index-1),this.matchTextSeq(["MASKING","POLICY"])){let r=this.parseColumn();return this.expression(Ts,{this:r instanceof Qt?r.toDot():r,expressions:this.match("using")&&this.parseWrappedCsv(()=>this.parseIdVar())})}if(this.matchTextSeq(["PROJECTION","POLICY"])){let r=this.parseColumn();return this.expression(cs,{this:r instanceof Qt?r.toDot():r})}if(this.match("tag"))return this.parseTag()}parseWithProperty(){return this.match("tag")?this.parseTag():super.parseWithProperty()}parseCreate(){let r=super.parseCreate();if(r instanceof kt&&this.constructor.NON_TABLE_CREATABLES.has(r.args.kind??"")){let t=r.args.this;t instanceof it&&t.replace(t.args.this)}return r}parseDatePart(){let r=this.parseVar()||this.parseType();if(!r)return;let t=this.matchSet(["from","comma"])&&this.parseBitwise();return this.expression(ce,{this:tt(r,{dialect:this.dialect}),expression:t||void 0})}parseBracketKeyValue(r={}){let{isMap:t=!1}=r;return t?this.parseSlice(this.parseString())||this.parseAssignment():this.parseSlice(this.parseAlias(this.parseAssignment(),{explicit:!0}))}parseLateral(){let r=super.parseLateral();if(!r)return r;if(r.args.this instanceof fr){let t=r.args.alias,s=this.constructor.FLATTEN_COLUMNS.map(a=>C(a));t&&!t.getArgKey("columns")?t.setArgKey("columns",s):t||Gr(r,"_flattened",{table:s,copy:!1})}return r}parseTableParts(r={}){let{schema:t=!1,isDbReference:s=!1}=r,a;if(this.match("string",{advance:!1})?a=this.parseString():this.matchTextSeq("@",{advance:!1})&&(a=this.parseLocationPath()),a){let o,x,u=this.match("lParen");for(;this.curr&&u&&!this.match("rParen");){if(this.matchTextSeq(["FILE_FORMAT","=>"]))o=this.parseString()||super.parseTableParts({isDbReference:s});else if(this.matchTextSeq(["PATTERN","=>"]))x=this.parseString();else break;this.match("comma")}return this.expression(it,{this:a,format:o,pattern:x})}return super.parseTableParts({schema:t,isDbReference:s})}parseTable(r={}){let t=super.parseTable(r);if(t instanceof it&&t.args.this instanceof tr){let s=t.args.this;for(let a of tr.availableArgs)a!=="this"&&s.setArgKey(a,t.getArgKey(a));t=s}return t}parseIdVar(r={}){let{anyToken:t=!0,tokens:s}=r;if(this.matchTextSeq(["IDENTIFIER","("])){let a=super.parseIdVar({anyToken:t,tokens:s})||this.parseString();return this.matchRParen(),this.expression(ar,{this:"IDENTIFIER",expressions:[a]})}return super.parseIdVar({anyToken:t,tokens:s})}parseShowSnowflake(r){let t,s,a=this.tokens[this.index-2].text.toUpperCase()==="TERSE",o=this.matchTextSeq("HISTORY"),x=this.match("like")?this.parseString():void 0;return this.match("in")&&(this.matchTextSeq("ACCOUNT")?s="ACCOUNT":this.matchTextSeq("CLASS")?(s="CLASS",t=this.parseTableParts()):this.matchTextSeq("APPLICATION")?(s="APPLICATION",this.matchTextSeq("PACKAGE")&&(s+=" PACKAGE"),t=this.parseTableParts()):this.matchSet(this.constructor.DB_CREATABLES)?(s=this.prev?.text.toUpperCase(),this.curr&&(t=this.parseTableParts())):this.curr&&(s=this.constructor.SCHEMA_KINDS.has(r)?"SCHEMA":"TABLE",t=this.parseTableParts())),this.expression(ke,{terse:a,this:r,history:o,like:x,scope:t,scopeKind:s,startsWith:this.matchTextSeq(["STARTS","WITH"])?this.parseString():void 0,limit:this.parseLimit(),from:this.match("from")?this.parseString():void 0,privileges:this.matchTextSeq(["WITH","PRIVILEGES"])?this.parseCsv(()=>this.parseVar({anyToken:!0,upper:!0})):void 0})}parsePut(){return this.curr?.tokenType!=="string"?this.parseAsCommand(this.prev):this.expression(je,{this:this.parseString(),target:this.parseLocationPath(),properties:this.parseProperties()})}parseGet(){let r=this.prev;if(this.match("lParen"))return this.retreat(this.index-2),this.parseExpression();let t=this.parseLocationPath();return this.curr?.tokenType==="uriStart"?this.parseAsCommand(r):this.expression(ts,{this:this.parseString(),target:t,properties:this.parseProperties()})}parseLocationProperty(){return this.match("eq"),this.expression(zt,{this:this.parseLocationPath()})}parseFileLocation(){return this.match("lParen",{advance:!1})?this.parseSelect({table:!0,parseSubqueryAlias:!1}):this.parseTableParts()}parseLocationPath(){let r=this.curr;for(this.advanceAny({ignoreReserved:!0});this.isConnected()&&!this.matchSet(["comma","lParen","rParen"],{advance:!1});)this.advanceAny({ignoreReserved:!0});return new xt({this:this.findSql(r,this.prev)})}parseLambdaArg(){let r=super.parseLambdaArg();if(!r)return r;let t=this.parseTypes();return t?this.expression(D,{this:r,to:t}):r}parseForeignKey(){return this.match("references",{advance:!1})?this.expression(Je):super.parseForeignKey()}parseFileFormatProperty(){this.match("eq");let r;return this.match("lParen",{advance:!1})?r=this.parseWrappedOptions():r=[this.parseFormatName()],this.expression(zr,{expressions:r})}parseCredentialsProperty(){return this.expression(jr,{expressions:this.parseWrappedOptions()})}parseSemanticView(){let r={this:this.parseTableParts()};for(;this.curr&&!this.match("rParen",{advance:!1});)if(this.matchTexts(["DIMENSIONS","METRICS","FACTS"])){let t=this.prev?.text.toLowerCase()??"";r[t]=this.parseCsv(()=>this.parseDisjunction())}else if(this.matchTextSeq("WHERE"))r.where=this.parseExpression();else{this.raiseError("Expecting ) or encountered unexpected keyword");break}return this.expression(ze,r)}parseSet(r={}){let{unset:t=!1,tag:s=!1}=r,a=super.parseSet({unset:t,tag:s});if(a instanceof kr)for(let o of a.args.expressions||[])o instanceof Xe&&o.setArgKey("kind","VARIABLE");return a}parseWindow(r,t={}){if(r instanceof Ua&&this.matchTextSeq("FROM")&&this.matchTexts(["FIRST","LAST"])){let s=this.prev?.text.toUpperCase()==="FIRST";r.setArgKey("fromFirst",s)}return super.parseWindow(r,t)}};m=Y(RE),p(m,10,"ID_VAR_TOKENS",lE,l),p(m,10,"TABLE_ALIAS_TOKENS",SE,l),p(m,10,"COLON_PLACEHOLDER_TOKENS",fE,l),p(m,10,"NO_PAREN_FUNCTIONS",hE,l),p(m,10,"FUNCTIONS",xE,l),p(m,10,"FUNCTION_PARSERS",AE,l),p(m,10,"TIMESTAMPS",uE,l),p(m,10,"ALTER_PARSERS",cE,l),p(m,10,"STATEMENT_PARSERS",TE,l),p(m,10,"PROPERTY_PARSERS",pE,l),p(m,10,"TYPE_CONVERTERS",EE,l),p(m,10,"SHOW_PARSERS",oE,l),p(m,10,"CONSTRAINT_PARSERS",aE,l),p(m,10,"STAGED_FILE_SINGLE_TOKENS",iE,l),p(m,10,"FLATTEN_COLUMNS",nE,l),p(m,10,"SCHEMA_KINDS",sE,l),p(m,10,"NON_TABLE_CREATABLES",eE,l),p(m,10,"LAMBDAS",rE,l),p(m,10,"COLUMN_OPERATORS",tE,l),q(m,l),H(m,3,l),l.IDENTIFY_PIVOT_STRINGS=!0,l.DEFAULT_SAMPLING_METHOD="BERNOULLI",l.COLON_IS_VARIANT_EXTRACT=!0,l.JSON_EXTRACT_REQUIRES_JSON_EXPRESSION=!0;var Hr=l,gE,IE,dE,mE,OE,_E,NE,PE,ME,CE,y,c=class extends(CE=Wt,ME=[T],PE=[T],NE=[T],_E=[T],OE=[T],mE=[T],dE=[T],IE=[T],gE=[T],CE){static get AFTER_HAVING_MODIFIER_TRANSFORMS(){let r=new Map(super.AFTER_HAVING_MODIFIER_TRANSFORMS);return["cluster","distribute","sort"].forEach(t=>r.delete(t)),r}static get STRUCT_DELIMITER(){return["(",")"]}static get ORIGINAL_TRANSFORMS(){return new Map([...Wt.TRANSFORMS,[Ma,E("APPROX_COUNT_DISTINCT")],[Dr,E("MAX_BY")],[Fr,E("MIN_BY")],[ot,j([fo])],[Tr,Io("ARRAY_CAT")],[Er,De("ARRAY_APPEND")],[pr,De("ARRAY_PREPEND")],[oe,function(t){return this.func("ARRAY_CONTAINS",[t.args.ensureVariant===!1?t.args.expression:new D({this:t.args.expression,to:h.build("variant")}),t.args.this])}],[rn,E("ARRAY_INTERSECTION")],[is,function(t){return this.func("CONVERT_TIMEZONE",[t.args.zone,t.args.this])}],[lt,E("BITOR")],[gt,E("BITXOR")],[ft,E("BITAND")],[W,E("BITANDAGG")],[v,E("BITORAGG")],[$,E("BITXORAGG")],[nr,E("BITNOT")],[St,E("BITSHIFTLEFT")],[Rt,E("BITSHIFTRIGHT")],[kt,j([pp])],[b,function(t){return t.args.sysdate?this.func("SYSDATE",[]):this.functionFallbackSql(t)}],[ur,function(t){return t.args.this?this.func("CURRENT_TIME",[t.args.this]):"CURRENT_TIME"}],[Ar,function(t){return t.args.this?this.func("CURRENT_TIMESTAMP",[t.args.this]):"CURRENT_TIMESTAMP"}],[k,G("DATEADD")],[Ee,G("DATEDIFF")],[Cn,G("TIMESTAMPADD")],[yn,Fo],[Wn,Po],[Dt,function(t){return this.func(`${t.args.safe?"TRY_":""}DECRYPT`,[t.args.this,t.args.passphrase,t.args.aad,t.args.encryptionMethod])}],[Ft,function(t){return this.func(`${t.args.safe?"TRY_":""}DECRYPT_RAW`,[t.args.this,t.args.key,t.args.iv,t.args.aad,t.args.encryptionMethod,t.args.aead])}],[Dn,E("DAYOFMONTH")],[Ln,E("DAYOFWEEK")],[pe,E("DAYOFWEEKISO")],[Fn,E("DAYOFYEAR")],[dt,E("VECTOR_INNER_PRODUCT")],[fr,E("FLATTEN")],[ce,function(t){return this.func("DATE_PART",[tt(t.args.this,{dialect:this.dialect}),t.args.expression])}],[It,E("VECTOR_COSINE_SIMILARITY")],[mt,E("VECTOR_L2_DISTANCE")],[zr,function(t){return`FILE_FORMAT=(${this.expressions(t,{key:"expressions",sep:" "})})`}],[as,function(t){return this.func("CONVERT_TIMEZONE",[t.args.zone,f.string("UTC"),t.args.this])}],[ae,function(t){return this.func("ARRAY_GENERATE_RANGE",[t.args.start,t.args.end?.add(1),t.args.step])}],[Ae,E("GET")],[wa,function(t){return Bo.call(this,t,{sep:""})}],[Z,lo("IFF","NULL")],[fi,Ko],[Si,function(t){return this.func("JSON_EXTRACT_PATH_TEXT",[t.args.this,t.args.expression])}],[xe,E("OBJECT_KEYS")],[hi,function(t){return this.func("OBJECT_CONSTRUCT_KEEP_NULL",t.args.expressions||[])}],[re,()=>""],[he,Ko],[le,function(t){return Le.call(this,t,"insCost","delCost","subCost"),E("EDITDISTANCE").call(this,t)}],[zt,function(t){return`LOCATION=${this.sql(t,"this")}`}],[Ha,E("BOOLAND_AGG")],[qa,E("BOOLOR_AGG")],[Re,function(t){return Fe.call(this,t,"OBJECT_CONSTRUCT")}],[Ot,E("VECTOR_L1_DISTANCE")],[wn,Uo],[Ka,Co],[va,Mo],[pt,function(t){return this.func(`${t.args.safe?"TRY_":""}PARSE_JSON`,[t.args.this])}],[Ut,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_BINARY`,[t.args.this,t.args.format])}],[Mt,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_BOOLEAN`,[t.args.this])}],[ie,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_DOUBLE`,[t.args.this,t.args.format])}],[Ct,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_FILE`,[t.args.this,t.args.path])}],[K,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_NUMBER`,[t.args.this,t.args.format,t.args.precision,t.args.scale])}],[fe,E("TO_JSON")],[te,function(t){return`PARTITION BY ${this.sql(t,"this")}`}],[Br,j([Ce])],[br,j([Ce])],[Qr,j([Ep])],[J,Ho],[ct,Ho],[Yi,ip],[Tt,E("RANDOM")],[B,j([ho,uo,Ao(),xo,cp,up,Ap])],[Ie,E("SHA1")],[wt,E("SHA1_BINARY")],[Bt,E("MD5_BINARY")],[bt,E("MD5_NUMBER_LOWER64")],[Gt,E("MD5_NUMBER_UPPER64")],[Ya,E("TO_CHAR")],[de,E("ARRAY_SORT")],[Ne,E("SKEW")],[Rr,E("OBJECT_CONSTRUCT")],[ta,E("STARTSWITH")],[ra,E("ENDSWITH")],[ea,function(t){return go.call(this,t,{funcName:"CHARINDEX",supportsPosition:!0})}],[na,function(t){return this.func("DATE",[t.args.this,this.formatTime(t)])}],[cr,E("STRTOK_TO_ARRAY")],[Cr,E("INSERT")],[en,E("ST_MAKEPOINT")],[Et,G("TIMEADD")],[hr,function(t){return this.func("TIME_SLICE",[t.args.this,t.args.expression,Lo(t),t.args.kind])}],[Hn,_o],[ue,G("TIMESTAMPADD")],[Kn,function(t){return this.func("TIMESTAMPDIFF",[t.args.unit,t.args.expression,t.args.this])}],[yt,Oo()],[oa,No],[aa,function(t){return`EXTRACT(epoch_second FROM ${this.sql(t,"this")})`}],[$s,E("TO_ARRAY")],[ks,function(t){return this.functionFallbackSql(t)}],[Ea,G("DATEADD",{cast:!0})],[pa,G("DATEDIFF")],[me,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_DATE`,[t.args.this,this.formatTime(t)])}],[qt,function(t){return this.func(`${t.args.safe?"TRY_":""}TO_TIME`,[t.args.this,this.formatTime(t)])}],[Ht,E("HEX_DECODE_BINARY")],[Oe,function(t){return this.func("TO_TIMESTAMP",[t.args.this,t.args.scale])}],[yr,E("UUID_STRING")],[ge,function(t){return Fe.call(this,t,"OBJECT_CONSTRUCT")}],[Nt,E("BOOLAND")],[Pt,E("BOOLOR")],[Te,E("WEEKISO")],[Bn,E("YEAROFWEEK")],[bn,E("YEAROFWEEKISO")],[_e,E("BOOLXOR")],[_t,E("OCTET_LENGTH")],[ne,E("ARRAY_FLATTEN")],[Da,function(t){return this.func("ARRAY_FLATTEN",[new Q({this:t.args.this})])}],[Yt,function(t){return this.func("SHA2_BINARY",[t.args.this,t.args.length||f.number(256)])}]])}nthValueSql(r){let t=this.func("NTH_VALUE",[r.args.this,r.args.offset]),s=r.args.fromFirst;return s!==void 0&&(t+=s?" FROM FIRST":" FROM LAST"),t}static get SUPPORTED_JSON_PATH_PARTS(){return new Set([Is,re,ds])}static get TYPE_MAPPING(){return new Map([...Wt.TYPE_MAPPING,["bigdecimal","DOUBLE"],["nested","OBJECT"],["struct","OBJECT"],["text","VARCHAR"]])}static get TOKEN_MAPPING(){return{autoIncrement:"AUTOINCREMENT"}}static get PROPERTIES_LOCATION(){return new Map([...Wt.PROPERTIES_LOCATION,[jr,"postWith"],[zt,"postWith"],[te,"postSchema"],[hs,"unsupported"],[ls,"unsupported"]])}static get UNSUPPORTED_VALUES_EXPRESSIONS(){return new Set([Re,Rr,Mr,ge])}static get RESPECT_IGNORE_NULLS_UNSUPPORTED_EXPRESSIONS(){return[Q]}withProperties(r){return this.properties(r,{wrapped:!1,prefix:this.sep(""),sep:" "})}valuesSql(r,t={}){let{valuesAsTable:s=!0}=t;return r.find(this._constructor.UNSUPPORTED_VALUES_EXPRESSIONS)&&(s=!1),super.valuesSql(r,{valuesAsTable:s})}dataTypeSql(r){if(r.isType("double")){let s=r.parent;if(s instanceof h&&s.isType("vector"))return"FLOAT"}let t=r.args.expressions;if(t&&r.isType(h.STRUCT_TYPES))for(let s of t){if(s instanceof h)return"OBJECT";s instanceof Zr&&s.args.this instanceof f&&s.args.this.isString&&s.args.this.replace(C(s.name,{quoted:!0}))}return super.dataTypeSql(r)}toNumberSql(r){return this.func("TO_NUMBER",[r.args.this,r.args.format,r.args.precision,r.args.scale])}timestampFromPartsSql(r){let t=r.args.milli;if(t!==void 0){let s=t.pop().mul(f.number(1e6));r.setArgKey("nano",s)}return E("TIMESTAMP_FROM_PARTS").call(this,r)}castSql(r,t={}){return r.isType("geography")?this.func("TO_GEOGRAPHY",[r.args.this]):r.isType("geometry")?this.func("TO_GEOMETRY",[r.args.this]):super.castSql(r,t)}tryCastSql(r){let t=r.args.this;return t!==void 0&&!t.type&&(t=$r(t,{dialect:this.dialect})),r.args.requiresString||t?.isType(h.TEXT_TYPES)?super.tryCastSql(r):this.castSql(r)}logSql(r){return r.args.expression?super.logSql(r):this.func("LN",[r.args.this])}greatestSql(r){let t=r.args.ignoreNulls?"GREATEST_IGNORE_NULLS":"GREATEST";return this.func(t,[r.args.this,...r.args.expressions||[]])}leastSql(r){let t=r.args.ignoreNulls?"LEAST_IGNORE_NULLS":"LEAST";return this.func(t,[r.args.this,...r.args.expressions||[]])}generatorSql(r){let t=[],s=r.args.rowcount,a=r.args.timeLimit;return s&&t.push(new at({this:new xt({this:"ROWCOUNT"}),expression:s})),a&&t.push(new at({this:new xt({this:"TIMELIMIT"}),expression:a})),this.func("GENERATOR",t)}unnestSql(r){let t=r.args.alias,s=r.args.offset,a=et(t,X)?.args.columns||[],o=i(a,0)||C("value"),x=[C("seq"),C("key"),C("path"),s instanceof st?s.pop():C("index"),o,C("this")],u=t;u?u.setArgKey("columns",x):u=new X({this:C("_u"),columns:x});let O=this.sql(r.args.expressions?.[0]);O.startsWith("INPUT =>")||(O=`INPUT => ${O}`);let A=r.parent,R=A instanceof jt?`FLATTEN(${O})`:`TABLE(FLATTEN(${O}))`,_=this.sql(u),L=_?` AS ${_}`:"";return`${A instanceof Jt||A instanceof nt||A instanceof jt?"":`${this.sql(o)} FROM `}${R}${L}`}showSql(r){let t=r.args.terse?"TERSE ":"",s=r.args.history?" HISTORY":"",a=this.sql(r,"like");a=a?` LIKE ${a}`:"";let o=this.sql(r,"scope");o=o?` ${o}`:"";let x=this.sql(r,"scopeKind");x&&(x=` IN ${x}`);let u=this.sql(r,"startsWith");u&&(u=` STARTS WITH ${u}`);let O=this.sql(r,"limit"),A=this.sql(r,"from");A&&(A=` FROM ${A}`);let R=this.expressions(r,{key:"privileges",flat:!0});return R=R?` WITH PRIVILEGES ${R}`:"",`SHOW ${t}${r.name}${s}${a}${x}${o}${u}${O}${A}${R}`}describeSql(r){let t=r.args.kind||"TABLE",s=t?` ${t}`:"",a=` ${this.sql(r,"this")}`,o=this.expressions(r,{flat:!0});return o=o?` ${o}`:"",`DESCRIBE${s}${a}${o}`}generatedAsIdentityColumnConstraintSql(r){let t=r.args.start?` START ${r.args.start}`:"",s=r.args.increment?` INCREMENT ${r.args.increment}`:"",a="";return r.args.order!==void 0&&(a=r.args.order?" ORDER":" NOORDER"),`AUTOINCREMENT${t}${s}${a}`}clusterSql(r){return`CLUSTER BY (${this.expressions(r,{flat:!0})})`}structSql(r){if(r.args.expressions?.length===1){let o=r.args.expressions[0];if(o.isStar||o instanceof se&&et(o.args.this,d)?.isStar)return`{${this.sql(r.args.expressions[0])}}`}let t=[],s=[];r.args.expressions?.forEach((o,x)=>{o instanceof er?(o.args.this!==void 0&&t.push(o.args.this instanceof st?f.string(o.name):o.args.this),o.args.expression!==void 0&&s.push(o.args.expression)):(t.push(f.string(`_${x}`)),s.push(o))});let a=[];for(let o=0;o<t.length;o++)a.push(t[o],s[o]);return this.func("OBJECT_CONSTRUCT",a)}approxQuantileSql(r){return Le.call(this,r,"weight","accuracy"),this.func("APPROX_PERCENTILE",[r.args.this,r.args.quantile])}alterSetSql(r){let t=this.expressions(r,{flat:!0});t=t?` ${t}`:"";let s=this.expressions(r,{key:"fileFormat",flat:!0,sep:" "});s=s?` STAGE_FILE_FORMAT = (${s})`:"";let a=this.expressions(r,{key:"copyOptions",flat:!0,sep:" "});a=a?` STAGE_COPY_OPTIONS = (${a})`:"";let o=this.expressions(r,{key:"tag",flat:!0});return o=o?` TAG ${o}`:"",`SET${t}${s}${a}${o}`}strToTimeSql(r){let t=r.args.targetType,s;t instanceof h?s=t.args.this?.toString():r.type?s=r.type instanceof d?r.type.args.this?.toString():r.type.toString():s="timestamp";let a=wE[s||""]||"TO_TIMESTAMP";return this.func(`${r.args.safe?"TRY_":""}${a}`,[r.args.this,this.formatTime(r)])}timestampSubSql(r){return this.sql(new ue({this:r.args.this,expression:r.args.expression?.mul(-1),unit:r.args.unit}))}jsonExtractSql(r){let t=r.args.this;return!(t instanceof pt||t instanceof Sr)&&!r.args.requiresJson&&(t=new pt({this:t})),this.func("GET_PATH",[t,r.args.expression])}timeToStrSql(r){let t=r.args.this;return t instanceof f&&t.isString&&(t=new D({this:t,to:h.build("timestamp")})),this.func("TO_CHAR",[t,this.formatTime(r)])}dateSubSql(r){let t=r.args.expression;return t?t.replace(t.mul(-1)):this.unsupported("DateSub cannot be transpiled if the subtracted count is unknown"),G("DATEADD").call(this,r)}selectSql(r){let t=r.args.limit;return r.args.offset&&!t&&r.limit(z(),{copy:!1}),super.selectSql(r)}createableSql(r,t){let s=r.find(xs),a=r.find(us);if(r.args.kind==="view"&&s&&a){let o=t.get("postSchema")||[],x=o.indexOf(a);x!==-1&&o.splice(x,1);let u=this.sql(r.args.this,"this"),O=this.sql(a),A=this.schemaColumnsSql(r.args.this);return A=A?`${this.sep()}${A}`:"",`${u}${this.sep()}${O}${A}`}return super.createableSql(r,t)}arrayAggSql(r){let t=r.args.this,s=t instanceof At?t:void 0;s&&r.setArgKey("this",s.args.this?.pop());let a=super.arrayAggSql(r);return s&&(a=this.sql(new Zt({this:a,expression:s}))),a}arraySql(r){let t=i(r.args.expressions||[],0);if(t instanceof B&&t.text("kind").toUpperCase()==="STRUCT"){let s=[];t.args.expressions?.forEach(o=>{let x=o instanceof ss?o.args.this:o;s.push(f.string(o.aliasOrName),x??z())});let a=new Q({this:YE(s)});return t.setArgKey("kind",void 0),t.setArgKey("expressions",[a]),this.sql(t.subquery())}return Ro.call(this,r)}currentDateSql(r){let t=this.sql(r,"this");if(!t)return super.currentDateSql(r);let s=new D({this:new or({targetTz:t,timestamp:new b({})}),to:h.build("date")});return this.sql(s)}dotSql(r){let t=r.args.this;return t instanceof d&&!t?.type&&(t=$r(t,{dialect:this.dialect})),!(t instanceof ms)&&co(t,"struct")?`${this.sql(t)}:${this.sql(r,"expression")}`:super.dotSql(r)}modelAttributeSql(r){return`${this.sql(r,"this")}!${this.sql(r,"expression")}`}formatSql(r){return r.name.toLowerCase()==="%s"&&r.args.expressions?.length===1?this.func("TO_CHAR",[r.args.expressions[0]]):this.functionFallbackSql(r)}splitPartSql(r){return r.args.delimiter||r.setArgKey("delimiter",f.string(" ")),r.args.partIndex||r.setArgKey("partIndex",f.number(1)),E("SPLIT_PART").call(this,r)}uniformSql(r){let t=r.args.gen,s=r.args.seed;return s&&(t=new Tt({this:s})),t||(t=new Tt),this.func("UNIFORM",[r.args.this,r.args.expression,t])}};y=Y(CE),p(y,10,"AFTER_HAVING_MODIFIER_TRANSFORMS",ME,c),p(y,10,"STRUCT_DELIMITER",PE,c),p(y,10,"ORIGINAL_TRANSFORMS",NE,c),p(y,10,"SUPPORTED_JSON_PATH_PARTS",_E,c),p(y,10,"TYPE_MAPPING",OE,c),p(y,10,"TOKEN_MAPPING",mE,c),p(y,10,"PROPERTIES_LOCATION",dE,c),p(y,10,"UNSUPPORTED_VALUES_EXPRESSIONS",IE,c),p(y,10,"RESPECT_IGNORE_NULLS_UNSUPPORTED_EXPRESSIONS",gE,c),q(y,c),H(y,3,c),c.SELECT_KINDS=[],c.TRY_SUPPORTED=!1,c.SUPPORTS_UESCAPE=!1,c.PARAMETER_TOKEN="$",c.MATCHED_BY_SOURCE=!1,c.SINGLE_STRING_INTERVAL=!0,c.JOIN_HINTS=!1,c.TABLE_HINTS=!1,c.QUERY_HINTS=!1,c.AGGREGATE_FILTER_SUPPORTED=!1,c.SUPPORTS_TABLE_COPY=!1,c.COLLATE_IS_FUNC=!0,c.LIMIT_ONLY_LITERALS=!0,c.JSON_KEY_VALUE_PAIR_SEP=",",c.INSERT_OVERWRITE=" OVERWRITE INTO",c.COPY_PARAMS_ARE_WRAPPED=!1,c.COPY_PARAMS_EQ_REQUIRED=!0,c.STAR_EXCEPT="EXCLUDE",c.SUPPORTS_EXPLODING_PROJECTIONS=!1,c.ARRAY_CONCAT_IS_VAR_LEN=!1,c.SUPPORTS_CONVERT_TIMEZONE=!0,c.EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE=!1,c.SUPPORTS_MEDIAN=!0,c.ARRAY_SIZE_NAME="ARRAY_SIZE",c.SUPPORTS_DECODE_CASE=!0,c.IS_BOOL_ALLOWED=!1,c.DIRECTED_JOINS=!0;var yE,LE,DE,FE,UE,BE,bE,GE,w,S=class extends(GE=wr,bE=[T],BE=[T],UE=[T],FE=[T],DE=[T],LE=[T],yE=[T],GE){static get NORMALIZATION_STRATEGY(){return"uppercase"}static get NULL_ORDERING(){return"nulls_are_large"}static get EXPRESSION_METADATA(){return new Map(rt.EXPRESSION_METADATA)}static get INVERSE_TIME_MAPPING(){return{T:"T","%Y":"yyyy","%y":"yy","%B":"MMMM","%b":"MON","%m":"mm","%d":"DD","%-d":"dd","%a":"DY","%w":"dy","%H":"HH24","%I":"HH12","%M":"MI","%S":"SS","%f_nine":"FF","%f_zero":"FF0","%f_one":"FF1","%f_two":"FF2","%f_three":"FF3","%f_four":"FF4","%f_five":"FF5","%f":"FF6","%f_seven":"FF7","%f_eight":"FF8","%z":"TZHTZM","%:z":"TZH:TZM","%-z":"TZH","%p":"AM/PM","%A":"EEEE","%j":"DDD","%C":"CC"}}static get TIME_MAPPING(){return{YYYY:"%Y",yyyy:"%Y",YY:"%y",yy:"%y",MMMM:"%B",mmmm:"%B",MON:"%b",mon:"%b",MM:"%m",mm:"%m",DD:"%d",dd:"%-d",DY:"%a",dy:"%w",HH24:"%H",hh24:"%H",HH12:"%I",hh12:"%I",MI:"%M",mi:"%M",SS:"%S",ss:"%S",FF:"%f_nine",ff:"%f_nine",FF0:"%f_zero",ff0:"%f_zero",FF1:"%f_one",ff1:"%f_one",FF2:"%f_two",ff2:"%f_two",FF3:"%f_three",ff3:"%f_three",FF4:"%f_four",ff4:"%f_four",FF5:"%f_five",ff5:"%f_five",FF6:"%f",ff6:"%f",FF7:"%f_seven",ff7:"%f_seven",FF8:"%f_eight",ff8:"%f_eight",FF9:"%f_nine",ff9:"%f_nine",TZHTZM:"%z",tzhtzm:"%z","TZH:TZM":"%:z","tzh:tzm":"%:z",TZH:"%-z",tzh:"%-z",'"T"':"T",AM:"%p",am:"%p",PM:"%p",pm:"%p"}}static get DATE_PART_MAPPING(){return{...wr.DATE_PART_MAPPING,ISOWEEK:"WEEKISO",EPOCH_SECOND:"EPOCH_SECOND",EPOCH_SECONDS:"EPOCH_SECOND"}}static get PSEUDOCOLUMNS(){return new Set(["LEVEL"])}canQuote(r,t={}){let{identify:s="safe"}=t;return super.canQuote(r,{identify:s})&&!(r.parent instanceof it&&!r.args.quoted&&r.name.toLowerCase()==="dual")}};w=Y(GE),p(w,10,"NORMALIZATION_STRATEGY",bE,S),p(w,10,"NULL_ORDERING",BE,S),p(w,10,"EXPRESSION_METADATA",UE,S),p(w,10,"INVERSE_TIME_MAPPING",FE,S),p(w,10,"TIME_MAPPING",DE,S),p(w,10,"DATE_PART_MAPPING",LE,S),p(w,10,"PSEUDOCOLUMNS",yE,S),q(w,S),H(w,3,S),S.DIALECT_NAME="snowflake",S.TIME_FORMAT="'YYYY-MM-DD HH24:MI:SS'",S.SUPPORTS_USER_DEFINED_TYPES=!1,S.SUPPORTS_SEMI_ANTI_JOIN=!1,S.PREFER_CTE_ALIAS_COLUMN=!0,S.TABLESAMPLE_SIZE_IS_PERCENT=!0,S.COPY_PARAMS_ARE_CSV=!1,S.ARRAY_AGG_INCLUDES_NULLS=void 0,S.ARRAY_FUNCS_PROPAGATES_NULLS=!0,S.ALTER_TABLE_ADD_REQUIRED_FOR_EACH_COLUMN=!1,S.TRY_CAST_REQUIRES_STRING=!0,S.SUPPORTS_ALIAS_REFS_IN_JOIN_CONDITIONS=!0,S.LEAST_GREATEST_IGNORES_NULLS=!1,S.INITCAP_DEFAULT_DELIMITER_CHARS=`
2
+ \r\f\v!?@"^#$&~_,.:;+\\-*%/|\\[\\](){}<>`,S.JsonPathTokenizer=ut,S.Tokenizer=P,S.Parser=Hr,S.Generator=c;wr.register("snowflake",S);export{S as Snowflake};
3
+ //# sourceMappingURL=snowflake.js.map