@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @hdnax/sqlingo.js
2
2
 
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add lazy dialect entrypoints (`@hdnax/sqlingo.js/postgres`, `/mysql`, `/tsql`, `/mssql`, etc.). Import core without loading any dialect; register only what you need.
8
+
9
+ ## 0.0.5
10
+
11
+ ### Patch Changes
12
+
13
+ - dc5780a: Update copywriting
14
+
3
15
  ## 0.0.4
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -32,6 +32,14 @@ pnpm add @hdnax/sqlingo.js
32
32
  yarn add @hdnax/sqlingo.js
33
33
  ```
34
34
 
35
+ or CDN:
36
+
37
+ ```html
38
+ <script type="module">
39
+ import { transpile } from "https://esm.sh/@hdnax/sqlingo.js";
40
+ </script>
41
+ ```
42
+
35
43
  Peer dependency: [`luxon`](https://www.npmjs.com/package/luxon) (^3.7.2) is required for date/time operations.
36
44
 
37
45
  ## Usage
@@ -128,17 +136,3 @@ This package tracks [SQLGlot](https://github.com/tobymao/sqlglot) v28.10.0 (comm
128
136
  MIT. See [LICENSE](https://github.com/huydo862003/sqlingo.js/blob/master/LICENSE).
129
137
 
130
138
  Based on [SQLGlot](https://github.com/tobymao/sqlglot) by Toby Mao (MIT). See [COPYRIGHT_NOTICE](https://github.com/huydo862003/sqlingo.js/blob/master/COPYRIGHT_NOTICE).
131
-
132
- ## Copyright Notice
133
-
134
- Check [License](./LICENSE).
135
-
136
- ## CDN Usage
137
-
138
- Use sqlingo.js directly in the browser via CDN:
139
-
140
- ```html
141
- <script type="module">
142
- import { transpile } from "https://esm.sh/@hdnax/sqlingo.js";
143
- </script>
144
- ```
package/README.npm.md CHANGED
@@ -32,6 +32,14 @@ pnpm add @hdnax/sqlingo.js
32
32
  yarn add @hdnax/sqlingo.js
33
33
  ```
34
34
 
