drizzle-orm 0.36.4 → 0.37.0-7c72529

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 (501) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +4 -3
  3. package/column-builder.d.ts +4 -3
  4. package/column-builder.js.map +1 -1
  5. package/durable-sqlite/driver.cjs +64 -0
  6. package/durable-sqlite/driver.cjs.map +1 -0
  7. package/durable-sqlite/driver.d.cts +9 -0
  8. package/durable-sqlite/driver.d.ts +9 -0
  9. package/durable-sqlite/driver.js +42 -0
  10. package/durable-sqlite/driver.js.map +1 -0
  11. package/durable-sqlite/index.cjs +25 -0
  12. package/durable-sqlite/index.cjs.map +1 -0
  13. package/durable-sqlite/index.d.cts +2 -0
  14. package/durable-sqlite/index.d.ts +2 -0
  15. package/durable-sqlite/index.js +3 -0
  16. package/durable-sqlite/index.js.map +1 -0
  17. package/durable-sqlite/migrator.cjs +85 -0
  18. package/durable-sqlite/migrator.cjs.map +1 -0
  19. package/durable-sqlite/migrator.d.cts +14 -0
  20. package/durable-sqlite/migrator.d.ts +14 -0
  21. package/durable-sqlite/migrator.js +61 -0
  22. package/durable-sqlite/migrator.js.map +1 -0
  23. package/durable-sqlite/session.cjs +131 -0
  24. package/durable-sqlite/session.cjs.map +1 -0
  25. package/durable-sqlite/session.d.cts +46 -0
  26. package/durable-sqlite/session.d.ts +46 -0
  27. package/durable-sqlite/session.js +107 -0
  28. package/durable-sqlite/session.js.map +1 -0
  29. package/mysql-core/dialect.cjs +18 -3
  30. package/mysql-core/dialect.cjs.map +1 -1
  31. package/mysql-core/dialect.d.cts +2 -1
  32. package/mysql-core/dialect.d.ts +2 -1
  33. package/mysql-core/dialect.js +18 -3
  34. package/mysql-core/dialect.js.map +1 -1
  35. package/mysql-core/query-builders/select.cjs +84 -8
  36. package/mysql-core/query-builders/select.cjs.map +1 -1
  37. package/mysql-core/query-builders/select.d.cts +55 -3
  38. package/mysql-core/query-builders/select.d.ts +55 -3
  39. package/mysql-core/query-builders/select.js +82 -6
  40. package/mysql-core/query-builders/select.js.map +1 -1
  41. package/mysql-core/query-builders/select.types.cjs.map +1 -1
  42. package/mysql-core/query-builders/select.types.d.cts +8 -2
  43. package/mysql-core/query-builders/select.types.d.ts +8 -2
  44. package/mysql-core/utils.cjs +14 -0
  45. package/mysql-core/utils.cjs.map +1 -1
  46. package/mysql-core/utils.d.cts +7 -3
  47. package/mysql-core/utils.d.ts +7 -3
  48. package/mysql-core/utils.js +13 -0
  49. package/mysql-core/utils.js.map +1 -1
  50. package/mysql-core/view.cjs.map +1 -1
  51. package/mysql-core/view.d.cts +2 -3
  52. package/mysql-core/view.d.ts +2 -3
  53. package/mysql-core/view.js.map +1 -1
  54. package/neon-http/driver.cjs +1 -1
  55. package/neon-http/driver.cjs.map +1 -1
  56. package/neon-http/driver.d.cts +2 -2
  57. package/neon-http/driver.d.ts +2 -2
  58. package/neon-http/driver.js +1 -1
  59. package/neon-http/driver.js.map +1 -1
  60. package/neon-http/session.cjs.map +1 -1
  61. package/neon-http/session.js.map +1 -1
  62. package/package.json +784 -3
  63. package/pg-core/db.cjs +4 -2
  64. package/pg-core/db.cjs.map +1 -1
  65. package/pg-core/db.d.cts +2 -2
  66. package/pg-core/db.d.ts +2 -2
  67. package/pg-core/db.js +4 -2
  68. package/pg-core/db.js.map +1 -1
  69. package/pg-core/query-builders/count.cjs +1 -0
  70. package/pg-core/query-builders/count.cjs.map +1 -1
  71. package/pg-core/query-builders/count.d.cts +2 -1
  72. package/pg-core/query-builders/count.d.ts +2 -1
  73. package/pg-core/query-builders/count.js +1 -0
  74. package/pg-core/query-builders/count.js.map +1 -1
  75. package/pg-core/query-builders/delete.cjs.map +1 -1
  76. package/pg-core/query-builders/delete.js.map +1 -1
  77. package/pg-core/query-builders/insert.cjs +1 -9
  78. package/pg-core/query-builders/insert.cjs.map +1 -1
  79. package/pg-core/query-builders/insert.js +1 -9
  80. package/pg-core/query-builders/insert.js.map +1 -1
  81. package/pg-core/query-builders/query.cjs.map +1 -1
  82. package/pg-core/query-builders/query.js.map +1 -1
  83. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  84. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  85. package/pg-core/query-builders/select.cjs +2 -10
  86. package/pg-core/query-builders/select.cjs.map +1 -1
  87. package/pg-core/query-builders/select.js +8 -11
  88. package/pg-core/query-builders/select.js.map +1 -1
  89. package/pg-core/query-builders/update.cjs +1 -7
  90. package/pg-core/query-builders/update.cjs.map +1 -1
  91. package/pg-core/query-builders/update.d.cts +2 -2
  92. package/pg-core/query-builders/update.d.ts +2 -2
  93. package/pg-core/query-builders/update.js +6 -8
  94. package/pg-core/query-builders/update.js.map +1 -1
  95. package/pg-core/session.cjs.map +1 -1
  96. package/pg-core/session.d.cts +2 -1
  97. package/pg-core/session.d.ts +2 -1
  98. package/pg-core/session.js.map +1 -1
  99. package/pg-core/utils.d.cts +2 -3
  100. package/pg-core/utils.d.ts +2 -3
  101. package/pg-core/view.cjs.map +1 -1
  102. package/pg-core/view.d.cts +4 -5
  103. package/pg-core/view.d.ts +4 -5
  104. package/pg-core/view.js.map +1 -1
  105. package/query-builders/select.types.cjs.map +1 -1
  106. package/query-builders/select.types.d.cts +2 -2
  107. package/query-builders/select.types.d.ts +2 -2
  108. package/singlestore/driver.cjs +113 -0
  109. package/singlestore/driver.cjs.map +1 -0
  110. package/singlestore/driver.d.cts +52 -0
  111. package/singlestore/driver.d.ts +52 -0
  112. package/singlestore/driver.js +89 -0
  113. package/singlestore/driver.js.map +1 -0
  114. package/singlestore/index.cjs +25 -0
  115. package/singlestore/index.cjs.map +1 -0
  116. package/singlestore/index.d.cts +2 -0
  117. package/singlestore/index.d.ts +2 -0
  118. package/singlestore/index.js +3 -0
  119. package/singlestore/index.js.map +1 -0
  120. package/singlestore/migrator.cjs +33 -0
  121. package/singlestore/migrator.cjs.map +1 -0
  122. package/singlestore/migrator.d.cts +3 -0
  123. package/singlestore/migrator.d.ts +3 -0
  124. package/singlestore/migrator.js +9 -0
  125. package/singlestore/migrator.js.map +1 -0
  126. package/singlestore/session.cjs +258 -0
  127. package/singlestore/session.cjs.map +1 -0
  128. package/singlestore/session.d.cts +52 -0
  129. package/singlestore/session.d.ts +52 -0
  130. package/singlestore/session.js +236 -0
  131. package/singlestore/session.js.map +1 -0
  132. package/singlestore-core/alias.cjs +32 -0
  133. package/singlestore-core/alias.cjs.map +1 -0
  134. package/singlestore-core/alias.d.cts +4 -0
  135. package/singlestore-core/alias.d.ts +4 -0
  136. package/singlestore-core/alias.js +8 -0
  137. package/singlestore-core/alias.js.map +1 -0
  138. package/singlestore-core/columns/all.cjs +80 -0
  139. package/singlestore-core/columns/all.cjs.map +1 -0
  140. package/singlestore-core/columns/all.d.cts +51 -0
  141. package/singlestore-core/columns/all.d.ts +51 -0
  142. package/singlestore-core/columns/all.js +56 -0
  143. package/singlestore-core/columns/all.js.map +1 -0
  144. package/singlestore-core/columns/bigint.cjs +96 -0
  145. package/singlestore-core/columns/bigint.cjs.map +1 -0
  146. package/singlestore-core/columns/bigint.d.cts +54 -0
  147. package/singlestore-core/columns/bigint.d.ts +54 -0
  148. package/singlestore-core/columns/bigint.js +68 -0
  149. package/singlestore-core/columns/bigint.js.map +1 -0
  150. package/singlestore-core/columns/binary.cjs +60 -0
  151. package/singlestore-core/columns/binary.cjs.map +1 -0
  152. package/singlestore-core/columns/binary.d.cts +28 -0
  153. package/singlestore-core/columns/binary.d.ts +28 -0
  154. package/singlestore-core/columns/binary.js +34 -0
  155. package/singlestore-core/columns/binary.js.map +1 -0
  156. package/singlestore-core/columns/boolean.cjs +62 -0
  157. package/singlestore-core/columns/boolean.cjs.map +1 -0
  158. package/singlestore-core/columns/boolean.d.cts +24 -0
  159. package/singlestore-core/columns/boolean.d.ts +24 -0
  160. package/singlestore-core/columns/boolean.js +36 -0
  161. package/singlestore-core/columns/boolean.js.map +1 -0
  162. package/singlestore-core/columns/char.cjs +62 -0
  163. package/singlestore-core/columns/char.cjs.map +1 -0
  164. package/singlestore-core/columns/char.d.cts +31 -0
  165. package/singlestore-core/columns/char.d.ts +31 -0
  166. package/singlestore-core/columns/char.js +36 -0
  167. package/singlestore-core/columns/char.js.map +1 -0
  168. package/singlestore-core/columns/common.cjs +82 -0
  169. package/singlestore-core/columns/common.cjs.map +1 -0
  170. package/singlestore-core/columns/common.d.cts +42 -0
  171. package/singlestore-core/columns/common.d.ts +42 -0
  172. package/singlestore-core/columns/common.js +55 -0
  173. package/singlestore-core/columns/common.js.map +1 -0
  174. package/singlestore-core/columns/custom.cjs +77 -0
  175. package/singlestore-core/columns/custom.cjs.map +1 -0
  176. package/singlestore-core/columns/custom.d.cts +156 -0
  177. package/singlestore-core/columns/custom.d.ts +156 -0
  178. package/singlestore-core/columns/custom.js +51 -0
  179. package/singlestore-core/columns/custom.js.map +1 -0
  180. package/singlestore-core/columns/date.cjs +93 -0
  181. package/singlestore-core/columns/date.cjs.map +1 -0
  182. package/singlestore-core/columns/date.common.cjs +48 -0
  183. package/singlestore-core/columns/date.common.cjs.map +1 -0
  184. package/singlestore-core/columns/date.common.d.cts +16 -0
  185. package/singlestore-core/columns/date.common.d.ts +16 -0
  186. package/singlestore-core/columns/date.common.js +23 -0
  187. package/singlestore-core/columns/date.common.js.map +1 -0
  188. package/singlestore-core/columns/date.d.cts +53 -0
  189. package/singlestore-core/columns/date.d.ts +53 -0
  190. package/singlestore-core/columns/date.js +65 -0
  191. package/singlestore-core/columns/date.js.map +1 -0
  192. package/singlestore-core/columns/datetime.cjs +106 -0
  193. package/singlestore-core/columns/datetime.cjs.map +1 -0
  194. package/singlestore-core/columns/datetime.d.cts +54 -0
  195. package/singlestore-core/columns/datetime.d.ts +54 -0
  196. package/singlestore-core/columns/datetime.js +78 -0
  197. package/singlestore-core/columns/datetime.js.map +1 -0
  198. package/singlestore-core/columns/decimal.cjs +76 -0
  199. package/singlestore-core/columns/decimal.cjs.map +1 -0
  200. package/singlestore-core/columns/decimal.d.cts +32 -0
  201. package/singlestore-core/columns/decimal.d.ts +32 -0
  202. package/singlestore-core/columns/decimal.js +50 -0
  203. package/singlestore-core/columns/decimal.js.map +1 -0
  204. package/singlestore-core/columns/double.cjs +72 -0
  205. package/singlestore-core/columns/double.cjs.map +1 -0
  206. package/singlestore-core/columns/double.d.cts +32 -0
  207. package/singlestore-core/columns/double.d.ts +32 -0
  208. package/singlestore-core/columns/double.js +46 -0
  209. package/singlestore-core/columns/double.js.map +1 -0
  210. package/singlestore-core/columns/enum.cjs +67 -0
  211. package/singlestore-core/columns/enum.cjs.map +1 -0
  212. package/singlestore-core/columns/enum.d.cts +31 -0
  213. package/singlestore-core/columns/enum.d.ts +31 -0
  214. package/singlestore-core/columns/enum.js +41 -0
  215. package/singlestore-core/columns/enum.js.map +1 -0
  216. package/singlestore-core/columns/float.cjs +72 -0
  217. package/singlestore-core/columns/float.cjs.map +1 -0
  218. package/singlestore-core/columns/float.d.cts +32 -0
  219. package/singlestore-core/columns/float.d.ts +32 -0
  220. package/singlestore-core/columns/float.js +46 -0
  221. package/singlestore-core/columns/float.js.map +1 -0
  222. package/singlestore-core/columns/index.cjs +71 -0
  223. package/singlestore-core/columns/index.cjs.map +1 -0
  224. package/singlestore-core/columns/index.d.cts +25 -0
  225. package/singlestore-core/columns/index.d.ts +25 -0
  226. package/singlestore-core/columns/index.js +26 -0
  227. package/singlestore-core/columns/index.js.map +1 -0
  228. package/singlestore-core/columns/int.cjs +65 -0
  229. package/singlestore-core/columns/int.cjs.map +1 -0
  230. package/singlestore-core/columns/int.d.cts +28 -0
  231. package/singlestore-core/columns/int.d.ts +28 -0
  232. package/singlestore-core/columns/int.js +39 -0
  233. package/singlestore-core/columns/int.js.map +1 -0
  234. package/singlestore-core/columns/json.cjs +59 -0
  235. package/singlestore-core/columns/json.cjs.map +1 -0
  236. package/singlestore-core/columns/json.d.cts +24 -0
  237. package/singlestore-core/columns/json.d.ts +24 -0
  238. package/singlestore-core/columns/json.js +33 -0
  239. package/singlestore-core/columns/json.js.map +1 -0
  240. package/singlestore-core/columns/mediumint.cjs +65 -0
  241. package/singlestore-core/columns/mediumint.cjs.map +1 -0
  242. package/singlestore-core/columns/mediumint.d.cts +26 -0
  243. package/singlestore-core/columns/mediumint.d.ts +26 -0
  244. package/singlestore-core/columns/mediumint.js +39 -0
  245. package/singlestore-core/columns/mediumint.js.map +1 -0
  246. package/singlestore-core/columns/real.cjs +68 -0
  247. package/singlestore-core/columns/real.cjs.map +1 -0
  248. package/singlestore-core/columns/real.d.cts +30 -0
  249. package/singlestore-core/columns/real.d.ts +30 -0
  250. package/singlestore-core/columns/real.js +42 -0
  251. package/singlestore-core/columns/real.js.map +1 -0
  252. package/singlestore-core/columns/serial.cjs +64 -0
  253. package/singlestore-core/columns/serial.cjs.map +1 -0
  254. package/singlestore-core/columns/serial.d.cts +24 -0
  255. package/singlestore-core/columns/serial.d.ts +24 -0
  256. package/singlestore-core/columns/serial.js +38 -0
  257. package/singlestore-core/columns/serial.js.map +1 -0
  258. package/singlestore-core/columns/smallint.cjs +65 -0
  259. package/singlestore-core/columns/smallint.cjs.map +1 -0
  260. package/singlestore-core/columns/smallint.d.cts +26 -0
  261. package/singlestore-core/columns/smallint.d.ts +26 -0
  262. package/singlestore-core/columns/smallint.js +39 -0
  263. package/singlestore-core/columns/smallint.js.map +1 -0
  264. package/singlestore-core/columns/text.cjs +80 -0
  265. package/singlestore-core/columns/text.cjs.map +1 -0
  266. package/singlestore-core/columns/text.d.cts +46 -0
  267. package/singlestore-core/columns/text.d.ts +46 -0
  268. package/singlestore-core/columns/text.js +51 -0
  269. package/singlestore-core/columns/text.js.map +1 -0
  270. package/singlestore-core/columns/time.cjs +56 -0
  271. package/singlestore-core/columns/time.cjs.map +1 -0
  272. package/singlestore-core/columns/time.d.cts +23 -0
  273. package/singlestore-core/columns/time.d.ts +23 -0
  274. package/singlestore-core/columns/time.js +30 -0
  275. package/singlestore-core/columns/time.js.map +1 -0
  276. package/singlestore-core/columns/timestamp.cjs +97 -0
  277. package/singlestore-core/columns/timestamp.cjs.map +1 -0
  278. package/singlestore-core/columns/timestamp.d.cts +49 -0
  279. package/singlestore-core/columns/timestamp.d.ts +49 -0
  280. package/singlestore-core/columns/timestamp.js +69 -0
  281. package/singlestore-core/columns/timestamp.js.map +1 -0
  282. package/singlestore-core/columns/tinyint.cjs +65 -0
  283. package/singlestore-core/columns/tinyint.cjs.map +1 -0
  284. package/singlestore-core/columns/tinyint.d.cts +26 -0
  285. package/singlestore-core/columns/tinyint.d.ts +26 -0
  286. package/singlestore-core/columns/tinyint.js +39 -0
  287. package/singlestore-core/columns/tinyint.js.map +1 -0
  288. package/singlestore-core/columns/varbinary.cjs +61 -0
  289. package/singlestore-core/columns/varbinary.cjs.map +1 -0
  290. package/singlestore-core/columns/varbinary.d.cts +26 -0
  291. package/singlestore-core/columns/varbinary.d.ts +26 -0
  292. package/singlestore-core/columns/varbinary.js +35 -0
  293. package/singlestore-core/columns/varbinary.js.map +1 -0
  294. package/singlestore-core/columns/varchar.cjs +63 -0
  295. package/singlestore-core/columns/varchar.cjs.map +1 -0
  296. package/singlestore-core/columns/varchar.d.cts +29 -0
  297. package/singlestore-core/columns/varchar.d.ts +29 -0
  298. package/singlestore-core/columns/varchar.js +37 -0
  299. package/singlestore-core/columns/varchar.js.map +1 -0
  300. package/singlestore-core/columns/year.cjs +56 -0
  301. package/singlestore-core/columns/year.cjs.map +1 -0
  302. package/singlestore-core/columns/year.d.cts +23 -0
  303. package/singlestore-core/columns/year.d.ts +23 -0
  304. package/singlestore-core/columns/year.js +30 -0
  305. package/singlestore-core/columns/year.js.map +1 -0
  306. package/singlestore-core/db.cjs +261 -0
  307. package/singlestore-core/db.cjs.map +1 -0
  308. package/singlestore-core/db.d.cts +231 -0
  309. package/singlestore-core/db.d.ts +231 -0
  310. package/singlestore-core/db.js +242 -0
  311. package/singlestore-core/db.js.map +1 -0
  312. package/singlestore-core/dialect.cjs +607 -0
  313. package/singlestore-core/dialect.cjs.map +1 -0
  314. package/singlestore-core/dialect.d.cts +64 -0
  315. package/singlestore-core/dialect.d.ts +64 -0
  316. package/singlestore-core/dialect.js +589 -0
  317. package/singlestore-core/dialect.js.map +1 -0
  318. package/singlestore-core/expressions.cjs +49 -0
  319. package/singlestore-core/expressions.cjs.map +1 -0
  320. package/singlestore-core/expressions.d.cts +8 -0
  321. package/singlestore-core/expressions.d.ts +8 -0
  322. package/singlestore-core/expressions.js +22 -0
  323. package/singlestore-core/expressions.js.map +1 -0
  324. package/singlestore-core/index.cjs +47 -0
  325. package/singlestore-core/index.cjs.map +1 -0
  326. package/singlestore-core/index.d.cts +13 -0
  327. package/singlestore-core/index.d.ts +13 -0
  328. package/singlestore-core/index.js +14 -0
  329. package/singlestore-core/index.js.map +1 -0
  330. package/singlestore-core/indexes.cjs +88 -0
  331. package/singlestore-core/indexes.cjs.map +1 -0
  332. package/singlestore-core/indexes.d.cts +62 -0
  333. package/singlestore-core/indexes.d.ts +62 -0
  334. package/singlestore-core/indexes.js +60 -0
  335. package/singlestore-core/indexes.js.map +1 -0
  336. package/singlestore-core/primary-keys.cjs +68 -0
  337. package/singlestore-core/primary-keys.cjs.map +1 -0
  338. package/singlestore-core/primary-keys.d.cts +30 -0
  339. package/singlestore-core/primary-keys.d.ts +30 -0
  340. package/singlestore-core/primary-keys.js +42 -0
  341. package/singlestore-core/primary-keys.js.map +1 -0
  342. package/singlestore-core/query-builders/count.cjs +73 -0
  343. package/singlestore-core/query-builders/count.cjs.map +1 -0
  344. package/singlestore-core/query-builders/count.d.cts +25 -0
  345. package/singlestore-core/query-builders/count.d.ts +25 -0
  346. package/singlestore-core/query-builders/count.js +49 -0
  347. package/singlestore-core/query-builders/count.js.map +1 -0
  348. package/singlestore-core/query-builders/delete.cjs +123 -0
  349. package/singlestore-core/query-builders/delete.cjs.map +1 -0
  350. package/singlestore-core/query-builders/delete.d.cts +83 -0
  351. package/singlestore-core/query-builders/delete.d.ts +83 -0
  352. package/singlestore-core/query-builders/delete.js +99 -0
  353. package/singlestore-core/query-builders/delete.js.map +1 -0
  354. package/singlestore-core/query-builders/index.cjs +33 -0
  355. package/singlestore-core/query-builders/index.cjs.map +1 -0
  356. package/singlestore-core/query-builders/index.d.cts +6 -0
  357. package/singlestore-core/query-builders/index.d.ts +6 -0
  358. package/singlestore-core/query-builders/index.js +7 -0
  359. package/singlestore-core/query-builders/index.js.map +1 -0
  360. package/singlestore-core/query-builders/insert.cjs +146 -0
  361. package/singlestore-core/query-builders/insert.cjs.map +1 -0
  362. package/singlestore-core/query-builders/insert.d.cts +106 -0
  363. package/singlestore-core/query-builders/insert.d.ts +106 -0
  364. package/singlestore-core/query-builders/insert.js +121 -0
  365. package/singlestore-core/query-builders/insert.js.map +1 -0
  366. package/singlestore-core/query-builders/query-builder.cjs +99 -0
  367. package/singlestore-core/query-builders/query-builder.cjs.map +1 -0
  368. package/singlestore-core/query-builders/query-builder.d.cts +33 -0
  369. package/singlestore-core/query-builders/query-builder.d.ts +33 -0
  370. package/singlestore-core/query-builders/query-builder.js +75 -0
  371. package/singlestore-core/query-builders/query-builder.js.map +1 -0
  372. package/singlestore-core/query-builders/query.cjs +126 -0
  373. package/singlestore-core/query-builders/query.cjs.map +1 -0
  374. package/singlestore-core/query-builders/query.d.cts +42 -0
  375. package/singlestore-core/query-builders/query.d.ts +42 -0
  376. package/singlestore-core/query-builders/query.js +103 -0
  377. package/singlestore-core/query-builders/query.js.map +1 -0
  378. package/singlestore-core/query-builders/select.cjs +687 -0
  379. package/singlestore-core/query-builders/select.cjs.map +1 -0
  380. package/singlestore-core/query-builders/select.d.cts +585 -0
  381. package/singlestore-core/query-builders/select.d.ts +585 -0
  382. package/singlestore-core/query-builders/select.js +662 -0
  383. package/singlestore-core/query-builders/select.js.map +1 -0
  384. package/singlestore-core/query-builders/select.types.cjs +17 -0
  385. package/singlestore-core/query-builders/select.types.cjs.map +1 -0
  386. package/singlestore-core/query-builders/select.types.d.cts +137 -0
  387. package/singlestore-core/query-builders/select.types.d.ts +137 -0
  388. package/singlestore-core/query-builders/select.types.js +1 -0
  389. package/singlestore-core/query-builders/select.types.js.map +1 -0
  390. package/singlestore-core/query-builders/update.cjs +147 -0
  391. package/singlestore-core/query-builders/update.cjs.map +1 -0
  392. package/singlestore-core/query-builders/update.d.cts +102 -0
  393. package/singlestore-core/query-builders/update.d.ts +102 -0
  394. package/singlestore-core/query-builders/update.js +122 -0
  395. package/singlestore-core/query-builders/update.js.map +1 -0
  396. package/singlestore-core/schema.cjs +56 -0
  397. package/singlestore-core/schema.cjs.map +1 -0
  398. package/singlestore-core/schema.d.cts +22 -0
  399. package/singlestore-core/schema.d.ts +22 -0
  400. package/singlestore-core/schema.js +29 -0
  401. package/singlestore-core/schema.js.map +1 -0
  402. package/singlestore-core/session.cjs +87 -0
  403. package/singlestore-core/session.cjs.map +1 -0
  404. package/singlestore-core/session.d.cts +66 -0
  405. package/singlestore-core/session.d.ts +66 -0
  406. package/singlestore-core/session.js +61 -0
  407. package/singlestore-core/session.js.map +1 -0
  408. package/singlestore-core/subquery.cjs +17 -0
  409. package/singlestore-core/subquery.cjs.map +1 -0
  410. package/singlestore-core/subquery.d.cts +5 -0
  411. package/singlestore-core/subquery.d.ts +5 -0
  412. package/singlestore-core/subquery.js +1 -0
  413. package/singlestore-core/subquery.js.map +1 -0
  414. package/singlestore-core/table.cjs +73 -0
  415. package/singlestore-core/table.cjs.map +1 -0
  416. package/singlestore-core/table.d.cts +40 -0
  417. package/singlestore-core/table.d.ts +40 -0
  418. package/singlestore-core/table.js +46 -0
  419. package/singlestore-core/table.js.map +1 -0
  420. package/singlestore-core/unique-constraint.cjs +82 -0
  421. package/singlestore-core/unique-constraint.cjs.map +1 -0
  422. package/singlestore-core/unique-constraint.d.cts +24 -0
  423. package/singlestore-core/unique-constraint.d.ts +24 -0
  424. package/singlestore-core/unique-constraint.js +54 -0
  425. package/singlestore-core/unique-constraint.js.map +1 -0
  426. package/singlestore-core/utils.cjs +65 -0
  427. package/singlestore-core/utils.cjs.map +1 -0
  428. package/singlestore-core/utils.d.cts +13 -0
  429. package/singlestore-core/utils.d.ts +13 -0
  430. package/singlestore-core/utils.js +41 -0
  431. package/singlestore-core/utils.js.map +1 -0
  432. package/singlestore-core/view-base.cjs +33 -0
  433. package/singlestore-core/view-base.cjs.map +1 -0
  434. package/singlestore-core/view-base.d.cts +9 -0
  435. package/singlestore-core/view-base.d.ts +9 -0
  436. package/singlestore-core/view-base.js +9 -0
  437. package/singlestore-core/view-base.js.map +1 -0
  438. package/singlestore-core/view-common.cjs +29 -0
  439. package/singlestore-core/view-common.cjs.map +1 -0
  440. package/singlestore-core/view-common.d.cts +1 -0
  441. package/singlestore-core/view-common.d.ts +1 -0
  442. package/singlestore-core/view-common.js +5 -0
  443. package/singlestore-core/view-common.js.map +1 -0
  444. package/singlestore-core/view.cjs +146 -0
  445. package/singlestore-core/view.cjs.map +1 -0
  446. package/singlestore-core/view.d.cts +65 -0
  447. package/singlestore-core/view.d.ts +65 -0
  448. package/singlestore-core/view.js +119 -0
  449. package/singlestore-core/view.js.map +1 -0
  450. package/singlestore-proxy/driver.cjs +62 -0
  451. package/singlestore-proxy/driver.cjs.map +1 -0
  452. package/singlestore-proxy/driver.d.cts +13 -0
  453. package/singlestore-proxy/driver.d.ts +13 -0
  454. package/singlestore-proxy/driver.js +42 -0
  455. package/singlestore-proxy/driver.js.map +1 -0
  456. package/singlestore-proxy/index.cjs +25 -0
  457. package/singlestore-proxy/index.cjs.map +1 -0
  458. package/singlestore-proxy/index.d.cts +2 -0
  459. package/singlestore-proxy/index.d.ts +2 -0
  460. package/singlestore-proxy/index.js +3 -0
  461. package/singlestore-proxy/index.js.map +1 -0
  462. package/singlestore-proxy/migrator.cjs +60 -0
  463. package/singlestore-proxy/migrator.cjs.map +1 -0
  464. package/singlestore-proxy/migrator.d.cts +4 -0
  465. package/singlestore-proxy/migrator.d.ts +4 -0
  466. package/singlestore-proxy/migrator.js +36 -0
  467. package/singlestore-proxy/migrator.js.map +1 -0
  468. package/singlestore-proxy/session.cjs +127 -0
  469. package/singlestore-proxy/session.cjs.map +1 -0
  470. package/singlestore-proxy/session.d.cts +50 -0
  471. package/singlestore-proxy/session.d.ts +50 -0
  472. package/singlestore-proxy/session.js +101 -0
  473. package/singlestore-proxy/session.js.map +1 -0
  474. package/sql/sql.cjs +8 -0
  475. package/sql/sql.cjs.map +1 -1
  476. package/sql/sql.d.cts +10 -2
  477. package/sql/sql.d.ts +10 -2
  478. package/sql/sql.js +7 -0
  479. package/sql/sql.js.map +1 -1
  480. package/sqlite-core/columns/blob.cjs +16 -2
  481. package/sqlite-core/columns/blob.cjs.map +1 -1
  482. package/sqlite-core/columns/blob.d.cts +2 -2
  483. package/sqlite-core/columns/blob.d.ts +2 -2
  484. package/sqlite-core/columns/blob.js +16 -2
  485. package/sqlite-core/columns/blob.js.map +1 -1
  486. package/sqlite-core/utils.d.cts +1 -2
  487. package/sqlite-core/utils.d.ts +1 -2
  488. package/sqlite-core/view.cjs.map +1 -1
  489. package/sqlite-core/view.d.cts +2 -3
  490. package/sqlite-core/view.d.ts +2 -3
  491. package/sqlite-core/view.js.map +1 -1
  492. package/utils.cjs +5 -0
  493. package/utils.cjs.map +1 -1
  494. package/utils.d.cts +3 -1
  495. package/utils.d.ts +3 -1
  496. package/utils.js +4 -0
  497. package/utils.js.map +1 -1
  498. package/version.cjs +1 -1
  499. package/version.d.cts +1 -1
  500. package/version.d.ts +1 -1
  501. package/version.js +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-core/dialect.ts"],"sourcesContent":["import { aliasedTable, aliasedTableColumn, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias } from '~/alias.ts';\nimport { CasingCache } from '~/casing.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError } from '~/errors.ts';\nimport { and, eq } from '~/expressions.ts';\nimport type { MigrationConfig, MigrationMeta } from '~/migrator.ts';\nimport {\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tgetOperators,\n\tgetOrderByOperators,\n\tMany,\n\tnormalizeRelation,\n\tOne,\n\ttype Relation,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Name, Placeholder, QueryWithTypings, SQLChunk } from '~/sql/sql.ts';\nimport { Param, SQL, sql, View } from '~/sql/sql.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { getTableName, getTableUniqueName, Table } from '~/table.ts';\nimport { type Casing, orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { SingleStoreColumn } from './columns/common.ts';\nimport type { SingleStoreDeleteConfig } from './query-builders/delete.ts';\nimport type { SingleStoreInsertConfig } from './query-builders/insert.ts';\nimport type {\n\tSelectedFieldsOrdered,\n\tSingleStoreSelectConfig,\n\tSingleStoreSelectJoinConfig,\n} from './query-builders/select.types.ts';\nimport type { SingleStoreUpdateConfig } from './query-builders/update.ts';\nimport type { SingleStoreSession } from './session.ts';\nimport { SingleStoreTable } from './table.ts';\n/* import { SingleStoreViewBase } from './view-base.ts'; */\n\nexport interface SingleStoreDialectConfig {\n\tcasing?: Casing;\n}\n\nexport class SingleStoreDialect {\n\tstatic readonly [entityKind]: string = 'SingleStoreDialect';\n\n\t/** @internal */\n\treadonly casing: CasingCache;\n\n\tconstructor(config?: SingleStoreDialectConfig) {\n\t\tthis.casing = new CasingCache(config?.casing);\n\t}\n\n\tasync migrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SingleStoreSession,\n\t\tconfig: Omit<MigrationConfig, 'migrationsSchema'>,\n\t): Promise<void> {\n\t\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\t\tconst migrationTableCreate = sql`\n\t\t\tcreate table if not exists ${sql.identifier(migrationsTable)} (\n\t\t\t\tid serial primary key,\n\t\t\t\thash text not null,\n\t\t\t\tcreated_at bigint\n\t\t\t)\n\t\t`;\n\t\tawait session.execute(migrationTableCreate);\n\n\t\tconst dbMigrations = await session.all<{ id: number; hash: string; created_at: string }>(\n\t\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsTable)} order by created_at desc limit 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0];\n\n\t\tawait session.transaction(async (tx) => {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (\n\t\t\t\t\t!lastDbMigration\n\t\t\t\t\t|| Number(lastDbMigration.created_at) < migration.folderMillis\n\t\t\t\t) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tawait tx.execute(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tawait tx.execute(\n\t\t\t\t\t\tsql`insert into ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\\`hash\\`, \\`created_at\\`) values(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tescapeName(name: string): string {\n\t\treturn `\\`${name}\\``;\n\t}\n\n\tescapeParam(_num: number): string {\n\t\treturn `?`;\n\t}\n\n\tescapeString(str: string): string {\n\t\treturn `'${str.replace(/'/g, \"''\")}'`;\n\t}\n\n\tprivate buildWithCTE(queries: Subquery[] | undefined): SQL | undefined {\n\t\tif (!queries?.length) return undefined;\n\n\t\tconst withSqlChunks = [sql`with `];\n\t\tfor (const [i, w] of queries.entries()) {\n\t\t\twithSqlChunks.push(sql`${sql.identifier(w._.alias)} as (${w._.sql})`);\n\t\t\tif (i < queries.length - 1) {\n\t\t\t\twithSqlChunks.push(sql`, `);\n\t\t\t}\n\t\t}\n\t\twithSqlChunks.push(sql` `);\n\t\treturn sql.join(withSqlChunks);\n\t}\n\n\tbuildDeleteQuery({ table, where, returning, withList, limit, orderBy }: SingleStoreDeleteConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\treturn sql`${withSql}delete from ${table}${whereSql}${orderBySql}${limitSql}${returningSql}`;\n\t}\n\n\tbuildUpdateSet(table: SingleStoreTable, set: UpdateSet): SQL {\n\t\tconst tableColumns = table[Table.Symbol.Columns];\n\n\t\tconst columnNames = Object.keys(tableColumns).filter((colName) =>\n\t\t\tset[colName] !== undefined || tableColumns[colName]?.onUpdateFn !== undefined\n\t\t);\n\n\t\tconst setSize = columnNames.length;\n\t\treturn sql.join(columnNames.flatMap((colName, i) => {\n\t\t\tconst col = tableColumns[colName]!;\n\n\t\t\tconst value = set[colName] ?? sql.param(col.onUpdateFn!(), col);\n\t\t\tconst res = sql`${sql.identifier(this.casing.getColumnCasing(col))} = ${value}`;\n\n\t\t\tif (i < setSize - 1) {\n\t\t\t\treturn [res, sql.raw(', ')];\n\t\t\t}\n\t\t\treturn [res];\n\t\t}));\n\t}\n\n\tbuildUpdateQuery({ table, set, where, returning, withList, limit, orderBy }: SingleStoreUpdateConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst setSql = this.buildUpdateSet(table, set);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\treturn sql`${withSql}update ${table} set ${setSql}${whereSql}${orderBySql}${limitSql}${returningSql}`;\n\t}\n\n\t/**\n\t * Builds selection SQL with provided fields/expressions\n\t *\n\t * Examples:\n\t *\n\t * `select <selection> from`\n\t *\n\t * `insert ... returning <selection>`\n\t *\n\t * If `isSingleTable` is true, then columns won't be prefixed with table name\n\t */\n\tprivate buildSelection(\n\t\tfields: SelectedFieldsOrdered,\n\t\t{ isSingleTable = false }: { isSingleTable?: boolean } = {},\n\t): SQL {\n\t\tconst columnsLen = fields.length;\n\n\t\tconst chunks = fields\n\t\t\t.flatMap(({ field }, i) => {\n\t\t\t\tconst chunk: SQLChunk[] = [];\n\n\t\t\t\tif (is(field, SQL.Aliased) && field.isSelectionField) {\n\t\t\t\t\tchunk.push(sql.identifier(field.fieldAlias));\n\t\t\t\t} else if (is(field, SQL.Aliased) || is(field, SQL)) {\n\t\t\t\t\tconst query = is(field, SQL.Aliased) ? field.sql : field;\n\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(\n\t\t\t\t\t\t\tnew SQL(\n\t\t\t\t\t\t\t\tquery.queryChunks.map((c) => {\n\t\t\t\t\t\t\t\t\tif (is(c, SingleStoreColumn)) {\n\t\t\t\t\t\t\t\t\t\treturn sql.identifier(this.casing.getColumnCasing(c));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn c;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(query);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (is(field, SQL.Aliased)) {\n\t\t\t\t\t\tchunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);\n\t\t\t\t\t}\n\t\t\t\t} else if (is(field, Column)) {\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(sql.identifier(this.casing.getColumnCasing(field)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(field);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (i < columnsLen - 1) {\n\t\t\t\t\tchunk.push(sql`, `);\n\t\t\t\t}\n\n\t\t\t\treturn chunk;\n\t\t\t});\n\n\t\treturn sql.join(chunks);\n\t}\n\n\tprivate buildLimit(limit: number | Placeholder | undefined): SQL | undefined {\n\t\treturn typeof limit === 'object' || (typeof limit === 'number' && limit >= 0)\n\t\t\t? sql` limit ${limit}`\n\t\t\t: undefined;\n\t}\n\n\tprivate buildOrderBy(orderBy: (SingleStoreColumn | SQL | SQL.Aliased)[] | undefined): SQL | undefined {\n\t\treturn orderBy && orderBy.length > 0 ? sql` order by ${sql.join(orderBy, sql`, `)}` : undefined;\n\t}\n\n\tbuildSelectQuery(\n\t\t{\n\t\t\twithList,\n\t\t\tfields,\n\t\t\tfieldsFlat,\n\t\t\twhere,\n\t\t\thaving,\n\t\t\ttable,\n\t\t\tjoins,\n\t\t\torderBy,\n\t\t\tgroupBy,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tlockingClause,\n\t\t\tdistinct,\n\t\t\tsetOperators,\n\t\t}: SingleStoreSelectConfig,\n\t): SQL {\n\t\tconst fieldsList = fieldsFlat ?? orderSelectedFields<SingleStoreColumn>(fields);\n\t\tfor (const f of fieldsList) {\n\t\t\tif (\n\t\t\t\tis(f.field, Column)\n\t\t\t\t&& getTableName(f.field.table)\n\t\t\t\t\t!== (is(table, Subquery)\n\t\t\t\t\t\t? table._.alias\n\t\t\t\t\t\t/* : is(table, SingleStoreViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].name */\n\t\t\t\t\t\t: is(table, SQL)\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: getTableName(table))\n\t\t\t\t&& !((table) =>\n\t\t\t\t\tjoins?.some(({ alias }) =>\n\t\t\t\t\t\talias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])\n\t\t\t\t\t))(f.field.table)\n\t\t\t) {\n\t\t\t\tconst tableName = getTableName(f.field.table);\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Your \"${\n\t\t\t\t\t\tf.path.join('->')\n\t\t\t\t\t}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst isSingleTable = !joins || joins.length === 0;\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst distinctSql = distinct ? sql` distinct` : undefined;\n\n\t\tconst selection = this.buildSelection(fieldsList, { isSingleTable });\n\n\t\tconst tableSql = (() => {\n\t\t\tif (is(table, Table) && table[Table.Symbol.OriginalName] !== table[Table.Symbol.Name]) {\n\t\t\t\treturn sql`${sql.identifier(table[Table.Symbol.OriginalName])} ${sql.identifier(table[Table.Symbol.Name])}`;\n\t\t\t}\n\n\t\t\treturn table;\n\t\t})();\n\n\t\tconst joinsArray: SQL[] = [];\n\n\t\tif (joins) {\n\t\t\tfor (const [index, joinMeta] of joins.entries()) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t\tconst table = joinMeta.table;\n\t\t\t\tconst lateralSql = joinMeta.lateral ? sql` lateral` : undefined;\n\n\t\t\t\tif (is(table, SingleStoreTable)) {\n\t\t\t\t\tconst tableName = table[SingleStoreTable.Symbol.Name];\n\t\t\t\t\tconst tableSchema = table[SingleStoreTable.Symbol.Schema];\n\t\t\t\t\tconst origTableName = table[SingleStoreTable.Symbol.OriginalName];\n\t\t\t\t\tconst alias = tableName === origTableName ? undefined : joinMeta.alias;\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${\n\t\t\t\t\t\t\ttableSchema ? sql`${sql.identifier(tableSchema)}.` : undefined\n\t\t\t\t\t\t}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`,\n\t\t\t\t\t);\n\t\t\t\t} else if (is(table, View)) {\n\t\t\t\t\tconst viewName = table[ViewBaseConfig].name;\n\t\t\t\t\tconst viewSchema = table[ViewBaseConfig].schema;\n\t\t\t\t\tconst origViewName = table[ViewBaseConfig].originalName;\n\t\t\t\t\tconst alias = viewName === origViewName ? undefined : joinMeta.alias;\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${\n\t\t\t\t\t\t\tviewSchema ? sql`${sql.identifier(viewSchema)}.` : undefined\n\t\t\t\t\t\t}${sql.identifier(origViewName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${table} on ${joinMeta.on}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (index < joins.length - 1) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst joinsSql = sql.join(joinsArray);\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst havingSql = having ? sql` having ${having}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst groupBySql = groupBy && groupBy.length > 0 ? sql` group by ${sql.join(groupBy, sql`, `)}` : undefined;\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\tlet lockingClausesSql;\n\t\tif (lockingClause) {\n\t\t\tconst { config, strength } = lockingClause;\n\t\t\tlockingClausesSql = sql` for ${sql.raw(strength)}`;\n\t\t\tif (config.noWait) {\n\t\t\t\tlockingClausesSql.append(sql` no wait`);\n\t\t\t} else if (config.skipLocked) {\n\t\t\t\tlockingClausesSql.append(sql` skip locked`);\n\t\t\t}\n\t\t}\n\n\t\tconst finalQuery =\n\t\t\tsql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}${lockingClausesSql}`;\n\n\t\tif (setOperators.length > 0) {\n\t\t\treturn this.buildSetOperations(finalQuery, setOperators);\n\t\t}\n\n\t\treturn finalQuery;\n\t}\n\n\tbuildSetOperations(leftSelect: SQL, setOperators: SingleStoreSelectConfig['setOperators']): SQL {\n\t\tconst [setOperator, ...rest] = setOperators;\n\n\t\tif (!setOperator) {\n\t\t\tthrow new Error('Cannot pass undefined values to any set operator');\n\t\t}\n\n\t\tif (rest.length === 0) {\n\t\t\treturn this.buildSetOperationQuery({ leftSelect, setOperator });\n\t\t}\n\n\t\t// Some recursive magic here\n\t\treturn this.buildSetOperations(\n\t\t\tthis.buildSetOperationQuery({ leftSelect, setOperator }),\n\t\t\trest,\n\t\t);\n\t}\n\n\tbuildSetOperationQuery({\n\t\tleftSelect,\n\t\tsetOperator: { type, isAll, rightSelect, limit, orderBy, offset },\n\t}: { leftSelect: SQL; setOperator: SingleStoreSelectConfig['setOperators'][number] }): SQL {\n\t\tconst leftChunk = sql`(${leftSelect.getSQL()}) `;\n\t\tconst rightChunk = sql`(${rightSelect.getSQL()})`;\n\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) {\n\t\t\tconst orderByValues: (SQL<unknown> | Name)[] = [];\n\n\t\t\t// The next bit is necessary because the sql operator replaces ${table.column} with `table`.`column`\n\t\t\t// which is invalid SingleStore syntax, Table from one of the SELECTs cannot be used in global ORDER clause\n\t\t\tfor (const orderByUnit of orderBy) {\n\t\t\t\tif (is(orderByUnit, SingleStoreColumn)) {\n\t\t\t\t\torderByValues.push(sql.identifier(this.casing.getColumnCasing(orderByUnit)));\n\t\t\t\t} else if (is(orderByUnit, SQL)) {\n\t\t\t\t\tfor (let i = 0; i < orderByUnit.queryChunks.length; i++) {\n\t\t\t\t\t\tconst chunk = orderByUnit.queryChunks[i];\n\n\t\t\t\t\t\tif (is(chunk, SingleStoreColumn)) {\n\t\t\t\t\t\t\torderByUnit.queryChunks[i] = sql.identifier(this.casing.getColumnCasing(chunk));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\torderByValues.push(sql`${orderByUnit}`);\n\t\t\t\t} else {\n\t\t\t\t\torderByValues.push(sql`${orderByUnit}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\torderBySql = sql` order by ${sql.join(orderByValues, sql`, `)} `;\n\t\t}\n\n\t\tconst limitSql = typeof limit === 'object' || (typeof limit === 'number' && limit >= 0)\n\t\t\t? sql` limit ${limit}`\n\t\t\t: undefined;\n\n\t\tconst operatorChunk = sql.raw(`${type} ${isAll ? 'all ' : ''}`);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\treturn sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n\t}\n\n\tbuildInsertQuery(\n\t\t{ table, values, ignore, onConflict }: SingleStoreInsertConfig,\n\t): { sql: SQL; generatedIds: Record<string, unknown>[] } {\n\t\t// const isSingleValue = values.length === 1;\n\t\tconst valuesSqlList: ((SQLChunk | SQL)[] | SQL)[] = [];\n\t\tconst columns: Record<string, SingleStoreColumn> = table[Table.Symbol.Columns];\n\t\tconst colEntries: [string, SingleStoreColumn][] = Object.entries(columns).filter(([_, col]) =>\n\t\t\t!col.shouldDisableInsert()\n\t\t);\n\n\t\tconst insertOrder = colEntries.map(([, column]) => sql.identifier(this.casing.getColumnCasing(column)));\n\t\tconst generatedIdsResponse: Record<string, unknown>[] = [];\n\n\t\tfor (const [valueIndex, value] of values.entries()) {\n\t\t\tconst generatedIds: Record<string, unknown> = {};\n\n\t\t\tconst valueList: (SQLChunk | SQL)[] = [];\n\t\t\tfor (const [fieldName, col] of colEntries) {\n\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\tif (colValue === undefined || (is(colValue, Param) && colValue.value === undefined)) {\n\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\tif (col.defaultFn !== undefined) {\n\t\t\t\t\t\tconst defaultFnResult = col.defaultFn();\n\t\t\t\t\t\tgeneratedIds[fieldName] = defaultFnResult;\n\t\t\t\t\t\tconst defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);\n\t\t\t\t\t\tvalueList.push(defaultValue);\n\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\t} else if (!col.default && col.onUpdateFn !== undefined) {\n\t\t\t\t\t\tconst onUpdateFnResult = col.onUpdateFn();\n\t\t\t\t\t\tconst newValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);\n\t\t\t\t\t\tvalueList.push(newValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalueList.push(sql`default`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (col.defaultFn && is(colValue, Param)) {\n\t\t\t\t\t\tgeneratedIds[fieldName] = colValue.value;\n\t\t\t\t\t}\n\t\t\t\t\tvalueList.push(colValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tgeneratedIdsResponse.push(generatedIds);\n\t\t\tvaluesSqlList.push(valueList);\n\t\t\tif (valueIndex < values.length - 1) {\n\t\t\t\tvaluesSqlList.push(sql`, `);\n\t\t\t}\n\t\t}\n\n\t\tconst valuesSql = sql.join(valuesSqlList);\n\n\t\tconst ignoreSql = ignore ? sql` ignore` : undefined;\n\n\t\tconst onConflictSql = onConflict ? sql` on duplicate key ${onConflict}` : undefined;\n\n\t\treturn {\n\t\t\tsql: sql`insert${ignoreSql} into ${table} ${insertOrder} values ${valuesSql}${onConflictSql}`,\n\t\t\tgeneratedIds: generatedIdsResponse,\n\t\t};\n\t}\n\n\tsqlToQuery(sql: SQL, invokeSource?: 'indexes' | undefined): QueryWithTypings {\n\t\treturn sql.toQuery({\n\t\t\tcasing: this.casing,\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t\tinvokeSource,\n\t\t});\n\t}\n\n\tbuildRelationalQuery({\n\t\tfullSchema,\n\t\tschema,\n\t\ttableNamesMap,\n\t\ttable,\n\t\ttableConfig,\n\t\tqueryConfig: config,\n\t\ttableAlias,\n\t\tnestedQueryRelation,\n\t\tjoinOn,\n\t}: {\n\t\tfullSchema: Record<string, unknown>;\n\t\tschema: TablesRelationalConfig;\n\t\ttableNamesMap: Record<string, string>;\n\t\ttable: SingleStoreTable;\n\t\ttableConfig: TableRelationalConfig;\n\t\tqueryConfig: true | DBQueryConfig<'many', true>;\n\t\ttableAlias: string;\n\t\tnestedQueryRelation?: Relation;\n\t\tjoinOn?: SQL;\n\t}): BuildRelationalQueryResult<SingleStoreTable, SingleStoreColumn> {\n\t\tlet selection: BuildRelationalQueryResult<SingleStoreTable, SingleStoreColumn>['selection'] = [];\n\t\tlet limit, offset, orderBy: SingleStoreSelectConfig['orderBy'], where;\n\t\tconst joins: SingleStoreSelectJoinConfig[] = [];\n\n\t\tif (config === true) {\n\t\t\tconst selectionEntries = Object.entries(tableConfig.columns);\n\t\t\tselection = selectionEntries.map((\n\t\t\t\t[key, value],\n\t\t\t) => ({\n\t\t\t\tdbKey: value.name,\n\t\t\t\ttsKey: key,\n\t\t\t\tfield: aliasedTableColumn(value as SingleStoreColumn, tableAlias),\n\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\tisJson: false,\n\t\t\t\tselection: [],\n\t\t\t}));\n\t\t} else {\n\t\t\tconst aliasedColumns = Object.fromEntries(\n\t\t\t\tObject.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),\n\t\t\t);\n\n\t\t\tif (config.where) {\n\t\t\t\tconst whereSql = typeof config.where === 'function'\n\t\t\t\t\t? config.where(aliasedColumns, getOperators())\n\t\t\t\t\t: config.where;\n\t\t\t\twhere = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);\n\t\t\t}\n\n\t\t\tconst fieldsSelection: { tsKey: string; value: SingleStoreColumn | SQL.Aliased }[] = [];\n\t\t\tlet selectedColumns: string[] = [];\n\n\t\t\t// Figure out which columns to select\n\t\t\tif (config.columns) {\n\t\t\t\tlet isIncludeMode = false;\n\n\t\t\t\tfor (const [field, value] of Object.entries(config.columns)) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field in tableConfig.columns) {\n\t\t\t\t\t\tif (!isIncludeMode && value === true) {\n\t\t\t\t\t\t\tisIncludeMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselectedColumns.push(field);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (selectedColumns.length > 0) {\n\t\t\t\t\tselectedColumns = isIncludeMode\n\t\t\t\t\t\t? selectedColumns.filter((c) => config.columns?.[c] === true)\n\t\t\t\t\t\t: Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Select all columns if selection is not specified\n\t\t\t\tselectedColumns = Object.keys(tableConfig.columns);\n\t\t\t}\n\n\t\t\tfor (const field of selectedColumns) {\n\t\t\t\tconst column = tableConfig.columns[field]! as SingleStoreColumn;\n\t\t\t\tfieldsSelection.push({ tsKey: field, value: column });\n\t\t\t}\n\n\t\t\tlet selectedRelations: {\n\t\t\t\ttsKey: string;\n\t\t\t\tqueryConfig: true | DBQueryConfig<'many', false>;\n\t\t\t\trelation: Relation;\n\t\t\t}[] = [];\n\n\t\t\t// Figure out which relations to select\n\t\t\tif (config.with) {\n\t\t\t\tselectedRelations = Object.entries(config.with)\n\t\t\t\t\t.filter((entry): entry is [typeof entry[0], NonNullable<typeof entry[1]>] => !!entry[1])\n\t\t\t\t\t.map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey]! }));\n\t\t\t}\n\n\t\t\tlet extras;\n\n\t\t\t// Figure out which extras to select\n\t\t\tif (config.extras) {\n\t\t\t\textras = typeof config.extras === 'function'\n\t\t\t\t\t? config.extras(aliasedColumns, { sql })\n\t\t\t\t\t: config.extras;\n\t\t\t\tfor (const [tsKey, value] of Object.entries(extras)) {\n\t\t\t\t\tfieldsSelection.push({\n\t\t\t\t\t\ttsKey,\n\t\t\t\t\t\tvalue: mapColumnsInAliasedSQLToAlias(value, tableAlias),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Transform `fieldsSelection` into `selection`\n\t\t\t// `fieldsSelection` shouldn't be used after this point\n\t\t\tfor (const { tsKey, value } of fieldsSelection) {\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey]!.name,\n\t\t\t\t\ttsKey,\n\t\t\t\t\tfield: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,\n\t\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\t\tisJson: false,\n\t\t\t\t\tselection: [],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet orderByOrig = typeof config.orderBy === 'function'\n\t\t\t\t? config.orderBy(aliasedColumns, getOrderByOperators())\n\t\t\t\t: config.orderBy ?? [];\n\t\t\tif (!Array.isArray(orderByOrig)) {\n\t\t\t\torderByOrig = [orderByOrig];\n\t\t\t}\n\t\t\torderBy = orderByOrig.map((orderByValue) => {\n\t\t\t\tif (is(orderByValue, Column)) {\n\t\t\t\t\treturn aliasedTableColumn(orderByValue, tableAlias) as SingleStoreColumn;\n\t\t\t\t}\n\t\t\t\treturn mapColumnsInSQLToAlias(orderByValue, tableAlias);\n\t\t\t});\n\n\t\t\tlimit = config.limit;\n\t\t\toffset = config.offset;\n\n\t\t\t// Process all relations\n\t\t\tfor (\n\t\t\t\tconst {\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tqueryConfig: selectedRelationConfigValue,\n\t\t\t\t\trelation,\n\t\t\t\t} of selectedRelations\n\t\t\t) {\n\t\t\t\tconst normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);\n\t\t\t\tconst relationTableName = getTableUniqueName(relation.referencedTable);\n\t\t\t\tconst relationTableTsName = tableNamesMap[relationTableName]!;\n\t\t\t\tconst relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;\n\t\t\t\tconst joinOn = and(\n\t\t\t\t\t...normalizedRelation.fields.map((field, i) =>\n\t\t\t\t\t\teq(\n\t\t\t\t\t\t\taliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),\n\t\t\t\t\t\t\taliasedTableColumn(field, tableAlias),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconst builtRelation = this.buildRelationalQuery({\n\t\t\t\t\tfullSchema,\n\t\t\t\t\tschema,\n\t\t\t\t\ttableNamesMap,\n\t\t\t\t\ttable: fullSchema[relationTableTsName] as SingleStoreTable,\n\t\t\t\t\ttableConfig: schema[relationTableTsName]!,\n\t\t\t\t\tqueryConfig: is(relation, One)\n\t\t\t\t\t\t? (selectedRelationConfigValue === true\n\t\t\t\t\t\t\t? { limit: 1 }\n\t\t\t\t\t\t\t: { ...selectedRelationConfigValue, limit: 1 })\n\t\t\t\t\t\t: selectedRelationConfigValue,\n\t\t\t\t\ttableAlias: relationTableAlias,\n\t\t\t\t\tjoinOn,\n\t\t\t\t\tnestedQueryRelation: relation,\n\t\t\t\t});\n\t\t\t\tconst field = sql`${sql.identifier(relationTableAlias)}.${sql.identifier('data')}`.as(selectedRelationTsKey);\n\t\t\t\tjoins.push({\n\t\t\t\t\ton: sql`true`,\n\t\t\t\t\ttable: new Subquery(builtRelation.sql as SQL, {}, relationTableAlias),\n\t\t\t\t\talias: relationTableAlias,\n\t\t\t\t\tjoinType: 'left',\n\t\t\t\t\tlateral: true,\n\t\t\t\t});\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: selectedRelationTsKey,\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tfield,\n\t\t\t\t\trelationTableTsKey: relationTableTsName,\n\t\t\t\t\tisJson: true,\n\t\t\t\t\tselection: builtRelation.selection,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (selection.length === 0) {\n\t\t\tthrow new DrizzleError({ message: `No fields selected for table \"${tableConfig.tsName}\" (\"${tableAlias}\")` });\n\t\t}\n\n\t\tlet result;\n\n\t\twhere = and(joinOn, where);\n\n\t\tif (nestedQueryRelation) {\n\t\t\tlet field = sql`JSON_TO_ARRAY(${\n\t\t\t\tsql.join(\n\t\t\t\t\tselection.map(({ field, tsKey, isJson }) =>\n\t\t\t\t\t\tisJson\n\t\t\t\t\t\t\t? sql`${sql.identifier(`${tableAlias}_${tsKey}`)}.${sql.identifier('data')}`\n\t\t\t\t\t\t\t: is(field, SQL.Aliased)\n\t\t\t\t\t\t\t? field.sql\n\t\t\t\t\t\t\t: field\n\t\t\t\t\t),\n\t\t\t\t\tsql`, `,\n\t\t\t\t)\n\t\t\t})`;\n\t\t\tif (is(nestedQueryRelation, Many)) {\n\t\t\t\tfield = sql`json_agg(${field})`;\n\t\t\t}\n\t\t\tconst nestedSelection = [{\n\t\t\t\tdbKey: 'data',\n\t\t\t\ttsKey: 'data',\n\t\t\t\tfield: field.as('data'),\n\t\t\t\tisJson: true,\n\t\t\t\trelationTableTsKey: tableConfig.tsName,\n\t\t\t\tselection,\n\t\t\t}];\n\n\t\t\tconst needsSubquery = limit !== undefined || offset !== undefined || (orderBy?.length ?? 0) > 0;\n\n\t\t\tif (needsSubquery) {\n\t\t\t\tresult = this.buildSelectQuery({\n\t\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\t\tfields: {},\n\t\t\t\t\tfieldsFlat: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: [],\n\t\t\t\t\t\t\tfield: sql.raw('*'),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...(((orderBy?.length ?? 0) > 0)\n\t\t\t\t\t\t\t? [{\n\t\t\t\t\t\t\t\tpath: [],\n\t\t\t\t\t\t\t\tfield: sql`row_number() over (order by ${sql.join(orderBy!, sql`, `)})`,\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t: []),\n\t\t\t\t\t],\n\t\t\t\t\twhere,\n\t\t\t\t\tlimit,\n\t\t\t\t\toffset,\n\t\t\t\t\tsetOperators: [],\n\t\t\t\t});\n\n\t\t\t\twhere = undefined;\n\t\t\t\tlimit = undefined;\n\t\t\t\toffset = undefined;\n\t\t\t\torderBy = undefined;\n\t\t\t} else {\n\t\t\t\tresult = aliasedTable(table, tableAlias);\n\t\t\t}\n\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: is(result, SingleStoreTable) ? result : new Subquery(result, {}, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: nestedSelection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t} else {\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: selection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\ttableTsKey: tableConfig.tsName,\n\t\t\tsql: result,\n\t\t\tselection,\n\t\t};\n\t}\n}\n"],"mappings":"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","names":["table","sql","joinOn","field"]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var expressions_exports = {};
21
+ __export(expressions_exports, {
22
+ concat: () => concat,
23
+ substring: () => substring
24
+ });
25
+ module.exports = __toCommonJS(expressions_exports);
26
+ var import_expressions = require("../expressions.cjs");
27
+ var import_sql = require("../sql/sql.cjs");
28
+ __reExport(expressions_exports, require("../expressions.cjs"), module.exports);
29
+ function concat(column, value) {
30
+ return import_sql.sql`${column} || ${(0, import_expressions.bindIfParam)(value, column)}`;
31
+ }
32
+ function substring(column, { from, for: _for }) {
33
+ const chunks = [import_sql.sql`substring(`, column];
34
+ if (from !== void 0) {
35
+ chunks.push(import_sql.sql` from `, (0, import_expressions.bindIfParam)(from, column));
36
+ }
37
+ if (_for !== void 0) {
38
+ chunks.push(import_sql.sql` for `, (0, import_expressions.bindIfParam)(_for, column));
39
+ }
40
+ chunks.push(import_sql.sql`)`);
41
+ return import_sql.sql.join(chunks);
42
+ }
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ concat,
46
+ substring,
47
+ ...require("../expressions.cjs")
48
+ });
49
+ //# sourceMappingURL=expressions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-core/expressions.ts"],"sourcesContent":["import { bindIfParam } from '~/expressions.ts';\nimport type { Placeholder, SQL, SQLChunk, SQLWrapper } from '~/sql/sql.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SingleStoreColumn } from './columns/index.ts';\n\nexport * from '~/expressions.ts';\n\nexport function concat(column: SingleStoreColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL {\n\treturn sql`${column} || ${bindIfParam(value, column)}`;\n}\n\nexport function substring(\n\tcolumn: SingleStoreColumn | SQL.Aliased,\n\t{ from, for: _for }: { from?: number | Placeholder | SQLWrapper; for?: number | Placeholder | SQLWrapper },\n): SQL {\n\tconst chunks: SQLChunk[] = [sql`substring(`, column];\n\tif (from !== undefined) {\n\t\tchunks.push(sql` from `, bindIfParam(from, column));\n\t}\n\tif (_for !== undefined) {\n\t\tchunks.push(sql` for `, bindIfParam(_for, column));\n\t}\n\tchunks.push(sql`)`);\n\treturn sql.join(chunks);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA4B;AAE5B,iBAAoB;AAGpB,gCAAc,6BALd;AAOO,SAAS,OAAO,QAAyC,OAA+C;AAC9G,SAAO,iBAAM,MAAM,WAAO,gCAAY,OAAO,MAAM,CAAC;AACrD;AAEO,SAAS,UACf,QACA,EAAE,MAAM,KAAK,KAAK,GACZ;AACN,QAAM,SAAqB,CAAC,4BAAiB,MAAM;AACnD,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,4BAAa,gCAAY,MAAM,MAAM,CAAC;AAAA,EACnD;AACA,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,2BAAY,gCAAY,MAAM,MAAM,CAAC;AAAA,EAClD;AACA,SAAO,KAAK,iBAAM;AAClB,SAAO,eAAI,KAAK,MAAM;AACvB;","names":[]}
@@ -0,0 +1,8 @@
1
+ import type { Placeholder, SQL, SQLWrapper } from "../sql/sql.cjs";
2
+ import type { SingleStoreColumn } from "./columns/index.cjs";
3
+ export * from "../expressions.cjs";
4
+ export declare function concat(column: SingleStoreColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL;
5
+ export declare function substring(column: SingleStoreColumn | SQL.Aliased, { from, for: _for }: {
6
+ from?: number | Placeholder | SQLWrapper;
7
+ for?: number | Placeholder | SQLWrapper;
8
+ }): SQL;
@@ -0,0 +1,8 @@
1
+ import type { Placeholder, SQL, SQLWrapper } from "../sql/sql.js";
2
+ import type { SingleStoreColumn } from "./columns/index.js";
3
+ export * from "../expressions.js";
4
+ export declare function concat(column: SingleStoreColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL;
5
+ export declare function substring(column: SingleStoreColumn | SQL.Aliased, { from, for: _for }: {
6
+ from?: number | Placeholder | SQLWrapper;
7
+ for?: number | Placeholder | SQLWrapper;
8
+ }): SQL;
@@ -0,0 +1,22 @@
1
+ import { bindIfParam } from "../expressions.js";
2
+ import { sql } from "../sql/sql.js";
3
+ export * from "../expressions.js";
4
+ function concat(column, value) {
5
+ return sql`${column} || ${bindIfParam(value, column)}`;
6
+ }
7
+ function substring(column, { from, for: _for }) {
8
+ const chunks = [sql`substring(`, column];
9
+ if (from !== void 0) {
10
+ chunks.push(sql` from `, bindIfParam(from, column));
11
+ }
12
+ if (_for !== void 0) {
13
+ chunks.push(sql` for `, bindIfParam(_for, column));
14
+ }
15
+ chunks.push(sql`)`);
16
+ return sql.join(chunks);
17
+ }
18
+ export {
19
+ concat,
20
+ substring
21
+ };
22
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-core/expressions.ts"],"sourcesContent":["import { bindIfParam } from '~/expressions.ts';\nimport type { Placeholder, SQL, SQLChunk, SQLWrapper } from '~/sql/sql.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SingleStoreColumn } from './columns/index.ts';\n\nexport * from '~/expressions.ts';\n\nexport function concat(column: SingleStoreColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL {\n\treturn sql`${column} || ${bindIfParam(value, column)}`;\n}\n\nexport function substring(\n\tcolumn: SingleStoreColumn | SQL.Aliased,\n\t{ from, for: _for }: { from?: number | Placeholder | SQLWrapper; for?: number | Placeholder | SQLWrapper },\n): SQL {\n\tconst chunks: SQLChunk[] = [sql`substring(`, column];\n\tif (from !== undefined) {\n\t\tchunks.push(sql` from `, bindIfParam(from, column));\n\t}\n\tif (_for !== undefined) {\n\t\tchunks.push(sql` for `, bindIfParam(_for, column));\n\t}\n\tchunks.push(sql`)`);\n\treturn sql.join(chunks);\n}\n"],"mappings":"AAAA,SAAS,mBAAmB;AAE5B,SAAS,WAAW;AAGpB,cAAc;AAEP,SAAS,OAAO,QAAyC,OAA+C;AAC9G,SAAO,MAAM,MAAM,OAAO,YAAY,OAAO,MAAM,CAAC;AACrD;AAEO,SAAS,UACf,QACA,EAAE,MAAM,KAAK,KAAK,GACZ;AACN,QAAM,SAAqB,CAAC,iBAAiB,MAAM;AACnD,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,aAAa,YAAY,MAAM,MAAM,CAAC;AAAA,EACnD;AACA,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,YAAY,YAAY,MAAM,MAAM,CAAC;AAAA,EAClD;AACA,SAAO,KAAK,MAAM;AAClB,SAAO,IAAI,KAAK,MAAM;AACvB;","names":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var singlestore_core_exports = {};
17
+ module.exports = __toCommonJS(singlestore_core_exports);
18
+ __reExport(singlestore_core_exports, require("./alias.cjs"), module.exports);
19
+ __reExport(singlestore_core_exports, require("./columns/index.cjs"), module.exports);
20
+ __reExport(singlestore_core_exports, require("./db.cjs"), module.exports);
21
+ __reExport(singlestore_core_exports, require("./dialect.cjs"), module.exports);
22
+ __reExport(singlestore_core_exports, require("./indexes.cjs"), module.exports);
23
+ __reExport(singlestore_core_exports, require("./primary-keys.cjs"), module.exports);
24
+ __reExport(singlestore_core_exports, require("./query-builders/index.cjs"), module.exports);
25
+ __reExport(singlestore_core_exports, require("./schema.cjs"), module.exports);
26
+ __reExport(singlestore_core_exports, require("./session.cjs"), module.exports);
27
+ __reExport(singlestore_core_exports, require("./subquery.cjs"), module.exports);
28
+ __reExport(singlestore_core_exports, require("./table.cjs"), module.exports);
29
+ __reExport(singlestore_core_exports, require("./unique-constraint.cjs"), module.exports);
30
+ __reExport(singlestore_core_exports, require("./utils.cjs"), module.exports);
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ ...require("./alias.cjs"),
34
+ ...require("./columns/index.cjs"),
35
+ ...require("./db.cjs"),
36
+ ...require("./dialect.cjs"),
37
+ ...require("./indexes.cjs"),
38
+ ...require("./primary-keys.cjs"),
39
+ ...require("./query-builders/index.cjs"),
40
+ ...require("./schema.cjs"),
41
+ ...require("./session.cjs"),
42
+ ...require("./subquery.cjs"),
43
+ ...require("./table.cjs"),
44
+ ...require("./unique-constraint.cjs"),
45
+ ...require("./utils.cjs")
46
+ });
47
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-core/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './columns/index.ts';\nexport * from './db.ts';\nexport * from './dialect.ts';\nexport * from './indexes.ts';\nexport * from './primary-keys.ts';\nexport * from './query-builders/index.ts';\nexport * from './schema.ts';\nexport * from './session.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './unique-constraint.ts';\nexport * from './utils.ts';\n/* export * from './view-common.ts';\nexport * from './view.ts'; */\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,qCAAc,uBAAd;AACA,qCAAc,+BADd;AAEA,qCAAc,oBAFd;AAGA,qCAAc,yBAHd;AAIA,qCAAc,yBAJd;AAKA,qCAAc,8BALd;AAMA,qCAAc,sCANd;AAOA,qCAAc,wBAPd;AAQA,qCAAc,yBARd;AASA,qCAAc,0BATd;AAUA,qCAAc,uBAVd;AAWA,qCAAc,mCAXd;AAYA,qCAAc,uBAZd;","names":[]}
@@ -0,0 +1,13 @@
1
+ export * from "./alias.cjs";
2
+ export * from "./columns/index.cjs";
3
+ export * from "./db.cjs";
4
+ export * from "./dialect.cjs";
5
+ export * from "./indexes.cjs";
6
+ export * from "./primary-keys.cjs";
7
+ export * from "./query-builders/index.cjs";
8
+ export * from "./schema.cjs";
9
+ export * from "./session.cjs";
10
+ export * from "./subquery.cjs";
11
+ export * from "./table.cjs";
12
+ export * from "./unique-constraint.cjs";
13
+ export * from "./utils.cjs";
@@ -0,0 +1,13 @@
1
+ export * from "./alias.js";
2
+ export * from "./columns/index.js";
3
+ export * from "./db.js";
4
+ export * from "./dialect.js";
5
+ export * from "./indexes.js";
6
+ export * from "./primary-keys.js";
7
+ export * from "./query-builders/index.js";
8
+ export * from "./schema.js";
9
+ export * from "./session.js";
10
+ export * from "./subquery.js";
11
+ export * from "./table.js";
12
+ export * from "./unique-constraint.js";
13
+ export * from "./utils.js";
@@ -0,0 +1,14 @@
1
+ export * from "./alias.js";
2
+ export * from "./columns/index.js";
3
+ export * from "./db.js";
4
+ export * from "./dialect.js";
5
+ export * from "./indexes.js";
6
+ export * from "./primary-keys.js";
7
+ export * from "./query-builders/index.js";
8
+ export * from "./schema.js";
9
+ export * from "./session.js";
10
+ export * from "./subquery.js";
11
+ export * from "./table.js";
12
+ export * from "./unique-constraint.js";
13
+ export * from "./utils.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-core/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './columns/index.ts';\nexport * from './db.ts';\nexport * from './dialect.ts';\nexport * from './indexes.ts';\nexport * from './primary-keys.ts';\nexport * from './query-builders/index.ts';\nexport * from './schema.ts';\nexport * from './session.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './unique-constraint.ts';\nexport * from './utils.ts';\n/* export * from './view-common.ts';\nexport * from './view.ts'; */\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var indexes_exports = {};
20
+ __export(indexes_exports, {
21
+ Index: () => Index,
22
+ IndexBuilder: () => IndexBuilder,
23
+ IndexBuilderOn: () => IndexBuilderOn,
24
+ index: () => index,
25
+ uniqueIndex: () => uniqueIndex
26
+ });
27
+ module.exports = __toCommonJS(indexes_exports);
28
+ var import_entity = require("../entity.cjs");
29
+ class IndexBuilderOn {
30
+ constructor(name, unique) {
31
+ this.name = name;
32
+ this.unique = unique;
33
+ }
34
+ static [import_entity.entityKind] = "SingleStoreIndexBuilderOn";
35
+ on(...columns) {
36
+ return new IndexBuilder(this.name, columns, this.unique);
37
+ }
38
+ }
39
+ class IndexBuilder {
40
+ static [import_entity.entityKind] = "SingleStoreIndexBuilder";
41
+ /** @internal */
42
+ config;
43
+ constructor(name, columns, unique) {
44
+ this.config = {
45
+ name,
46
+ columns,
47
+ unique
48
+ };
49
+ }
50
+ using(using) {
51
+ this.config.using = using;
52
+ return this;
53
+ }
54
+ algorythm(algorythm) {
55
+ this.config.algorythm = algorythm;
56
+ return this;
57
+ }
58
+ lock(lock) {
59
+ this.config.lock = lock;
60
+ return this;
61
+ }
62
+ /** @internal */
63
+ build(table) {
64
+ return new Index(this.config, table);
65
+ }
66
+ }
67
+ class Index {
68
+ static [import_entity.entityKind] = "SingleStoreIndex";
69
+ config;
70
+ constructor(config, table) {
71
+ this.config = { ...config, table };
72
+ }
73
+ }
74
+ function index(name) {
75
+ return new IndexBuilderOn(name, false);
76
+ }
77
+ function uniqueIndex(name) {
78
+ return new IndexBuilderOn(name, true);
79
+ }
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ Index,
83
+ IndexBuilder,
84
+ IndexBuilderOn,
85
+ index,
86
+ uniqueIndex
87
+ });
88
+ //# sourceMappingURL=indexes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-core/indexes.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { AnySingleStoreColumn, SingleStoreColumn } from './columns/index.ts';\nimport type { SingleStoreTable } from './table.ts';\n\ninterface IndexConfig {\n\tname: string;\n\n\tcolumns: IndexColumn[];\n\n\t/**\n\t * If true, the index will be created as `create unique index` instead of `create index`.\n\t */\n\tunique?: boolean;\n\n\t/**\n\t * If set, the index will be created as `create index ... using { 'btree' | 'hash' }`.\n\t */\n\tusing?: 'btree' | 'hash';\n\n\t/**\n\t * If set, the index will be created as `create index ... algorythm { 'default' | 'inplace' | 'copy' }`.\n\t */\n\talgorythm?: 'default' | 'inplace' | 'copy';\n\n\t/**\n\t * If set, adds locks to the index creation.\n\t */\n\tlock?: 'default' | 'none' | 'shared' | 'exclusive';\n}\n\nexport type IndexColumn = SingleStoreColumn | SQL;\n\nexport class IndexBuilderOn {\n\tstatic readonly [entityKind]: string = 'SingleStoreIndexBuilderOn';\n\n\tconstructor(private name: string, private unique: boolean) {}\n\n\ton(...columns: [IndexColumn, ...IndexColumn[]]): IndexBuilder {\n\t\treturn new IndexBuilder(this.name, columns, this.unique);\n\t}\n}\n\nexport interface AnyIndexBuilder {\n\tbuild(table: SingleStoreTable): Index;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IndexBuilder extends AnyIndexBuilder {}\n\nexport class IndexBuilder implements AnyIndexBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreIndexBuilder';\n\n\t/** @internal */\n\tconfig: IndexConfig;\n\n\tconstructor(name: string, columns: IndexColumn[], unique: boolean) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tunique,\n\t\t};\n\t}\n\n\tusing(using: IndexConfig['using']): this {\n\t\tthis.config.using = using;\n\t\treturn this;\n\t}\n\n\talgorythm(algorythm: IndexConfig['algorythm']): this {\n\t\tthis.config.algorythm = algorythm;\n\t\treturn this;\n\t}\n\n\tlock(lock: IndexConfig['lock']): this {\n\t\tthis.config.lock = lock;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: SingleStoreTable): Index {\n\t\treturn new Index(this.config, table);\n\t}\n}\n\nexport class Index {\n\tstatic readonly [entityKind]: string = 'SingleStoreIndex';\n\n\treadonly config: IndexConfig & { table: SingleStoreTable };\n\n\tconstructor(config: IndexConfig, table: SingleStoreTable) {\n\t\tthis.config = { ...config, table };\n\t}\n}\n\nexport type GetColumnsTableName<TColumns> = TColumns extends\n\tAnySingleStoreColumn<{ tableName: infer TTableName extends string }> | AnySingleStoreColumn<\n\t\t{ tableName: infer TTableName extends string }\n\t>[] ? TTableName\n\t: never;\n\nexport function index(name: string): IndexBuilderOn {\n\treturn new IndexBuilderOn(name, false);\n}\n\nexport function uniqueIndex(name: string): IndexBuilderOn {\n\treturn new IndexBuilderOn(name, true);\n}\n\n/* export interface AnyFullTextIndexBuilder {\n\tbuild(table: SingleStoreTable): FullTextIndex;\n} */\n/*\ninterface FullTextIndexConfig {\n\tversion?: number;\n}\n\ninterface FullTextIndexFullConfig extends FullTextIndexConfig {\n\tcolumns: IndexColumn[];\n\n\tname: string;\n}\n\nexport class FullTextIndexBuilderOn {\n\tstatic readonly [entityKind]: string = 'SingleStoreFullTextIndexBuilderOn';\n\n\tconstructor(private name: string, private config: FullTextIndexConfig) {}\n\n\ton(...columns: [IndexColumn, ...IndexColumn[]]): FullTextIndexBuilder {\n\t\treturn new FullTextIndexBuilder({\n\t\t\tname: this.name,\n\t\t\tcolumns: columns,\n\t\t\t...this.config,\n\t\t});\n\t}\n} */\n\n/*\nexport interface FullTextIndexBuilder extends AnyFullTextIndexBuilder {}\n\nexport class FullTextIndexBuilder implements AnyFullTextIndexBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreFullTextIndexBuilder'; */\n\n/** @internal */\n/* config: FullTextIndexFullConfig;\n\n\tconstructor(config: FullTextIndexFullConfig) {\n\t\tthis.config = config;\n\t} */\n\n/** @internal */\n/* build(table: SingleStoreTable): FullTextIndex {\n\t\treturn new FullTextIndex(this.config, table);\n\t}\n}\n\nexport class FullTextIndex {\n\tstatic readonly [entityKind]: string = 'SingleStoreFullTextIndex';\n\n\treadonly config: FullTextIndexConfig & { table: SingleStoreTable };\n\n\tconstructor(config: FullTextIndexConfig, table: SingleStoreTable) {\n\t\tthis.config = { ...config, table };\n\t}\n}\n\nexport function fulltext(name: string, config: FullTextIndexConfig): FullTextIndexBuilderOn {\n\treturn new FullTextIndexBuilderOn(name, config);\n}\n\nexport type SortKeyColumn = SingleStoreColumn | SQL;\n\nexport class SortKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreSortKeyBuilder';\n\n\tconstructor(private columns: SortKeyColumn[]) {} */\n\n/** @internal */\n/* build(table: SingleStoreTable): SortKey {\n\t\treturn new SortKey(this.columns, table);\n\t}\n}\n\nexport class SortKey {\n\tstatic readonly [entityKind]: string = 'SingleStoreSortKey';\n\n\tconstructor(public columns: SortKeyColumn[], public table: SingleStoreTable) {}\n}\n\nexport function sortKey(...columns: SortKeyColumn[]): SortKeyBuilder {\n\treturn new SortKeyBuilder(columns);\n}\n */\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAiCpB,MAAM,eAAe;AAAA,EAG3B,YAAoB,MAAsB,QAAiB;AAAvC;AAAsB;AAAA,EAAkB;AAAA,EAF5D,QAAiB,wBAAU,IAAY;AAAA,EAIvC,MAAM,SAAwD;AAC7D,WAAO,IAAI,aAAa,KAAK,MAAM,SAAS,KAAK,MAAM;AAAA,EACxD;AACD;AASO,MAAM,aAAwC;AAAA,EACpD,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAAA,EAEA,YAAY,MAAc,SAAwB,QAAiB;AAClE,SAAK,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAmC;AACxC,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAEA,UAAU,WAA2C;AACpD,SAAK,OAAO,YAAY;AACxB,WAAO;AAAA,EACR;AAAA,EAEA,KAAK,MAAiC;AACrC,SAAK,OAAO,OAAO;AACnB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,OAAgC;AACrC,WAAO,IAAI,MAAM,KAAK,QAAQ,KAAK;AAAA,EACpC;AACD;AAEO,MAAM,MAAM;AAAA,EAClB,QAAiB,wBAAU,IAAY;AAAA,EAE9B;AAAA,EAET,YAAY,QAAqB,OAAyB;AACzD,SAAK,SAAS,EAAE,GAAG,QAAQ,MAAM;AAAA,EAClC;AACD;AAQO,SAAS,MAAM,MAA8B;AACnD,SAAO,IAAI,eAAe,MAAM,KAAK;AACtC;AAEO,SAAS,YAAY,MAA8B;AACzD,SAAO,IAAI,eAAe,MAAM,IAAI;AACrC;","names":[]}
@@ -0,0 +1,62 @@
1
+ import { entityKind } from "../entity.cjs";
2
+ import type { SQL } from "../sql/sql.cjs";
3
+ import type { AnySingleStoreColumn, SingleStoreColumn } from "./columns/index.cjs";
4
+ import type { SingleStoreTable } from "./table.cjs";
5
+ interface IndexConfig {
6
+ name: string;
7
+ columns: IndexColumn[];
8
+ /**
9
+ * If true, the index will be created as `create unique index` instead of `create index`.
10
+ */
11
+ unique?: boolean;
12
+ /**
13
+ * If set, the index will be created as `create index ... using { 'btree' | 'hash' }`.
14
+ */
15
+ using?: 'btree' | 'hash';
16
+ /**
17
+ * If set, the index will be created as `create index ... algorythm { 'default' | 'inplace' | 'copy' }`.
18
+ */
19
+ algorythm?: 'default' | 'inplace' | 'copy';
20
+ /**
21
+ * If set, adds locks to the index creation.
22
+ */
23
+ lock?: 'default' | 'none' | 'shared' | 'exclusive';
24
+ }
25
+ export type IndexColumn = SingleStoreColumn | SQL;
26
+ export declare class IndexBuilderOn {
27
+ private name;
28
+ private unique;
29
+ static readonly [entityKind]: string;
30
+ constructor(name: string, unique: boolean);
31
+ on(...columns: [IndexColumn, ...IndexColumn[]]): IndexBuilder;
32
+ }
33
+ export interface AnyIndexBuilder {
34
+ build(table: SingleStoreTable): Index;
35
+ }
36
+ export interface IndexBuilder extends AnyIndexBuilder {
37
+ }
38
+ export declare class IndexBuilder implements AnyIndexBuilder {
39
+ static readonly [entityKind]: string;
40
+ constructor(name: string, columns: IndexColumn[], unique: boolean);
41
+ using(using: IndexConfig['using']): this;
42
+ algorythm(algorythm: IndexConfig['algorythm']): this;
43
+ lock(lock: IndexConfig['lock']): this;
44
+ }
45
+ export declare class Index {
46
+ static readonly [entityKind]: string;
47
+ readonly config: IndexConfig & {
48
+ table: SingleStoreTable;
49
+ };
50
+ constructor(config: IndexConfig, table: SingleStoreTable);
51
+ }
52
+ export type GetColumnsTableName<TColumns> = TColumns extends AnySingleStoreColumn<{
53
+ tableName: infer TTableName extends string;
54
+ }> | AnySingleStoreColumn<{
55
+ tableName: infer TTableName extends string;
56
+ }>[] ? TTableName : never;
57
+ export declare function index(name: string): IndexBuilderOn;
58
+ export declare function uniqueIndex(name: string): IndexBuilderOn;
59
+ export {};
60
+ /** @internal */
61
+ /** @internal */
62
+ /** @internal */
@@ -0,0 +1,62 @@
1
+ import { entityKind } from "../entity.js";
2
+ import type { SQL } from "../sql/sql.js";
3
+ import type { AnySingleStoreColumn, SingleStoreColumn } from "./columns/index.js";
4
+ import type { SingleStoreTable } from "./table.js";
5
+ interface IndexConfig {
6
+ name: string;
7
+ columns: IndexColumn[];
8
+ /**
9
+ * If true, the index will be created as `create unique index` instead of `create index`.
10
+ */
11
+ unique?: boolean;
12
+ /**
13
+ * If set, the index will be created as `create index ... using { 'btree' | 'hash' }`.
14
+ */
15
+ using?: 'btree' | 'hash';
16
+ /**
17
+ * If set, the index will be created as `create index ... algorythm { 'default' | 'inplace' | 'copy' }`.
18
+ */
19
+ algorythm?: 'default' | 'inplace' | 'copy';
20
+ /**
21
+ * If set, adds locks to the index creation.
22
+ */
23
+ lock?: 'default' | 'none' | 'shared' | 'exclusive';
24
+ }
25
+ export type IndexColumn = SingleStoreColumn | SQL;
26
+ export declare class IndexBuilderOn {
27
+ private name;
28
+ private unique;
29
+ static readonly [entityKind]: string;
30
+ constructor(name: string, unique: boolean);
31
+ on(...columns: [IndexColumn, ...IndexColumn[]]): IndexBuilder;
32
+ }
33
+ export interface AnyIndexBuilder {
34
+ build(table: SingleStoreTable): Index;
35
+ }
36
+ export interface IndexBuilder extends AnyIndexBuilder {
37
+ }
38
+ export declare class IndexBuilder implements AnyIndexBuilder {
39
+ static readonly [entityKind]: string;
40
+ constructor(name: string, columns: IndexColumn[], unique: boolean);
41
+ using(using: IndexConfig['using']): this;
42
+ algorythm(algorythm: IndexConfig['algorythm']): this;
43
+ lock(lock: IndexConfig['lock']): this;
44
+ }
45
+ export declare class Index {
46
+ static readonly [entityKind]: string;
47
+ readonly config: IndexConfig & {
48
+ table: SingleStoreTable;
49
+ };
50
+ constructor(config: IndexConfig, table: SingleStoreTable);
51
+ }
52
+ export type GetColumnsTableName<TColumns> = TColumns extends AnySingleStoreColumn<{
53
+ tableName: infer TTableName extends string;
54
+ }> | AnySingleStoreColumn<{
55
+ tableName: infer TTableName extends string;
56
+ }>[] ? TTableName : never;
57
+ export declare function index(name: string): IndexBuilderOn;
58
+ export declare function uniqueIndex(name: string): IndexBuilderOn;
59
+ export {};
60
+ /** @internal */
61
+ /** @internal */
62
+ /** @internal */
@@ -0,0 +1,60 @@
1
+ import { entityKind } from "../entity.js";
2
+ class IndexBuilderOn {
3
+ constructor(name, unique) {
4
+ this.name = name;
5
+ this.unique = unique;
6
+ }
7
+ static [entityKind] = "SingleStoreIndexBuilderOn";
8
+ on(...columns) {
9
+ return new IndexBuilder(this.name, columns, this.unique);
10
+ }
11
+ }
12
+ class IndexBuilder {
13
+ static [entityKind] = "SingleStoreIndexBuilder";
14
+ /** @internal */
15
+ config;
16
+ constructor(name, columns, unique) {
17
+ this.config = {
18
+ name,
19
+ columns,
20
+ unique
21
+ };
22
+ }
23
+ using(using) {
24
+ this.config.using = using;
25
+ return this;
26
+ }
27
+ algorythm(algorythm) {
28
+ this.config.algorythm = algorythm;
29
+ return this;
30
+ }
31
+ lock(lock) {
32
+ this.config.lock = lock;
33
+ return this;
34
+ }
35
+ /** @internal */
36
+ build(table) {
37
+ return new Index(this.config, table);
38
+ }
39
+ }
40
+ class Index {
41
+ static [entityKind] = "SingleStoreIndex";
42
+ config;
43
+ constructor(config, table) {
44
+ this.config = { ...config, table };
45
+ }
46
+ }
47
+ function index(name) {
48
+ return new IndexBuilderOn(name, false);
49
+ }
50
+ function uniqueIndex(name) {
51
+ return new IndexBuilderOn(name, true);
52
+ }
53
+ export {
54
+ Index,
55
+ IndexBuilder,
56
+ IndexBuilderOn,
57
+ index,
58
+ uniqueIndex
59
+ };
60
+ //# sourceMappingURL=indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-core/indexes.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { AnySingleStoreColumn, SingleStoreColumn } from './columns/index.ts';\nimport type { SingleStoreTable } from './table.ts';\n\ninterface IndexConfig {\n\tname: string;\n\n\tcolumns: IndexColumn[];\n\n\t/**\n\t * If true, the index will be created as `create unique index` instead of `create index`.\n\t */\n\tunique?: boolean;\n\n\t/**\n\t * If set, the index will be created as `create index ... using { 'btree' | 'hash' }`.\n\t */\n\tusing?: 'btree' | 'hash';\n\n\t/**\n\t * If set, the index will be created as `create index ... algorythm { 'default' | 'inplace' | 'copy' }`.\n\t */\n\talgorythm?: 'default' | 'inplace' | 'copy';\n\n\t/**\n\t * If set, adds locks to the index creation.\n\t */\n\tlock?: 'default' | 'none' | 'shared' | 'exclusive';\n}\n\nexport type IndexColumn = SingleStoreColumn | SQL;\n\nexport class IndexBuilderOn {\n\tstatic readonly [entityKind]: string = 'SingleStoreIndexBuilderOn';\n\n\tconstructor(private name: string, private unique: boolean) {}\n\n\ton(...columns: [IndexColumn, ...IndexColumn[]]): IndexBuilder {\n\t\treturn new IndexBuilder(this.name, columns, this.unique);\n\t}\n}\n\nexport interface AnyIndexBuilder {\n\tbuild(table: SingleStoreTable): Index;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IndexBuilder extends AnyIndexBuilder {}\n\nexport class IndexBuilder implements AnyIndexBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreIndexBuilder';\n\n\t/** @internal */\n\tconfig: IndexConfig;\n\n\tconstructor(name: string, columns: IndexColumn[], unique: boolean) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tunique,\n\t\t};\n\t}\n\n\tusing(using: IndexConfig['using']): this {\n\t\tthis.config.using = using;\n\t\treturn this;\n\t}\n\n\talgorythm(algorythm: IndexConfig['algorythm']): this {\n\t\tthis.config.algorythm = algorythm;\n\t\treturn this;\n\t}\n\n\tlock(lock: IndexConfig['lock']): this {\n\t\tthis.config.lock = lock;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: SingleStoreTable): Index {\n\t\treturn new Index(this.config, table);\n\t}\n}\n\nexport class Index {\n\tstatic readonly [entityKind]: string = 'SingleStoreIndex';\n\n\treadonly config: IndexConfig & { table: SingleStoreTable };\n\n\tconstructor(config: IndexConfig, table: SingleStoreTable) {\n\t\tthis.config = { ...config, table };\n\t}\n}\n\nexport type GetColumnsTableName<TColumns> = TColumns extends\n\tAnySingleStoreColumn<{ tableName: infer TTableName extends string }> | AnySingleStoreColumn<\n\t\t{ tableName: infer TTableName extends string }\n\t>[] ? TTableName\n\t: never;\n\nexport function index(name: string): IndexBuilderOn {\n\treturn new IndexBuilderOn(name, false);\n}\n\nexport function uniqueIndex(name: string): IndexBuilderOn {\n\treturn new IndexBuilderOn(name, true);\n}\n\n/* export interface AnyFullTextIndexBuilder {\n\tbuild(table: SingleStoreTable): FullTextIndex;\n} */\n/*\ninterface FullTextIndexConfig {\n\tversion?: number;\n}\n\ninterface FullTextIndexFullConfig extends FullTextIndexConfig {\n\tcolumns: IndexColumn[];\n\n\tname: string;\n}\n\nexport class FullTextIndexBuilderOn {\n\tstatic readonly [entityKind]: string = 'SingleStoreFullTextIndexBuilderOn';\n\n\tconstructor(private name: string, private config: FullTextIndexConfig) {}\n\n\ton(...columns: [IndexColumn, ...IndexColumn[]]): FullTextIndexBuilder {\n\t\treturn new FullTextIndexBuilder({\n\t\t\tname: this.name,\n\t\t\tcolumns: columns,\n\t\t\t...this.config,\n\t\t});\n\t}\n} */\n\n/*\nexport interface FullTextIndexBuilder extends AnyFullTextIndexBuilder {}\n\nexport class FullTextIndexBuilder implements AnyFullTextIndexBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreFullTextIndexBuilder'; */\n\n/** @internal */\n/* config: FullTextIndexFullConfig;\n\n\tconstructor(config: FullTextIndexFullConfig) {\n\t\tthis.config = config;\n\t} */\n\n/** @internal */\n/* build(table: SingleStoreTable): FullTextIndex {\n\t\treturn new FullTextIndex(this.config, table);\n\t}\n}\n\nexport class FullTextIndex {\n\tstatic readonly [entityKind]: string = 'SingleStoreFullTextIndex';\n\n\treadonly config: FullTextIndexConfig & { table: SingleStoreTable };\n\n\tconstructor(config: FullTextIndexConfig, table: SingleStoreTable) {\n\t\tthis.config = { ...config, table };\n\t}\n}\n\nexport function fulltext(name: string, config: FullTextIndexConfig): FullTextIndexBuilderOn {\n\treturn new FullTextIndexBuilderOn(name, config);\n}\n\nexport type SortKeyColumn = SingleStoreColumn | SQL;\n\nexport class SortKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreSortKeyBuilder';\n\n\tconstructor(private columns: SortKeyColumn[]) {} */\n\n/** @internal */\n/* build(table: SingleStoreTable): SortKey {\n\t\treturn new SortKey(this.columns, table);\n\t}\n}\n\nexport class SortKey {\n\tstatic readonly [entityKind]: string = 'SingleStoreSortKey';\n\n\tconstructor(public columns: SortKeyColumn[], public table: SingleStoreTable) {}\n}\n\nexport function sortKey(...columns: SortKeyColumn[]): SortKeyBuilder {\n\treturn new SortKeyBuilder(columns);\n}\n */\n"],"mappings":"AAAA,SAAS,kBAAkB;AAiCpB,MAAM,eAAe;AAAA,EAG3B,YAAoB,MAAsB,QAAiB;AAAvC;AAAsB;AAAA,EAAkB;AAAA,EAF5D,QAAiB,UAAU,IAAY;AAAA,EAIvC,MAAM,SAAwD;AAC7D,WAAO,IAAI,aAAa,KAAK,MAAM,SAAS,KAAK,MAAM;AAAA,EACxD;AACD;AASO,MAAM,aAAwC;AAAA,EACpD,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AAAA,EAEA,YAAY,MAAc,SAAwB,QAAiB;AAClE,SAAK,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAmC;AACxC,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAEA,UAAU,WAA2C;AACpD,SAAK,OAAO,YAAY;AACxB,WAAO;AAAA,EACR;AAAA,EAEA,KAAK,MAAiC;AACrC,SAAK,OAAO,OAAO;AACnB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,OAAgC;AACrC,WAAO,IAAI,MAAM,KAAK,QAAQ,KAAK;AAAA,EACpC;AACD;AAEO,MAAM,MAAM;AAAA,EAClB,QAAiB,UAAU,IAAY;AAAA,EAE9B;AAAA,EAET,YAAY,QAAqB,OAAyB;AACzD,SAAK,SAAS,EAAE,GAAG,QAAQ,MAAM;AAAA,EAClC;AACD;AAQO,SAAS,MAAM,MAA8B;AACnD,SAAO,IAAI,eAAe,MAAM,KAAK;AACtC;AAEO,SAAS,YAAY,MAA8B;AACzD,SAAO,IAAI,eAAe,MAAM,IAAI;AACrC;","names":[]}