35
+ or CDN:
36
+
37
+ ```html
38
+ <script type="module">
39
+ import { transpile } from "https://esm.sh/@hdnax/sqlingo.js";
40
+ </script>
41
+ ```
42
+
35
43
  Peer dependency: [`luxon`](https://www.npmjs.com/package/luxon) (^3.7.2) is required for date/time operations.
36
44
 
37
45
  ## Usage
@@ -128,17 +136,3 @@ This package tracks [SQLGlot](https://github.com/tobymao/sqlglot) v28.10.0 (comm
128
136
  MIT. See [LICENSE](https://github.com/huydo862003/sqlingo.js/blob/master/LICENSE).
129
137
 
130
138
  Based on [SQLGlot](https://github.com/tobymao/sqlglot) by Toby Mao (MIT). See [COPYRIGHT_NOTICE](https://github.com/huydo862003/sqlingo.js/blob/master/COPYRIGHT_NOTICE).
131
-
132
- ## Copyright Notice
133
-
134
- Check [License](./LICENSE).
135
-
136
- ## CDN Usage
137
-
138
- Use sqlingo.js directly in the browser via CDN:
139
-
140
- ```html
141
- <script type="module">
142
- import { transpile } from "https://esm.sh/@hdnax/sqlingo.js";
143
- </script>
144
- ```
package/README.repo.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@hdnax/sqlingo.js)](https://www.npmjs.com/package/@hdnax/sqlingo.js)
4
4
  [![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)
5
- [![Bundle Size](https://img.shields.io/bundlephobia/minzip/@hdnax/sqlingo.js)](https://bundlephobia.com/package/@hdnax/sqlingo.js)
6
5
  ![SQLGlot](https://img.shields.io/badge/SQLGlot-v28.10.0-blue)
7
6
 
8
7
  A JavaScript/TypeScript port of [SQLGlot](https://github.com/tobymao/sqlglot), which is a comprehensive SQL parser, transpiler, optimizer, and engine.
@@ -94,7 +93,7 @@ pnpm dev # Build in watch mode
94
93
  pnpm typecheck # Type check without emitting
95
94
  pnpm lint # Lint the code
96
95
  pnpm lint:fix # Lint and auto-fix issues
97
- pnpm run docs # Generate documentation
96
+ pnpm run doc # Generate documentation
98
97
  ```
99
98
 
100
99
  ### Mirror Guide
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunkXZQFOICXcjs = require('./chunk-XZQFOICX.cjs');var _chunk2Z3O2CFMcjs = require('./chunk-2Z3O2CFM.cjs');function sr(e,n,t){let r=[];for(let x of n){let l=e.args[x];if(l){let Or=Array.isArray(l)?l:[l];r.push(..._chunk2Z3O2CFMcjs.q.call(void 0, Or,_chunk2Z3O2CFMcjs.Ca))}}let s,A=!1;for(let x of r)if(x.isType("unknown"))A=!0;else if(x.isType(t)){A=!1,s=t;break}else{let l=x.type;s=_chunk2Z3O2CFMcjs.n.call(void 0, l,_chunk2Z3O2CFMcjs.ac)?l:void 0}return this.setType(e,A?"unknown":s),e}var ir,st;ir=[_chunk2Z3O2CFMcjs.r];var S=class{static get EXPRESSION_METADATA(){let n=new Map(_chunkXZQFOICXcjs.a.EXPRESSION_METADATA),t=(r,s)=>{for(let A of r)n.set(A,s)};return t([_chunk2Z3O2CFMcjs.cf,_chunk2Z3O2CFMcjs.Dk],{returns:"double"}),t([_chunk2Z3O2CFMcjs.hj,_chunk2Z3O2CFMcjs.Mj],{returns:"varchar"}),n.set(_chunk2Z3O2CFMcjs.Lg,{annotator:(r,s)=>sr.call(r,s,["expressions"],"text")}),n.set(_chunk2Z3O2CFMcjs.Pf,{annotator:(r,s)=>sr.call(r,s,["this","fillPattern"],"text")}),n.set(_chunk2Z3O2CFMcjs.pl,{annotator:(r,s)=>r.annotateByArgs(s,["this"])}),n}};st=_chunk2Z3O2CFMcjs.a.call(void 0, null),_chunk2Z3O2CFMcjs.d.call(void 0, st,10,"EXPRESSION_METADATA",ir,S),_chunk2Z3O2CFMcjs.b.call(void 0, st,S),_chunk2Z3O2CFMcjs.c.call(void 0, st,3,S);function _r(e){let n=e.args.keys,t=e.args.values;return!n||!t?this.func("MAP",[]):this.func("MAP_FROM_ARRAYS",[n,t])}function f(e){return n=>new (0, _chunk2Z3O2CFMcjs.Cg)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, n,0),to:_chunk2Z3O2CFMcjs.ac.build(e)})}function Nr(e){let n=this.formatTime(e);return n===_chunkXZQFOICXcjs.c.DATE_FORMAT?this.func("TO_DATE",[e.args.this]):this.func("TO_DATE",[e.args.this,n])}function Ir(e){let n=e.args.scale,t=e.args.this;if(n===void 0)return this.sql(new (0, _chunk2Z3O2CFMcjs.Cg)({this:this.func("from_unixtime",[t]),to:_chunk2Z3O2CFMcjs.ac.build("timestamp")}));let r=n.toValue();if(r===_chunk2Z3O2CFMcjs.Zl.SECONDS.toValue())return this.func("TIMESTAMP_SECONDS",[t]);if(r===_chunk2Z3O2CFMcjs.Zl.MILLIS.toValue())return this.func("TIMESTAMP_MILLIS",[t]);if(r===_chunk2Z3O2CFMcjs.Zl.MICROS.toValue())return this.func("TIMESTAMP_MICROS",[t]);let s=new (0, _chunk2Z3O2CFMcjs.ze)({this:t,expression:this.func("POW",[_chunk2Z3O2CFMcjs.$c.number(10),n])});return this.func("TIMESTAMP_SECONDS",[s])}function Mr(e){if(e instanceof _chunk2Z3O2CFMcjs.pb&&_optionalChain([e, 'access', _2 => _2.args, 'access', _3 => _3.this, 'optionalAccess', _4 => _4.args, 'access', _5 => _5.pivots, 'optionalAccess', _6 => _6.length])){let n=e.args.this.args.pivots[0];if(n.args.alias){let t=_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, n.args.alias,_chunk2Z3O2CFMcjs.Ca), 'optionalAccess', _7 => _7.pop, 'call', _8 => _8()]);return new (0, _chunk2Z3O2CFMcjs.pb)({this:e.args.this.replace(_chunk2Z3O2CFMcjs.jo.call(void 0, "*").from(e.args.this.copy(),{copy:!1}).subquery(t,{copy:!1}))})}}return e}function gr(e){return e instanceof _chunk2Z3O2CFMcjs.Yb&&e.setArgKey("fields",_optionalChain([e, 'access', _9 => _9.args, 'access', _10 => _10.fields, 'optionalAccess', _11 => _11.map, 'call', _12 => _12(n=>_chunk2Z3O2CFMcjs.dp.call(void 0, n))])),e}function Dr(e){let n=new (0, _chunk2Z3O2CFMcjs.kd)({this:_chunk2Z3O2CFMcjs.$c.string("parquet")}),t=e.getArgKey("properties");return t instanceof _chunk2Z3O2CFMcjs.Ca&&t.append("expressions",n),e}var or,Er,ar,q,P=class extends(ar=_chunkXZQFOICXcjs.c.Tokenizer,Er=[_chunk2Z3O2CFMcjs.r],or=[_chunk2Z3O2CFMcjs.r],ar){static get HEX_STRINGS(){return[["X'","'"],["x'","'"]]}static get ORIGINAL_KEYWORDS(){return{..._chunkXZQFOICXcjs.c.Tokenizer.KEYWORDS,TIMESTAMP:"timestamptz"}}};q=_chunk2Z3O2CFMcjs.a.call(void 0, ar),_chunk2Z3O2CFMcjs.d.call(void 0, q,10,"HEX_STRINGS",Er,P),_chunk2Z3O2CFMcjs.d.call(void 0, q,10,"ORIGINAL_KEYWORDS",or,P),_chunk2Z3O2CFMcjs.b.call(void 0, q,P),_chunk2Z3O2CFMcjs.c.call(void 0, q,3,P);var Tr,pr,cr,ur,Ar,fr,O,c=class extends(fr=_chunkXZQFOICXcjs.c.Parser,Ar=[_chunk2Z3O2CFMcjs.r],ur=[_chunk2Z3O2CFMcjs.r],cr=[_chunk2Z3O2CFMcjs.r],pr=[_chunk2Z3O2CFMcjs.r],Tr=[_chunk2Z3O2CFMcjs.r],fr){static get ID_VAR_TOKENS(){return new Set([..._chunk2Z3O2CFMcjs.za.ID_VAR_TOKENS,"sessionUser","currentCatalog","straightJoin"])}static get NO_PAREN_FUNCTIONS(){let t={..._chunkXZQFOICXcjs.c.Parser.NO_PAREN_FUNCTIONS};return delete t.localtime,delete t.localtimestamp,t}static get FUNCTIONS(){return{..._chunkXZQFOICXcjs.c.Parser.FUNCTIONS,AGGREGATE:t=>_chunk2Z3O2CFMcjs.Hk.fromArgList(t),BOOLEAN:f("boolean"),DATE:f("date"),DATE_TRUNC:t=>new (0, _chunk2Z3O2CFMcjs.bi)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),unit:_chunk2Z3O2CFMcjs.Eo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, t,0))}),DAYOFMONTH:t=>new (0, _chunk2Z3O2CFMcjs.Hh)({this:new (0, _chunk2Z3O2CFMcjs.Pl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)})}),DAYOFWEEK:t=>new (0, _chunk2Z3O2CFMcjs.Fh)({this:new (0, _chunk2Z3O2CFMcjs.Pl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)})}),DAYOFYEAR:t=>new (0, _chunk2Z3O2CFMcjs.Ih)({this:new (0, _chunk2Z3O2CFMcjs.Pl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)})}),DOUBLE:f("double"),FLOAT:f("float"),FORMAT_STRING:t=>_chunk2Z3O2CFMcjs.hj.fromArgList(t),FROM_UTC_TIMESTAMP:(t,{dialect:r})=>new (0, _chunk2Z3O2CFMcjs.kc)({this:_chunk2Z3O2CFMcjs.mo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, t,0)||_chunk2Z3O2CFMcjs.Eo.call(void 0, ""),"timestamp",{dialect:r}),zone:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1)}),LTRIM:t=>_chunk2Z3O2CFMcjs.wa.call(void 0, t,{reverseArgs:!0}),INT:f("int"),MAP_FROM_ARRAYS:t=>_chunk2Z3O2CFMcjs.Vj.fromArgList(t),RLIKE:t=>_chunk2Z3O2CFMcjs.Lk.fromArgList(t),RTRIM:t=>_chunk2Z3O2CFMcjs.wa.call(void 0, t,{isLeft:!1,reverseArgs:!0}),SHIFTLEFT:_chunk2Z3O2CFMcjs.iq.call(void 0, _chunk2Z3O2CFMcjs.ve),SHIFTRIGHT:_chunk2Z3O2CFMcjs.iq.call(void 0, _chunk2Z3O2CFMcjs.xe),STRING:f("string"),SLICE:t=>_chunk2Z3O2CFMcjs.pg.fromArgList(t),TIMESTAMP:f("timestamp"),TO_TIMESTAMP:t=>t.length===1?f("timestamp")(t):_chunk2Z3O2CFMcjs.Kp.call(void 0, _chunk2Z3O2CFMcjs.xl,{dialect:"spark"})(t),TO_UNIX_TIMESTAMP:t=>_chunk2Z3O2CFMcjs.yl.fromArgList(t),TO_UTC_TIMESTAMP:(t,{dialect:r})=>new (0, _chunk2Z3O2CFMcjs.lc)({this:_chunk2Z3O2CFMcjs.mo.call(void 0, _chunk2Z3O2CFMcjs.ca.call(void 0, t,0)||_chunk2Z3O2CFMcjs.Eo.call(void 0, ""),"timestamp",{dialect:r}),zone:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1)}),TRUNC:t=>new (0, _chunk2Z3O2CFMcjs.yh)({unit:_chunk2Z3O2CFMcjs.ca.call(void 0, t,1),this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)}),WEEKOFYEAR:t=>new (0, _chunk2Z3O2CFMcjs.Lh)({this:new (0, _chunk2Z3O2CFMcjs.Pl)({this:_chunk2Z3O2CFMcjs.ca.call(void 0, t,0)})})}}static get FUNCTION_PARSERS(){return{..._chunkXZQFOICXcjs.c.Parser.FUNCTION_PARSERS,APPROX_PERCENTILE:function(){return this.parseQuantileFunction(_chunk2Z3O2CFMcjs.Zn)},BROADCAST:function(){return this.parseJoinHint("BROADCAST")},BROADCASTJOIN:function(){return this.parseJoinHint("BROADCASTJOIN")},MAPJOIN:function(){return this.parseJoinHint("MAPJOIN")},MERGE:function(){return this.parseJoinHint("MERGE")},SHUFFLEMERGE:function(){return this.parseJoinHint("SHUFFLEMERGE")},MERGEJOIN:function(){return this.parseJoinHint("MERGEJOIN")},SHUFFLE_HASH:function(){return this.parseJoinHint("SHUFFLE_HASH")},SHUFFLE_REPLICATE_NL:function(){return this.parseJoinHint("SHUFFLE_REPLICATE_NL")}}}parseDropColumn(){return(this.matchTextSeq(["DROP","COLUMNS"])||void 0)&&this.expression(_chunk2Z3O2CFMcjs.gb,{this:this.parseSchema(),kind:"COLUMNS"})}pivotColumnNames(t){return t.length===1?[]:_chunk2Z3O2CFMcjs.hq.call(void 0, t,{dialect:"spark"})}static get TABLE_ALIAS_TOKENS(){return new Set([..._chunkXZQFOICXcjs.c.Parser.TABLE_ALIAS_TOKENS,"straightJoin"])}};O=_chunk2Z3O2CFMcjs.a.call(void 0, fr),_chunk2Z3O2CFMcjs.d.call(void 0, O,10,"ID_VAR_TOKENS",Ar,c),_chunk2Z3O2CFMcjs.d.call(void 0, O,10,"NO_PAREN_FUNCTIONS",ur,c),_chunk2Z3O2CFMcjs.d.call(void 0, O,10,"FUNCTIONS",cr,c),_chunk2Z3O2CFMcjs.d.call(void 0, O,10,"FUNCTION_PARSERS",pr,c),_chunk2Z3O2CFMcjs.d.call(void 0, O,10,"TABLE_ALIAS_TOKENS",Tr,c),_chunk2Z3O2CFMcjs.b.call(void 0, O,c),_chunk2Z3O2CFMcjs.c.call(void 0, O,3,c),c.TRIM_PATTERN_FIRST=!0,c.CHANGE_COLUMN_ALTER_SYNTAX=!0;var xr,lr,Rr,mr,C,i=class extends(mr=_chunkXZQFOICXcjs.c.Generator,Rr=[_chunk2Z3O2CFMcjs.r],lr=[_chunk2Z3O2CFMcjs.r],xr=[_chunk2Z3O2CFMcjs.r],mr){static get PROPERTIES_LOCATION(){return new Map([..._chunkXZQFOICXcjs.c.Generator.PROPERTIES_LOCATION,[_chunk2Z3O2CFMcjs.hd,"unsupported"],[_chunk2Z3O2CFMcjs.ad,"unsupported"],[_chunk2Z3O2CFMcjs.cd,"unsupported"],[_chunk2Z3O2CFMcjs.dd,"unsupported"]])}static get TS_OR_DS_EXPRESSIONS(){return new Set([..._chunkXZQFOICXcjs.c.Generator.TS_OR_DS_EXPRESSIONS,_chunk2Z3O2CFMcjs.Hh,_chunk2Z3O2CFMcjs.Fh,_chunk2Z3O2CFMcjs.Ih,_chunk2Z3O2CFMcjs.Lh])}static get ORIGINAL_TRANSFORMS(){let t=new Map([..._chunkXZQFOICXcjs.c.Generator.TRANSFORMS,[_chunk2Z3O2CFMcjs.Lm,_chunk2Z3O2CFMcjs.pp.call(void 0, "APPROX_COUNT_DISTINCT")],[_chunk2Z3O2CFMcjs.zg,function(r){return`AGGREGATE(${this.sql(r,"this")}, 0, (acc, x) -> acc + x, acc -> acc)`}],[_chunk2Z3O2CFMcjs.qg,_chunk2Z3O2CFMcjs.pp.call(void 0, "ARRAY_JOIN")],[_chunk2Z3O2CFMcjs.pg,_chunk2Z3O2CFMcjs.pp.call(void 0, "SLICE")],[_chunk2Z3O2CFMcjs.kc,function(r){return this.func("FROM_UTC_TIMESTAMP",[r.args.this,r.args.zone])}],[_chunk2Z3O2CFMcjs.ve,_chunk2Z3O2CFMcjs.pp.call(void 0, "SHIFTLEFT")],[_chunk2Z3O2CFMcjs.xe,_chunk2Z3O2CFMcjs.pp.call(void 0, "SHIFTRIGHT")],[_chunk2Z3O2CFMcjs.Ja,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.ep,r=>_chunk2Z3O2CFMcjs.fp.call(void 0, r,Dr),_chunk2Z3O2CFMcjs.gp])],[_chunk2Z3O2CFMcjs.hi,_chunk2Z3O2CFMcjs.pp.call(void 0, "MAKE_DATE")],[_chunk2Z3O2CFMcjs.yh,function(r){return this.func("TRUNC",[r.args.this,_chunk2Z3O2CFMcjs.uq.call(void 0, r)])}],[_chunk2Z3O2CFMcjs.Hh,_chunk2Z3O2CFMcjs.pp.call(void 0, "DAYOFMONTH")],[_chunk2Z3O2CFMcjs.Fh,_chunk2Z3O2CFMcjs.pp.call(void 0, "DAYOFWEEK")],[_chunk2Z3O2CFMcjs.Gh,function(r){return"(( "+this.func("DAYOFWEEK",[r.args.this])+" % 7) + 1)"}],[_chunk2Z3O2CFMcjs.Ih,_chunk2Z3O2CFMcjs.pp.call(void 0, "DAYOFYEAR")],[_chunk2Z3O2CFMcjs.hj,_chunk2Z3O2CFMcjs.pp.call(void 0, "FORMAT_STRING")],[_chunk2Z3O2CFMcjs.pb,_chunk2Z3O2CFMcjs.Po.call(void 0, [Mr])],[_chunk2Z3O2CFMcjs.lc,function(r){return this.func("TO_UTC_TIMESTAMP",[r.args.this,r.args.zone])}],[_chunk2Z3O2CFMcjs.rn,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOL_AND")],[_chunk2Z3O2CFMcjs.qn,_chunk2Z3O2CFMcjs.pp.call(void 0, "BOOL_OR")],[_chunk2Z3O2CFMcjs.Vj,_r],[_chunk2Z3O2CFMcjs.Yb,_chunk2Z3O2CFMcjs.Po.call(void 0, [gr])],[_chunk2Z3O2CFMcjs.Hk,_chunk2Z3O2CFMcjs.pp.call(void 0, "AGGREGATE")],[_chunk2Z3O2CFMcjs.Kk,function(r){return this.func("REGEXP_REPLACE",[r.args.this,r.args.expression,r.args.replacement,r.args.position])}],[_chunk2Z3O2CFMcjs.Wd,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs.To,_chunk2Z3O2CFMcjs.So,_chunk2Z3O2CFMcjs.Wo,_chunk2Z3O2CFMcjs.Xo])],[_chunk2Z3O2CFMcjs.il,function(r){return this.func("SHA2",[r.args.this,r.args.length||_chunk2Z3O2CFMcjs.$c.number(256)])}],[_chunk2Z3O2CFMcjs.wl,Nr],[_chunk2Z3O2CFMcjs.xl,function(r){return this.func("TO_TIMESTAMP",[r.args.this,this.formatTime(r)])}],[_chunk2Z3O2CFMcjs.bi,function(r){return this.func("DATE_TRUNC",[_chunk2Z3O2CFMcjs.uq.call(void 0, r),r.args.this])}],[_chunk2Z3O2CFMcjs.Zl,Ir],[_chunk2Z3O2CFMcjs.Sn,_chunk2Z3O2CFMcjs.pp.call(void 0, "VAR_POP")],[_chunk2Z3O2CFMcjs.Lh,_chunk2Z3O2CFMcjs.pp.call(void 0, "WEEKOFYEAR")],[_chunk2Z3O2CFMcjs.Wa,_chunk2Z3O2CFMcjs.Po.call(void 0, [_chunk2Z3O2CFMcjs._o])]]);return[_chunk2Z3O2CFMcjs.yg,_chunk2Z3O2CFMcjs.Ie,_chunk2Z3O2CFMcjs.Lj,_chunk2Z3O2CFMcjs.Oh,_chunk2Z3O2CFMcjs.Mj].forEach(r=>t.delete(r)),t}structSql(t){return _chunk2Z3O2CFMcjs.lp.prototype.structSql.call(this,t)}castSql(t,r={}){let s=t.args.this,A=(s instanceof _chunk2Z3O2CFMcjs.uj||s instanceof _chunk2Z3O2CFMcjs.wj)&&!s.getArgKey("variantExtract");if(_optionalChain([_chunk2Z3O2CFMcjs.p.call(void 0, t.args.to,_chunk2Z3O2CFMcjs.Ca), 'optionalAccess', _13 => _13.getArgKey, 'call', _14 => _14("nested")])&&(_chunk2Z3O2CFMcjs.nq.call(void 0, s)||A)){let x=`'${this.sql(t,"to")}'`;return this.func("FROM_JSON",[A?s:s.args.this,x])}return _chunk2Z3O2CFMcjs.nq.call(void 0, t)?this.func("TO_JSON",[s]):super.castSql(t,r)}fileFormatPropertySql(t){return t.args.hiveFormat?super.fileFormatPropertySql(t):`USING ${t.name.toUpperCase()}`}alterColumnSql(t){let r=this.sql(t,"this"),s=this.sql(t,"renameTo")||r,A=this.sql(t,"comment");return s===r?A?`ALTER COLUMN ${r} COMMENT ${A}`:_chunk2Z3O2CFMcjs.lp.prototype.alterColumnSql.call(this,t):`RENAME COLUMN ${r} TO ${s}`}renameColumnSql(t){return super.renameColumnSql(t)}};C=_chunk2Z3O2CFMcjs.a.call(void 0, mr),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"PROPERTIES_LOCATION",Rr,i),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"TS_OR_DS_EXPRESSIONS",lr,i),_chunk2Z3O2CFMcjs.d.call(void 0, C,10,"ORIGINAL_TRANSFORMS",xr,i),_chunk2Z3O2CFMcjs.b.call(void 0, C,i),_chunk2Z3O2CFMcjs.c.call(void 0, C,3,i),i.SUPPORTS_DECODE_CASE=!1,i.TRY_SUPPORTED=!1,i.SUPPORTS_UESCAPE=!1,i.QUERY_HINTS=!0,i.NVL2_SUPPORTED=!0,i.CAN_IMPLEMENT_ARRAY_ANY=!0,i.ALTER_SET_TYPE="TYPE",i.PARSE_JSON_NAME=void 0,i.WRAP_DERIVED_VALUES=!1,i.CREATE_FUNCTION_RETURN_AS=!1;var hr,Sr,it,u= exports.d =class extends(Sr=_chunkXZQFOICXcjs.c,hr=[_chunk2Z3O2CFMcjs.r],Sr){static get EXPRESSION_METADATA(){return new Map(S.EXPRESSION_METADATA)}};it=_chunk2Z3O2CFMcjs.a.call(void 0, Sr),_chunk2Z3O2CFMcjs.d.call(void 0, it,10,"EXPRESSION_METADATA",hr,u),_chunk2Z3O2CFMcjs.b.call(void 0, it,u),_chunk2Z3O2CFMcjs.c.call(void 0, it,3,u),u.DIALECT_NAME="spark2",u.ALTER_TABLE_SUPPORTS_CASCADE=!1,u.INITCAP_DEFAULT_DELIMITER_CHARS=" ",u.Tokenizer=P,u.Parser=c,u.Generator=i;_chunk2Z3O2CFMcjs.op.register("spark2",u);exports.a = S; exports.b = f; exports.c = Dr; exports.d = u;
2
+ //# sourceMappingURL=chunk-2YNOERAO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/huydna/projects/sqlingo.js/dist/chunk-2YNOERAO.cjs","../src/typing/spark2.ts","../src/dialects/spark2.ts"],"names":["annotateBySimilarArgs","expression","args","targetType","expressions","arg","argExpr","list","filterInstanceOf","Expression","lastDatatype","hasUnknown","expr","exprType","isInstanceOf","DataTypeExpr","_EXPRESSION_METADATA_dec","_init","cache","Spark2Typing","map","HiveTyping","extend","types","data","type","Atan2Expr","RandnExpr","FormatExpr","RightExpr","ConcatExpr","s","e","PadExpr","SubstringExpr","__decoratorStart","__decorateElement","__decoratorMetadata","__runInitializers","mapSql","keys","values","buildAsCast","toType","CastExpr","seqGet","strToDate","timeFormat","Hive","unixToTimeSql","scale","timestamp","scaleValue","UnixToTimeExpr","unixSeconds","DivExpr","LiteralExpr","unaliasPivot","FromExpr","pivot","aliasNode","narrowInstanceOf","select","unqualifyPivotColumns","PivotExpr","field","unqualifyColumns","temporaryStorageProvider","provider","FileFormatPropertyExpr","properties","_ORIGINAL_KEYWORDS_dec","_HEX_STRINGS_dec","_a","Spark2Tokenizer","_TABLE_ALIAS_TOKENS_dec","_FUNCTION_PARSERS_dec","_FUNCTIONS_dec","_NO_PAREN_FUNCTIONS_dec","_ID_VAR_TOKENS_dec","Spark2Parser","Parser","noParenFunctions","ReduceExpr","TimestampTruncExpr","var_","DayOfMonthExpr","TsOrDsToDateExpr","DayOfWeekExpr","DayOfYearExpr","dialect","AtTimeZoneExpr","cast","buildTrim","MapExpr","RegexpLikeExpr","binaryFromFunction","ArraySliceExpr","buildFormattedTime","StrToTimeExpr","StrToUnixExpr","FromTimeZoneExpr","DateTruncExpr","WeekOfYearExpr","ApproxQuantileExpr","DropExpr","aggregations","pivotColumnNames","_ORIGINAL_TRANSFORMS_dec","_TS_OR_DS_EXPRESSIONS_dec","_PROPERTIES_LOCATION_dec","Spark2Generator","EnginePropertyExpr","AutoIncrementPropertyExpr","CharacterSetPropertyExpr","CollatePropertyExpr","transforms","ApproxDistinctExpr","renameFunc","ArraySumExpr","ArrayToStringExpr","BitwiseLeftShiftExpr","BitwiseRightShiftExpr","CreateExpr","preprocess","removeUniqueConstraints","ctasWithTmpTablesToCreateTmpView","moveSchemaColumnsToPartitionedBy","DateFromPartsExpr","unitToStr","DayOfWeekIsoExpr","LogicalAndExpr","LogicalOrExpr","RegexpReplaceExpr","SelectExpr","eliminateQualify","eliminateDistinctOn","unnestToExplode","anyToExists","Sha2DigestExpr","StrToDateExpr","VariancePopExpr","WithinGroupExpr","removeWithinGroupForPercentiles","ArraySortExpr","ILikeExpr","LeftExpr","MonthsBetweenExpr","Generator","options","isJsonExtract","JsonExtractExpr","JsonExtractScalarExpr","isParseJson","schema"],"mappings":"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","file":"/home/huydna/projects/sqlingo.js/dist/chunk-2YNOERAO.cjs","sourcesContent":[null,"import {\n Expression,\n DataTypeExpr,\n Atan2Expr,\n RandnExpr,\n FormatExpr,\n RightExpr,\n ConcatExpr,\n PadExpr,\n SubstringExpr,\n} from '../expressions/expressions';\nimport {\n DataTypeExprKind,\n} from '../expressions/types';\nimport {\n cache,\n isInstanceOf, filterInstanceOf,\n} from '../port_internals';\nimport type {\n TypeAnnotator,\n} from '../optimizer';\nimport {\n HiveTyping,\n} from './hive';\nimport type {\n ExpressionMetadata,\n} from './dialect';\n\n/**\n * Infers the type of the expression according to the following rules:\n * - If all args are of the same type OR any arg is of targetType, the expr is inferred as such\n * - If any arg is of UNKNOWN type and none of targetType, the expr is inferred as UNKNOWN\n */\nfunction annotateBySimilarArgs (\n this: TypeAnnotator,\n expression: Expression,\n args: Iterable<string>,\n targetType: DataTypeExprKind | DataTypeExpr,\n): Expression {\n const expressions: Expression[] = [\n ];\n\n for (const arg of args) {\n const argExpr = (expression.args as Record<string, unknown>)[arg];\n if (argExpr) {\n const list = Array.isArray(argExpr)\n ? argExpr\n : [\n argExpr,\n ];\n expressions.push(...filterInstanceOf(list, Expression));\n }\n }\n\n let lastDatatype: DataTypeExprKind | DataTypeExpr | undefined;\n let hasUnknown = false;\n\n for (const expr of expressions) {\n if (expr.isType(DataTypeExprKind.UNKNOWN)) {\n hasUnknown = true;\n } else if (expr.isType(targetType)) {\n hasUnknown = false;\n lastDatatype = targetType;\n break;\n } else {\n const exprType = expr.type;\n lastDatatype = isInstanceOf(exprType, DataTypeExpr) ? exprType : undefined;\n }\n }\n\n this.setType(\n expression,\n hasUnknown ? DataTypeExprKind.UNKNOWN : lastDatatype,\n );\n\n return expression;\n}\n\nexport class Spark2Typing {\n @cache\n static get EXPRESSION_METADATA (): ExpressionMetadata {\n // Clone the Hive base metadata to apply Spark-specific overrides\n const map: ExpressionMetadata = new Map(HiveTyping.EXPRESSION_METADATA);\n\n const extend = (types: (typeof Expression)[], data: Record<string, unknown>) => {\n for (const type of types) map.set(type, data);\n };\n\n extend([\n Atan2Expr,\n RandnExpr,\n ], {\n returns: DataTypeExprKind.DOUBLE,\n });\n\n extend([\n FormatExpr,\n RightExpr,\n ], {\n returns: DataTypeExprKind.VARCHAR,\n });\n\n map.set(ConcatExpr, {\n annotator: (s: TypeAnnotator, e: ConcatExpr) => annotateBySimilarArgs.call(s, e, [\n 'expressions',\n ], DataTypeExprKind.TEXT),\n });\n\n map.set(PadExpr, {\n annotator: (s: TypeAnnotator, e: PadExpr) => annotateBySimilarArgs.call(s, e, [\n 'this',\n 'fillPattern',\n ], DataTypeExprKind.TEXT),\n });\n\n map.set(SubstringExpr, {\n annotator: (s: TypeAnnotator, e: SubstringExpr) => s.annotateByArgs(e, [\n 'this',\n ]),\n });\n\n return map;\n }\n}\n","import type {\n AlterColumnExpr,\n CommandExpr, StructExpr,\n} from '../expressions';\nimport {\n ApproxDistinctExpr,\n ApproxQuantileExpr,\n ArraySliceExpr,\n ArraySortExpr,\n ArraySumExpr,\n ArrayToStringExpr,\n AtTimeZoneExpr,\n AutoIncrementPropertyExpr,\n BitwiseLeftShiftExpr,\n BitwiseRightShiftExpr,\n cast,\n CastExpr,\n CharacterSetPropertyExpr,\n CollatePropertyExpr,\n CreateExpr,\n DataTypeExpr,\n DataTypeExprKind,\n DateFromPartsExpr,\n DateTruncExpr,\n DayOfMonthExpr,\n DayOfWeekExpr,\n DayOfWeekIsoExpr,\n DayOfYearExpr,\n DivExpr,\n DropExpr,\n EnginePropertyExpr,\n Expression,\n FileFormatPropertyExpr, FormatExpr, FromExpr, FromTimeZoneExpr, ILikeExpr, JsonExtractExpr, JsonExtractScalarExpr, LeftExpr, LiteralExpr, LogicalAndExpr, LogicalOrExpr, MapExpr, MonthsBetweenExpr,\n PivotExpr, PropertiesLocation, ReduceExpr, RegexpLikeExpr, RegexpReplaceExpr, RightExpr, select, SelectExpr, Sha2DigestExpr, StrToDateExpr, StrToTimeExpr,\n StrToUnixExpr, TimestampTruncExpr, TsOrDsToDateExpr, UnixToTimeExpr,\n var_,\n VariancePopExpr,\n WeekOfYearExpr,\n WithinGroupExpr,\n} from '../expressions';\nimport {\n Generator,\n} from '../generator';\nimport {\n seqGet,\n} from '../helper';\nimport {\n Parser, buildTrim,\n} from '../parser';\nimport {\n cache, narrowInstanceOf,\n} from '../port_internals';\nimport type {\n TokenPair,\n} from '../tokens';\nimport {\n TokenType,\n} from '../tokens';\nimport {\n anyToExists,\n ctasWithTmpTablesToCreateTmpView,\n eliminateDistinctOn,\n eliminateQualify,\n moveSchemaColumnsToPartitionedBy,\n preprocess, removeUniqueConstraints, removeWithinGroupForPercentiles, unnestToExplode, unqualifyColumns,\n} from '../transforms';\nimport {\n Spark2Typing,\n} from '../typing/spark2';\nimport {\n binaryFromFunction, buildFormattedTime, Dialect, Dialects, isParseJson, pivotColumnNames,\n renameFunc,\n unitToStr,\n} from './dialect';\nimport {\n Hive,\n} from './hive';\n\nfunction mapSql (this: Generator, expression: MapExpr): string {\n const keys = expression.args.keys;\n const values = expression.args.values;\n\n if (!keys || !values) {\n return this.func('MAP', [\n ]);\n }\n\n return this.func('MAP_FROM_ARRAYS', [\n keys,\n values,\n ]);\n}\n\nexport function buildAsCast (toType: string) {\n return (args: Expression[]): CastExpr => {\n return new CastExpr({\n this: seqGet(args, 0),\n to: DataTypeExpr.build(toType),\n });\n };\n}\n\nfunction strToDate (this: Generator, expression: StrToDateExpr): string {\n const timeFormat = this.formatTime(expression);\n if (timeFormat === Hive.DATE_FORMAT) {\n return this.func('TO_DATE', [\n expression.args.this,\n ]);\n }\n return this.func('TO_DATE', [\n expression.args.this,\n timeFormat,\n ]);\n}\n\nfunction unixToTimeSql (this: Generator, expression: UnixToTimeExpr): string {\n const scale = expression.args.scale;\n const timestamp = expression.args.this;\n\n if (scale === undefined) {\n return this.sql(\n new CastExpr({\n this: this.func('from_unixtime', [\n timestamp,\n ]),\n to: DataTypeExpr.build(DataTypeExprKind.TIMESTAMP),\n }),\n );\n }\n\n const scaleValue = scale.toValue();\n if (scaleValue === UnixToTimeExpr.SECONDS.toValue()) {\n return this.func('TIMESTAMP_SECONDS', [\n timestamp,\n ]);\n }\n if (scaleValue === UnixToTimeExpr.MILLIS.toValue()) {\n return this.func('TIMESTAMP_MILLIS', [\n timestamp,\n ]);\n }\n if (scaleValue === UnixToTimeExpr.MICROS.toValue()) {\n return this.func('TIMESTAMP_MICROS', [\n timestamp,\n ]);\n }\n\n const unixSeconds = new DivExpr({\n this: timestamp,\n expression: this.func('POW', [\n LiteralExpr.number(10),\n scale,\n ]),\n });\n\n return this.func('TIMESTAMP_SECONDS', [\n unixSeconds,\n ]);\n}\n\n/**\n * Spark doesn't allow PIVOT aliases, so we remove them and wrap\n * in a subquery to preserve semantics.\n */\nfunction unaliasPivot (expression: Expression): Expression {\n if (expression instanceof FromExpr && expression.args.this?.args.pivots?.length) {\n const pivot = expression.args.this.args.pivots[0];\n if (pivot.args.alias) {\n const aliasNode = narrowInstanceOf(pivot.args.alias, Expression)?.pop();\n return new FromExpr({\n this: expression.args.this.replace(\n select('*')\n .from(expression.args.this.copy(), {\n copy: false,\n })\n .subquery(aliasNode, {\n copy: false,\n }),\n ),\n });\n }\n }\n\n return expression;\n}\n\n/**\n * Spark doesn't allow qualified columns in PIVOT's field.\n */\nfunction unqualifyPivotColumns (expression: Expression): Expression {\n if (expression instanceof PivotExpr) {\n expression.setArgKey(\n 'fields',\n expression.args.fields?.map((field) => unqualifyColumns(field)),\n );\n }\n\n return expression;\n}\n\nexport function temporaryStorageProvider (expression: Expression): Expression {\n // Spark/Databricks require a storage provider for temporary tables\n const provider = new FileFormatPropertyExpr({\n this: LiteralExpr.string('parquet'),\n });\n\n const properties = expression.getArgKey('properties');\n if (properties instanceof Expression) {\n properties.append('expressions', provider);\n }\n\n return expression;\n}\n\nclass Spark2Tokenizer extends Hive.Tokenizer {\n @cache\n static get HEX_STRINGS (): TokenPair[] {\n return [\n [\n 'X\\'',\n '\\'',\n ],\n [\n 'x\\'',\n '\\'',\n ],\n ];\n }\n\n @cache\n static get ORIGINAL_KEYWORDS (): Record<string, TokenType> {\n return {\n ...Hive.Tokenizer.KEYWORDS,\n TIMESTAMP: TokenType.TIMESTAMPTZ,\n };\n }\n}\n\nclass Spark2Parser extends Hive.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 ...Hive.Parser.NO_PAREN_FUNCTIONS,\n };\n delete noParenFunctions[TokenType.LOCALTIME];\n delete noParenFunctions[TokenType.LOCALTIMESTAMP];\n return noParenFunctions;\n }\n\n static TRIM_PATTERN_FIRST = true;\n static CHANGE_COLUMN_ALTER_SYNTAX = true;\n\n @cache\n static get FUNCTIONS (): Record<string, (args: Expression[], options: {dialect: Dialect}) => Expression> {\n return {\n ...Hive.Parser.FUNCTIONS,\n AGGREGATE: (args: unknown[]) => ReduceExpr.fromArgList(args),\n BOOLEAN: buildAsCast('boolean'),\n DATE: buildAsCast('date'),\n DATE_TRUNC: (args: Expression[]) =>\n new TimestampTruncExpr({\n this: seqGet(args, 1),\n unit: var_(seqGet(args, 0)),\n }),\n DAYOFMONTH: (args: Expression[]) =>\n new DayOfMonthExpr({\n this: new TsOrDsToDateExpr({\n this: seqGet(args, 0),\n }),\n }),\n DAYOFWEEK: (args: Expression[]) =>\n new DayOfWeekExpr({\n this: new TsOrDsToDateExpr({\n this: seqGet(args, 0),\n }),\n }),\n DAYOFYEAR: (args: Expression[]) =>\n new DayOfYearExpr({\n this: new TsOrDsToDateExpr({\n this: seqGet(args, 0),\n }),\n }),\n DOUBLE: buildAsCast('double'),\n FLOAT: buildAsCast('float'),\n FORMAT_STRING: (args: unknown[]) => FormatExpr.fromArgList(args),\n FROM_UTC_TIMESTAMP: (args: Expression[], {\n dialect,\n }: {dialect: Dialect}) =>\n new AtTimeZoneExpr({\n this: cast(seqGet(args, 0) || var_(''), DataTypeExprKind.TIMESTAMP, {\n dialect,\n }),\n zone: seqGet(args, 1),\n }),\n LTRIM: (args: Expression[]) => buildTrim(args, {\n reverseArgs: true,\n }),\n INT: buildAsCast('int'),\n MAP_FROM_ARRAYS: (args: unknown[]) => MapExpr.fromArgList(args),\n RLIKE: (args: unknown[]) => RegexpLikeExpr.fromArgList(args),\n RTRIM: (args: Expression[]) => buildTrim(args, {\n isLeft: false,\n reverseArgs: true,\n }),\n SHIFTLEFT: binaryFromFunction(BitwiseLeftShiftExpr),\n SHIFTRIGHT: binaryFromFunction(BitwiseRightShiftExpr),\n STRING: buildAsCast('string'),\n SLICE: (args: unknown[]) => ArraySliceExpr.fromArgList(args),\n TIMESTAMP: buildAsCast('timestamp'),\n TO_TIMESTAMP: (args: Expression[]) =>\n args.length === 1\n ? buildAsCast('timestamp')(args)\n : buildFormattedTime(StrToTimeExpr, {\n dialect: 'spark',\n })(args),\n TO_UNIX_TIMESTAMP: (args: unknown[]) => StrToUnixExpr.fromArgList(args),\n TO_UTC_TIMESTAMP: (args: Expression[], {\n dialect,\n }: {dialect: Dialect}) =>\n new FromTimeZoneExpr({\n this: cast(seqGet(args, 0) || var_(''), DataTypeExprKind.TIMESTAMP, {\n dialect,\n }),\n zone: seqGet(args, 1),\n }),\n TRUNC: (args: Expression[]) => new DateTruncExpr({\n unit: seqGet(args, 1),\n this: seqGet(args, 0),\n }),\n WEEKOFYEAR: (args: Expression[]) =>\n new WeekOfYearExpr({\n this: new TsOrDsToDateExpr({\n this: seqGet(args, 0),\n }),\n }),\n };\n }\n\n @cache\n static get FUNCTION_PARSERS (): Partial<Record<string, (this: Parser) => Expression | undefined>> {\n return {\n ...Hive.Parser.FUNCTION_PARSERS,\n APPROX_PERCENTILE: function (this: Parser) {\n return (this as Spark2Parser).parseQuantileFunction(ApproxQuantileExpr);\n },\n BROADCAST: function (this: Parser) {\n return this.parseJoinHint('BROADCAST');\n },\n BROADCASTJOIN: function (this: Parser) {\n return this.parseJoinHint('BROADCASTJOIN');\n },\n MAPJOIN: function (this: Parser) {\n return this.parseJoinHint('MAPJOIN');\n },\n MERGE: function (this: Parser) {\n return this.parseJoinHint('MERGE');\n },\n SHUFFLEMERGE: function (this: Parser) {\n return this.parseJoinHint('SHUFFLEMERGE');\n },\n MERGEJOIN: function (this: Parser) {\n return this.parseJoinHint('MERGEJOIN');\n },\n SHUFFLE_HASH: function (this: Parser) {\n return this.parseJoinHint('SHUFFLE_HASH');\n },\n SHUFFLE_REPLICATE_NL: function (this: Parser) {\n return this.parseJoinHint('SHUFFLE_REPLICATE_NL');\n },\n };\n }\n\n parseDropColumn (): DropExpr | CommandExpr | undefined {\n return (\n (this.matchTextSeq([\n 'DROP',\n 'COLUMNS',\n ]) || undefined)\n && this.expression(DropExpr, {\n this: this.parseSchema(),\n kind: 'COLUMNS',\n })\n );\n }\n\n pivotColumnNames (aggregations: Expression[]): string[] {\n if (aggregations.length === 1) {\n return [\n ];\n }\n return pivotColumnNames(aggregations, {\n dialect: 'spark',\n });\n }\n\n // port from _Dialect metaclass logic\n @cache\n static get TABLE_ALIAS_TOKENS (): Set<TokenType> {\n return new Set([\n ...Hive.Parser.TABLE_ALIAS_TOKENS,\n TokenType.STRAIGHT_JOIN,\n ]);\n }\n}\nclass Spark2Generator extends Hive.Generator {\n // port from _Dialect metaclass logic\n static SUPPORTS_DECODE_CASE = false;\n // port from _Dialect metaclass logic\n static TRY_SUPPORTED = false;\n // port from _Dialect metaclass logic\n static SUPPORTS_UESCAPE = false;\n static QUERY_HINTS = true;\n static NVL2_SUPPORTED = true;\n static CAN_IMPLEMENT_ARRAY_ANY = true;\n static ALTER_SET_TYPE = 'TYPE';\n static PARSE_JSON_NAME?: string;\n\n @cache\n static get PROPERTIES_LOCATION (): Map<typeof Expression, PropertiesLocation> {\n return new Map([\n ...Hive.Generator.PROPERTIES_LOCATION,\n [\n EnginePropertyExpr,\n PropertiesLocation.UNSUPPORTED,\n ],\n [\n AutoIncrementPropertyExpr,\n PropertiesLocation.UNSUPPORTED,\n ],\n [\n CharacterSetPropertyExpr,\n PropertiesLocation.UNSUPPORTED,\n ],\n [\n CollatePropertyExpr,\n PropertiesLocation.UNSUPPORTED,\n ],\n ]);\n }\n\n @cache\n static get TS_OR_DS_EXPRESSIONS (): Set<typeof Expression> {\n return new Set([\n ...Hive.Generator.TS_OR_DS_EXPRESSIONS,\n DayOfMonthExpr,\n DayOfWeekExpr,\n DayOfYearExpr,\n WeekOfYearExpr,\n ]);\n }\n\n @cache\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static get ORIGINAL_TRANSFORMS (): Map<typeof Expression, (this: Generator, e: any) => string> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transforms = new Map<typeof Expression, (this: Generator, e: any) => string>([\n ...Hive.Generator.TRANSFORMS,\n [\n ApproxDistinctExpr,\n renameFunc('APPROX_COUNT_DISTINCT'),\n ],\n [\n ArraySumExpr,\n function (this: Generator, e: ArraySumExpr) {\n return `AGGREGATE(${this.sql(e, 'this')}, 0, (acc, x) -> acc + x, acc -> acc)`;\n },\n ],\n [\n ArrayToStringExpr,\n renameFunc('ARRAY_JOIN'),\n ],\n [\n ArraySliceExpr,\n renameFunc('SLICE'),\n ],\n [\n AtTimeZoneExpr,\n function (this: Generator, e: AtTimeZoneExpr) {\n return this.func('FROM_UTC_TIMESTAMP', [\n e.args.this,\n e.args.zone,\n ]);\n },\n ],\n [\n BitwiseLeftShiftExpr,\n renameFunc('SHIFTLEFT'),\n ],\n [\n BitwiseRightShiftExpr,\n renameFunc('SHIFTRIGHT'),\n ],\n [\n CreateExpr,\n preprocess([\n removeUniqueConstraints,\n (e: Expression) => ctasWithTmpTablesToCreateTmpView(e, temporaryStorageProvider),\n moveSchemaColumnsToPartitionedBy,\n ]),\n ],\n [\n DateFromPartsExpr,\n renameFunc('MAKE_DATE'),\n ],\n [\n DateTruncExpr,\n function (this: Generator, e: DateTruncExpr) {\n return this.func('TRUNC', [\n e.args.this,\n unitToStr(e),\n ]);\n },\n ],\n [\n DayOfMonthExpr,\n renameFunc('DAYOFMONTH'),\n ],\n [\n DayOfWeekExpr,\n renameFunc('DAYOFWEEK'),\n ],\n [\n DayOfWeekIsoExpr,\n function (this: Generator, e: DayOfWeekIsoExpr) {\n return '(( ' + this.func('DAYOFWEEK', [\n e.args.this,\n ]) + ' % 7) + 1)';\n },\n ],\n [\n DayOfYearExpr,\n renameFunc('DAYOFYEAR'),\n ],\n [\n FormatExpr,\n renameFunc('FORMAT_STRING'),\n ],\n [\n FromExpr,\n preprocess([\n unaliasPivot,\n ]),\n ],\n [\n FromTimeZoneExpr,\n function (this: Generator, e: FromTimeZoneExpr) {\n return this.func('TO_UTC_TIMESTAMP', [\n e.args.this,\n e.args.zone,\n ]);\n },\n ],\n [\n LogicalAndExpr,\n renameFunc('BOOL_AND'),\n ],\n [\n LogicalOrExpr,\n renameFunc('BOOL_OR'),\n ],\n [\n MapExpr,\n mapSql,\n ],\n [\n PivotExpr,\n preprocess([\n unqualifyPivotColumns,\n ]),\n ],\n [\n ReduceExpr,\n renameFunc('AGGREGATE'),\n ],\n [\n RegexpReplaceExpr,\n function (this: Generator, e: RegexpReplaceExpr) {\n return this.func('REGEXP_REPLACE', [\n e.args.this,\n e.args.expression,\n e.args.replacement,\n e.args.position,\n ]);\n },\n ],\n [\n SelectExpr,\n preprocess([\n eliminateQualify,\n eliminateDistinctOn,\n unnestToExplode,\n anyToExists,\n ]),\n ],\n [\n Sha2DigestExpr,\n function (this: Generator, e: Sha2DigestExpr) {\n return this.func('SHA2', [\n e.args.this,\n e.args.length || LiteralExpr.number(256),\n ]);\n },\n ],\n [\n StrToDateExpr,\n strToDate,\n ],\n [\n StrToTimeExpr,\n function (this: Generator, e: StrToTimeExpr) {\n return this.func('TO_TIMESTAMP', [\n e.args.this,\n this.formatTime(e),\n ]);\n },\n ],\n [\n TimestampTruncExpr,\n function (this: Generator, e: TimestampTruncExpr) {\n return this.func('DATE_TRUNC', [\n unitToStr(e),\n e.args.this,\n ]);\n },\n ],\n [\n UnixToTimeExpr,\n unixToTimeSql,\n ],\n [\n VariancePopExpr,\n renameFunc('VAR_POP'),\n ],\n [\n WeekOfYearExpr,\n renameFunc('WEEKOFYEAR'),\n ],\n [\n WithinGroupExpr,\n preprocess([\n removeWithinGroupForPercentiles,\n ]),\n ],\n ]);\n\n [\n ArraySortExpr,\n ILikeExpr,\n LeftExpr,\n MonthsBetweenExpr,\n RightExpr,\n ].forEach((expr) => transforms.delete(expr));\n\n return transforms;\n }\n\n static WRAP_DERIVED_VALUES = false;\n static CREATE_FUNCTION_RETURN_AS = false;\n\n structSql (expression: StructExpr): string {\n return Generator.prototype.structSql.call(this, expression);\n }\n\n castSql (expression: CastExpr, options: {safePrefix?: string} = {}): string {\n const arg = expression.args.this;\n const isJsonExtract =\n (arg instanceof JsonExtractExpr || arg instanceof JsonExtractScalarExpr)\n && !arg.getArgKey('variantExtract');\n\n if (narrowInstanceOf(expression.args.to, Expression)?.getArgKey('nested') && (isParseJson(arg) || isJsonExtract)) {\n const schema = `'${this.sql(expression, 'to')}'`;\n return this.func('FROM_JSON', [\n isJsonExtract ? arg : (arg as Expression).args.this,\n schema,\n ]);\n }\n\n if (isParseJson(expression)) {\n return this.func('TO_JSON', [\n arg,\n ]);\n }\n\n return super.castSql(expression, options);\n }\n\n fileFormatPropertySql (expression: FileFormatPropertyExpr): string {\n if (expression.args.hiveFormat) {\n return super.fileFormatPropertySql(expression);\n }\n\n return `USING ${expression.name.toUpperCase()}`;\n }\n\n alterColumnSql (expression: AlterColumnExpr): string {\n const thisNode = this.sql(expression, 'this');\n const newName = this.sql(expression, 'renameTo') || thisNode;\n const comment = this.sql(expression, 'comment');\n\n if (newName === thisNode) {\n if (comment) {\n return `ALTER COLUMN ${thisNode} COMMENT ${comment}`;\n }\n return Generator.prototype.alterColumnSql.call(this, expression);\n }\n return `RENAME COLUMN ${thisNode} TO ${newName}`;\n }\n\n renameColumnSql (expr: Expression): string {\n return super.renameColumnSql(expr);\n }\n}\n\nexport class Spark2 extends Hive {\n static DIALECT_NAME = Dialects.SPARK2;\n static ALTER_TABLE_SUPPORTS_CASCADE = false;\n @cache\n static get EXPRESSION_METADATA () {\n return new Map(Spark2Typing.EXPRESSION_METADATA);\n }\n\n static INITCAP_DEFAULT_DELIMITER_CHARS = ' ';\n\n static Tokenizer = Spark2Tokenizer;\n static Parser = Spark2Parser;\n static Generator = Spark2Generator;\n}\n\nDialect.register(Dialects.SPARK2, Spark2);\n"]}