rawsql-ts 0.11.43-beta → 0.12.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 (294) hide show
  1. package/README.md +12 -12
  2. package/dist/esm/index.js +18 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +15 -19
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/src/index.d.ts +18 -0
  7. package/dist/esm/src/index.js +18 -0
  8. package/dist/esm/src/index.js.map +1 -1
  9. package/dist/esm/src/models/BinarySelectQuery.d.ts +25 -1
  10. package/dist/esm/src/models/BinarySelectQuery.js +28 -0
  11. package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
  12. package/dist/esm/src/models/Clause.d.ts +14 -2
  13. package/dist/esm/src/models/Clause.js +26 -1
  14. package/dist/esm/src/models/Clause.js.map +1 -1
  15. package/dist/esm/src/models/CreateTableQuery.d.ts +99 -5
  16. package/dist/esm/src/models/CreateTableQuery.js +85 -10
  17. package/dist/esm/src/models/CreateTableQuery.js.map +1 -1
  18. package/dist/esm/src/models/DDLStatements.d.ts +195 -0
  19. package/dist/esm/src/models/DDLStatements.js +201 -0
  20. package/dist/esm/src/models/DDLStatements.js.map +1 -0
  21. package/dist/esm/src/models/DeleteQuery.d.ts +17 -0
  22. package/dist/esm/src/models/DeleteQuery.js +16 -0
  23. package/dist/esm/src/models/DeleteQuery.js.map +1 -0
  24. package/dist/esm/src/models/InsertQuery.d.ts +7 -1
  25. package/dist/esm/src/models/InsertQuery.js +6 -2
  26. package/dist/esm/src/models/InsertQuery.js.map +1 -1
  27. package/dist/esm/src/models/MergeQuery.d.ts +63 -0
  28. package/dist/esm/src/models/MergeQuery.js +94 -0
  29. package/dist/esm/src/models/MergeQuery.js.map +1 -0
  30. package/dist/esm/src/models/SelectQuery.d.ts +37 -1
  31. package/dist/esm/src/models/SelectQuery.js +4 -1
  32. package/dist/esm/src/models/SelectQuery.js.map +1 -1
  33. package/dist/esm/src/models/SimpleSelectQuery.d.ts +29 -1
  34. package/dist/esm/src/models/SimpleSelectQuery.js +32 -0
  35. package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
  36. package/dist/esm/src/models/SqlComponent.d.ts +2 -1
  37. package/dist/esm/src/models/SqlComponent.js +1 -1
  38. package/dist/esm/src/models/SqlComponent.js.map +1 -1
  39. package/dist/esm/src/models/SqlPrintToken.d.ts +36 -0
  40. package/dist/esm/src/models/SqlPrintToken.js +35 -0
  41. package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
  42. package/dist/esm/src/models/ValuesQuery.d.ts +25 -1
  43. package/dist/esm/src/models/ValuesQuery.js +28 -0
  44. package/dist/esm/src/models/ValuesQuery.js.map +1 -1
  45. package/dist/esm/src/parsers/AlterTableParser.d.ts +25 -0
  46. package/dist/esm/src/parsers/AlterTableParser.js +428 -0
  47. package/dist/esm/src/parsers/AlterTableParser.js.map +1 -0
  48. package/dist/esm/src/parsers/AnalyzeStatementParser.d.ts +13 -0
  49. package/dist/esm/src/parsers/AnalyzeStatementParser.js +90 -0
  50. package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +1 -0
  51. package/dist/esm/src/parsers/CreateIndexParser.d.ts +16 -0
  52. package/dist/esm/src/parsers/CreateIndexParser.js +237 -0
  53. package/dist/esm/src/parsers/CreateIndexParser.js.map +1 -0
  54. package/dist/esm/src/parsers/CreateTableParser.d.ts +41 -0
  55. package/dist/esm/src/parsers/CreateTableParser.js +734 -0
  56. package/dist/esm/src/parsers/CreateTableParser.js.map +1 -0
  57. package/dist/esm/src/parsers/DeleteClauseParser.d.ts +11 -0
  58. package/dist/esm/src/parsers/DeleteClauseParser.js +33 -0
  59. package/dist/esm/src/parsers/DeleteClauseParser.js.map +1 -0
  60. package/dist/esm/src/parsers/DeleteQueryParser.d.ts +16 -0
  61. package/dist/esm/src/parsers/DeleteQueryParser.js +73 -0
  62. package/dist/esm/src/parsers/DeleteQueryParser.js.map +1 -0
  63. package/dist/esm/src/parsers/DropConstraintParser.d.ts +12 -0
  64. package/dist/esm/src/parsers/DropConstraintParser.js +47 -0
  65. package/dist/esm/src/parsers/DropConstraintParser.js.map +1 -0
  66. package/dist/esm/src/parsers/DropIndexParser.d.ts +12 -0
  67. package/dist/esm/src/parsers/DropIndexParser.js +69 -0
  68. package/dist/esm/src/parsers/DropIndexParser.js.map +1 -0
  69. package/dist/esm/src/parsers/DropTableParser.d.ts +12 -0
  70. package/dist/esm/src/parsers/DropTableParser.js +59 -0
  71. package/dist/esm/src/parsers/DropTableParser.js.map +1 -0
  72. package/dist/esm/src/parsers/ExplainStatementParser.d.ts +23 -0
  73. package/dist/esm/src/parsers/ExplainStatementParser.js +185 -0
  74. package/dist/esm/src/parsers/ExplainStatementParser.js.map +1 -0
  75. package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +4 -0
  76. package/dist/esm/src/parsers/FunctionExpressionParser.js +25 -8
  77. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  78. package/dist/esm/src/parsers/InsertQueryParser.js +103 -31
  79. package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -1
  80. package/dist/esm/src/parsers/MergeQueryParser.d.ts +26 -0
  81. package/dist/esm/src/parsers/MergeQueryParser.js +479 -0
  82. package/dist/esm/src/parsers/MergeQueryParser.js.map +1 -0
  83. package/dist/esm/src/parsers/ParenExpressionParser.js +25 -0
  84. package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
  85. package/dist/esm/src/parsers/ReturningClauseParser.js +50 -7
  86. package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -1
  87. package/dist/esm/src/parsers/SelectClauseParser.js +3 -3
  88. package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
  89. package/dist/esm/src/parsers/SelectQueryParser.d.ts +4 -0
  90. package/dist/esm/src/parsers/SelectQueryParser.js +4 -0
  91. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  92. package/dist/esm/src/parsers/SetClauseParser.js +97 -15
  93. package/dist/esm/src/parsers/SetClauseParser.js.map +1 -1
  94. package/dist/esm/src/parsers/SqlParser.d.ts +40 -0
  95. package/dist/esm/src/parsers/SqlParser.js +400 -0
  96. package/dist/esm/src/parsers/SqlParser.js.map +1 -0
  97. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +65 -3
  98. package/dist/esm/src/parsers/SqlPrintTokenParser.js +1145 -38
  99. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  100. package/dist/esm/src/parsers/SqlTokenizer.d.ts +24 -2
  101. package/dist/esm/src/parsers/SqlTokenizer.js +135 -74
  102. package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
  103. package/dist/esm/src/parsers/UpdateQueryParser.js +11 -1
  104. package/dist/esm/src/parsers/UpdateQueryParser.js.map +1 -1
  105. package/dist/esm/src/parsers/UsingClauseParser.d.ts +11 -0
  106. package/dist/esm/src/parsers/UsingClauseParser.js +29 -0
  107. package/dist/esm/src/parsers/UsingClauseParser.js.map +1 -0
  108. package/dist/esm/src/parsers/ValueParser.js +5 -1
  109. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  110. package/dist/esm/src/parsers/ValuesQueryParser.d.ts +0 -2
  111. package/dist/esm/src/parsers/ValuesQueryParser.js +5 -45
  112. package/dist/esm/src/parsers/ValuesQueryParser.js.map +1 -1
  113. package/dist/esm/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
  114. package/dist/esm/src/parsers/utils/LexemeCommentUtils.js +26 -0
  115. package/dist/esm/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
  116. package/dist/esm/src/tokenReaders/CommandTokenReader.js +50 -2
  117. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  118. package/dist/esm/src/tokenReaders/LiteralTokenReader.js +8 -5
  119. package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  120. package/dist/esm/src/tokenReaders/OperatorTokenReader.js +10 -1
  121. package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  122. package/dist/esm/src/tokenReaders/TypeTokenReader.js +11 -1
  123. package/dist/esm/src/tokenReaders/TypeTokenReader.js.map +1 -1
  124. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
  125. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js +118 -0
  126. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
  127. package/dist/esm/src/transformers/LinePrinter.d.ts +1 -0
  128. package/dist/esm/src/transformers/LinePrinter.js +12 -0
  129. package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
  130. package/dist/esm/src/transformers/OnelineFormattingHelper.d.ts +29 -0
  131. package/dist/esm/src/transformers/OnelineFormattingHelper.js +95 -0
  132. package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +1 -0
  133. package/dist/esm/src/transformers/QueryBuilder.d.ts +47 -13
  134. package/dist/esm/src/transformers/QueryBuilder.js +424 -62
  135. package/dist/esm/src/transformers/QueryBuilder.js.map +1 -1
  136. package/dist/esm/src/transformers/SqlFormatter.d.ts +13 -1
  137. package/dist/esm/src/transformers/SqlFormatter.js +13 -4
  138. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  139. package/dist/esm/src/transformers/SqlPrinter.d.ts +47 -8
  140. package/dist/esm/src/transformers/SqlPrinter.js +625 -72
  141. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  142. package/dist/esm/src/types/Formatting.d.ts +8 -0
  143. package/dist/esm/src/types/Formatting.js +2 -0
  144. package/dist/esm/src/types/Formatting.js.map +1 -0
  145. package/dist/esm/src/utils/ParserStringUtils.d.ts +6 -0
  146. package/dist/esm/src/utils/ParserStringUtils.js +28 -0
  147. package/dist/esm/src/utils/ParserStringUtils.js.map +1 -0
  148. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  149. package/dist/index.min.js +14 -18
  150. package/dist/index.min.js.map +4 -4
  151. package/dist/src/index.d.ts +18 -0
  152. package/dist/src/index.js +18 -0
  153. package/dist/src/index.js.map +1 -1
  154. package/dist/src/models/BinarySelectQuery.d.ts +25 -1
  155. package/dist/src/models/BinarySelectQuery.js +28 -0
  156. package/dist/src/models/BinarySelectQuery.js.map +1 -1
  157. package/dist/src/models/Clause.d.ts +14 -2
  158. package/dist/src/models/Clause.js +29 -2
  159. package/dist/src/models/Clause.js.map +1 -1
  160. package/dist/src/models/CreateTableQuery.d.ts +99 -5
  161. package/dist/src/models/CreateTableQuery.js +90 -11
  162. package/dist/src/models/CreateTableQuery.js.map +1 -1
  163. package/dist/src/models/DDLStatements.d.ts +195 -0
  164. package/dist/src/models/DDLStatements.js +216 -0
  165. package/dist/src/models/DDLStatements.js.map +1 -0
  166. package/dist/src/models/DeleteQuery.d.ts +17 -0
  167. package/dist/src/models/DeleteQuery.js +20 -0
  168. package/dist/src/models/DeleteQuery.js.map +1 -0
  169. package/dist/src/models/InsertQuery.d.ts +7 -1
  170. package/dist/src/models/InsertQuery.js +6 -2
  171. package/dist/src/models/InsertQuery.js.map +1 -1
  172. package/dist/src/models/MergeQuery.d.ts +63 -0
  173. package/dist/src/models/MergeQuery.js +104 -0
  174. package/dist/src/models/MergeQuery.js.map +1 -0
  175. package/dist/src/models/SelectQuery.d.ts +37 -1
  176. package/dist/src/models/SelectQuery.js +7 -1
  177. package/dist/src/models/SelectQuery.js.map +1 -1
  178. package/dist/src/models/SimpleSelectQuery.d.ts +29 -1
  179. package/dist/src/models/SimpleSelectQuery.js +32 -0
  180. package/dist/src/models/SimpleSelectQuery.js.map +1 -1
  181. package/dist/src/models/SqlComponent.d.ts +2 -1
  182. package/dist/src/models/SqlComponent.js +1 -1
  183. package/dist/src/models/SqlComponent.js.map +1 -1
  184. package/dist/src/models/SqlPrintToken.d.ts +36 -0
  185. package/dist/src/models/SqlPrintToken.js +35 -0
  186. package/dist/src/models/SqlPrintToken.js.map +1 -1
  187. package/dist/src/models/ValuesQuery.d.ts +25 -1
  188. package/dist/src/models/ValuesQuery.js +28 -0
  189. package/dist/src/models/ValuesQuery.js.map +1 -1
  190. package/dist/src/parsers/AlterTableParser.d.ts +25 -0
  191. package/dist/src/parsers/AlterTableParser.js +432 -0
  192. package/dist/src/parsers/AlterTableParser.js.map +1 -0
  193. package/dist/src/parsers/AnalyzeStatementParser.d.ts +13 -0
  194. package/dist/src/parsers/AnalyzeStatementParser.js +94 -0
  195. package/dist/src/parsers/AnalyzeStatementParser.js.map +1 -0
  196. package/dist/src/parsers/CreateIndexParser.d.ts +16 -0
  197. package/dist/src/parsers/CreateIndexParser.js +241 -0
  198. package/dist/src/parsers/CreateIndexParser.js.map +1 -0
  199. package/dist/src/parsers/CreateTableParser.d.ts +41 -0
  200. package/dist/src/parsers/CreateTableParser.js +738 -0
  201. package/dist/src/parsers/CreateTableParser.js.map +1 -0
  202. package/dist/src/parsers/DeleteClauseParser.d.ts +11 -0
  203. package/dist/src/parsers/DeleteClauseParser.js +37 -0
  204. package/dist/src/parsers/DeleteClauseParser.js.map +1 -0
  205. package/dist/src/parsers/DeleteQueryParser.d.ts +16 -0
  206. package/dist/src/parsers/DeleteQueryParser.js +77 -0
  207. package/dist/src/parsers/DeleteQueryParser.js.map +1 -0
  208. package/dist/src/parsers/DropConstraintParser.d.ts +12 -0
  209. package/dist/src/parsers/DropConstraintParser.js +51 -0
  210. package/dist/src/parsers/DropConstraintParser.js.map +1 -0
  211. package/dist/src/parsers/DropIndexParser.d.ts +12 -0
  212. package/dist/src/parsers/DropIndexParser.js +73 -0
  213. package/dist/src/parsers/DropIndexParser.js.map +1 -0
  214. package/dist/src/parsers/DropTableParser.d.ts +12 -0
  215. package/dist/src/parsers/DropTableParser.js +63 -0
  216. package/dist/src/parsers/DropTableParser.js.map +1 -0
  217. package/dist/src/parsers/ExplainStatementParser.d.ts +23 -0
  218. package/dist/src/parsers/ExplainStatementParser.js +189 -0
  219. package/dist/src/parsers/ExplainStatementParser.js.map +1 -0
  220. package/dist/src/parsers/FunctionExpressionParser.d.ts +4 -0
  221. package/dist/src/parsers/FunctionExpressionParser.js +25 -8
  222. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  223. package/dist/src/parsers/InsertQueryParser.js +103 -31
  224. package/dist/src/parsers/InsertQueryParser.js.map +1 -1
  225. package/dist/src/parsers/MergeQueryParser.d.ts +26 -0
  226. package/dist/src/parsers/MergeQueryParser.js +483 -0
  227. package/dist/src/parsers/MergeQueryParser.js.map +1 -0
  228. package/dist/src/parsers/ParenExpressionParser.js +25 -0
  229. package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
  230. package/dist/src/parsers/ReturningClauseParser.js +50 -7
  231. package/dist/src/parsers/ReturningClauseParser.js.map +1 -1
  232. package/dist/src/parsers/SelectClauseParser.js +2 -2
  233. package/dist/src/parsers/SelectClauseParser.js.map +1 -1
  234. package/dist/src/parsers/SelectQueryParser.d.ts +4 -0
  235. package/dist/src/parsers/SelectQueryParser.js +4 -0
  236. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  237. package/dist/src/parsers/SetClauseParser.js +97 -15
  238. package/dist/src/parsers/SetClauseParser.js.map +1 -1
  239. package/dist/src/parsers/SqlParser.d.ts +40 -0
  240. package/dist/src/parsers/SqlParser.js +409 -0
  241. package/dist/src/parsers/SqlParser.js.map +1 -0
  242. package/dist/src/parsers/SqlPrintTokenParser.d.ts +65 -3
  243. package/dist/src/parsers/SqlPrintTokenParser.js +1143 -36
  244. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  245. package/dist/src/parsers/SqlTokenizer.d.ts +24 -2
  246. package/dist/src/parsers/SqlTokenizer.js +139 -74
  247. package/dist/src/parsers/SqlTokenizer.js.map +1 -1
  248. package/dist/src/parsers/UpdateQueryParser.js +11 -1
  249. package/dist/src/parsers/UpdateQueryParser.js.map +1 -1
  250. package/dist/src/parsers/UsingClauseParser.d.ts +11 -0
  251. package/dist/src/parsers/UsingClauseParser.js +33 -0
  252. package/dist/src/parsers/UsingClauseParser.js.map +1 -0
  253. package/dist/src/parsers/ValueParser.js +5 -1
  254. package/dist/src/parsers/ValueParser.js.map +1 -1
  255. package/dist/src/parsers/ValuesQueryParser.d.ts +0 -2
  256. package/dist/src/parsers/ValuesQueryParser.js +5 -45
  257. package/dist/src/parsers/ValuesQueryParser.js.map +1 -1
  258. package/dist/src/parsers/utils/LexemeCommentUtils.d.ts +6 -0
  259. package/dist/src/parsers/utils/LexemeCommentUtils.js +29 -0
  260. package/dist/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
  261. package/dist/src/tokenReaders/CommandTokenReader.js +50 -2
  262. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  263. package/dist/src/tokenReaders/LiteralTokenReader.js +8 -5
  264. package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  265. package/dist/src/tokenReaders/OperatorTokenReader.js +10 -1
  266. package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  267. package/dist/src/tokenReaders/TypeTokenReader.js +11 -1
  268. package/dist/src/tokenReaders/TypeTokenReader.js.map +1 -1
  269. package/dist/src/transformers/InsertQuerySelectValuesConverter.d.ts +18 -0
  270. package/dist/src/transformers/InsertQuerySelectValuesConverter.js +122 -0
  271. package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
  272. package/dist/src/transformers/LinePrinter.d.ts +1 -0
  273. package/dist/src/transformers/LinePrinter.js +12 -0
  274. package/dist/src/transformers/LinePrinter.js.map +1 -1
  275. package/dist/src/transformers/OnelineFormattingHelper.d.ts +29 -0
  276. package/dist/src/transformers/OnelineFormattingHelper.js +99 -0
  277. package/dist/src/transformers/OnelineFormattingHelper.js.map +1 -0
  278. package/dist/src/transformers/QueryBuilder.d.ts +47 -13
  279. package/dist/src/transformers/QueryBuilder.js +433 -60
  280. package/dist/src/transformers/QueryBuilder.js.map +1 -1
  281. package/dist/src/transformers/SqlFormatter.d.ts +13 -1
  282. package/dist/src/transformers/SqlFormatter.js +20 -5
  283. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  284. package/dist/src/transformers/SqlPrinter.d.ts +47 -8
  285. package/dist/src/transformers/SqlPrinter.js +625 -72
  286. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  287. package/dist/src/types/Formatting.d.ts +8 -0
  288. package/dist/src/types/Formatting.js +3 -0
  289. package/dist/src/types/Formatting.js.map +1 -0
  290. package/dist/src/utils/ParserStringUtils.d.ts +6 -0
  291. package/dist/src/utils/ParserStringUtils.js +31 -0
  292. package/dist/src/utils/ParserStringUtils.js.map +1 -0
  293. package/dist/tsconfig.tsbuildinfo +1 -1
  294. package/package.json +3 -3
@@ -0,0 +1,195 @@
1
+ import { SqlComponent } from "./SqlComponent";
2
+ import { QualifiedName, IdentifierString, ValueComponent, RawString } from "./ValueComponent";
3
+ import { TableConstraintDefinition } from "./CreateTableQuery";
4
+ export type DropBehavior = 'cascade' | 'restrict' | null;
5
+ export type IndexSortOrder = 'asc' | 'desc' | null;
6
+ export type IndexNullsOrder = 'first' | 'last' | null;
7
+ /**
8
+ * DROP TABLE statement representation.
9
+ */
10
+ export declare class DropTableStatement extends SqlComponent {
11
+ static kind: symbol;
12
+ tables: QualifiedName[];
13
+ ifExists: boolean;
14
+ behavior: DropBehavior;
15
+ constructor(params: {
16
+ tables: QualifiedName[];
17
+ ifExists?: boolean;
18
+ behavior?: DropBehavior;
19
+ });
20
+ }
21
+ /**
22
+ * DROP INDEX statement representation.
23
+ */
24
+ export declare class DropIndexStatement extends SqlComponent {
25
+ static kind: symbol;
26
+ indexNames: QualifiedName[];
27
+ ifExists: boolean;
28
+ concurrently: boolean;
29
+ behavior: DropBehavior;
30
+ constructor(params: {
31
+ indexNames: QualifiedName[];
32
+ ifExists?: boolean;
33
+ concurrently?: boolean;
34
+ behavior?: DropBehavior;
35
+ });
36
+ }
37
+ /**
38
+ * Column definition within CREATE INDEX clause.
39
+ */
40
+ export declare class IndexColumnDefinition extends SqlComponent {
41
+ static kind: symbol;
42
+ expression: ValueComponent;
43
+ sortOrder: IndexSortOrder;
44
+ nullsOrder: IndexNullsOrder;
45
+ collation?: QualifiedName | null;
46
+ operatorClass?: QualifiedName | null;
47
+ constructor(params: {
48
+ expression: ValueComponent;
49
+ sortOrder?: IndexSortOrder;
50
+ nullsOrder?: IndexNullsOrder;
51
+ collation?: QualifiedName | null;
52
+ operatorClass?: QualifiedName | null;
53
+ });
54
+ }
55
+ /**
56
+ * CREATE INDEX statement representation.
57
+ */
58
+ export declare class CreateIndexStatement extends SqlComponent {
59
+ static kind: symbol;
60
+ unique: boolean;
61
+ concurrently: boolean;
62
+ ifNotExists: boolean;
63
+ indexName: QualifiedName;
64
+ tableName: QualifiedName;
65
+ usingMethod?: IdentifierString | RawString | null;
66
+ columns: IndexColumnDefinition[];
67
+ include?: IdentifierString[] | null;
68
+ where?: ValueComponent;
69
+ withOptions?: RawString | null;
70
+ tablespace?: IdentifierString | null;
71
+ constructor(params: {
72
+ unique?: boolean;
73
+ concurrently?: boolean;
74
+ ifNotExists?: boolean;
75
+ indexName: QualifiedName;
76
+ tableName: QualifiedName;
77
+ usingMethod?: IdentifierString | RawString | null;
78
+ columns: IndexColumnDefinition[];
79
+ include?: IdentifierString[] | null;
80
+ where?: ValueComponent;
81
+ withOptions?: RawString | null;
82
+ tablespace?: IdentifierString | null;
83
+ });
84
+ }
85
+ /**
86
+ * ALTER TABLE ... ADD CONSTRAINT action.
87
+ */
88
+ export declare class AlterTableAddConstraint extends SqlComponent {
89
+ static kind: symbol;
90
+ constraint: TableConstraintDefinition;
91
+ ifNotExists: boolean;
92
+ notValid: boolean;
93
+ constructor(params: {
94
+ constraint: TableConstraintDefinition;
95
+ ifNotExists?: boolean;
96
+ notValid?: boolean;
97
+ });
98
+ }
99
+ /**
100
+ * ALTER TABLE ... DROP CONSTRAINT action.
101
+ */
102
+ export declare class AlterTableDropConstraint extends SqlComponent {
103
+ static kind: symbol;
104
+ constraintName: IdentifierString;
105
+ ifExists: boolean;
106
+ behavior: DropBehavior;
107
+ constructor(params: {
108
+ constraintName: IdentifierString;
109
+ ifExists?: boolean;
110
+ behavior?: DropBehavior;
111
+ });
112
+ }
113
+ /**
114
+ * ALTER TABLE ... DROP COLUMN action.
115
+ */
116
+ export declare class AlterTableDropColumn extends SqlComponent {
117
+ static kind: symbol;
118
+ columnName: IdentifierString;
119
+ ifExists: boolean;
120
+ behavior: DropBehavior;
121
+ constructor(params: {
122
+ columnName: IdentifierString;
123
+ ifExists?: boolean;
124
+ behavior?: DropBehavior;
125
+ });
126
+ }
127
+ export type AlterTableAction = AlterTableAddConstraint | AlterTableDropConstraint | AlterTableDropColumn;
128
+ /**
129
+ * ALTER TABLE statement representation with constraint-centric actions.
130
+ */
131
+ export declare class AlterTableStatement extends SqlComponent {
132
+ static kind: symbol;
133
+ table: QualifiedName;
134
+ only: boolean;
135
+ ifExists: boolean;
136
+ actions: AlterTableAction[];
137
+ constructor(params: {
138
+ table: QualifiedName;
139
+ only?: boolean;
140
+ ifExists?: boolean;
141
+ actions: AlterTableAction[];
142
+ });
143
+ }
144
+ /**
145
+ * Standalone DROP CONSTRAINT statement representation.
146
+ */
147
+ export declare class DropConstraintStatement extends SqlComponent {
148
+ static kind: symbol;
149
+ constraintName: IdentifierString;
150
+ ifExists: boolean;
151
+ behavior: DropBehavior;
152
+ constructor(params: {
153
+ constraintName: IdentifierString;
154
+ ifExists?: boolean;
155
+ behavior?: DropBehavior;
156
+ });
157
+ }
158
+ /**
159
+ * Option entry within an EXPLAIN statement.
160
+ */
161
+ export declare class ExplainOption extends SqlComponent {
162
+ static kind: symbol;
163
+ name: IdentifierString;
164
+ value: ValueComponent | null;
165
+ constructor(params: {
166
+ name: IdentifierString;
167
+ value?: ValueComponent | null;
168
+ });
169
+ }
170
+ /**
171
+ * EXPLAIN statement representation.
172
+ */
173
+ export declare class ExplainStatement extends SqlComponent {
174
+ static kind: symbol;
175
+ options: ExplainOption[] | null;
176
+ statement: SqlComponent;
177
+ constructor(params: {
178
+ options?: ExplainOption[] | null;
179
+ statement: SqlComponent;
180
+ });
181
+ }
182
+ /**
183
+ * ANALYZE statement representation.
184
+ */
185
+ export declare class AnalyzeStatement extends SqlComponent {
186
+ static kind: symbol;
187
+ verbose: boolean;
188
+ target: QualifiedName | null;
189
+ columns: IdentifierString[] | null;
190
+ constructor(params?: {
191
+ verbose?: boolean;
192
+ target?: QualifiedName | null;
193
+ columns?: IdentifierString[] | null;
194
+ });
195
+ }
@@ -0,0 +1,201 @@
1
+ import { SqlComponent } from "./SqlComponent";
2
+ import { QualifiedName, IdentifierString } from "./ValueComponent";
3
+ function cloneIdentifierWithComments(identifier) {
4
+ const clone = new IdentifierString(identifier.name);
5
+ // Preserve positioned comment metadata while cloning identifiers.
6
+ if (identifier.positionedComments) {
7
+ clone.positionedComments = identifier.positionedComments.map(entry => ({
8
+ position: entry.position,
9
+ comments: [...entry.comments],
10
+ }));
11
+ }
12
+ else if (identifier.comments && identifier.comments.length > 0) {
13
+ // Copy legacy comment arrays when no positioned comments exist.
14
+ clone.comments = [...identifier.comments];
15
+ }
16
+ return clone;
17
+ }
18
+ /**
19
+ * DROP TABLE statement representation.
20
+ */
21
+ export class DropTableStatement extends SqlComponent {
22
+ constructor(params) {
23
+ var _a, _b;
24
+ super();
25
+ this.tables = params.tables.map(table => new QualifiedName(table.namespaces, table.name));
26
+ this.ifExists = (_a = params.ifExists) !== null && _a !== void 0 ? _a : false;
27
+ this.behavior = (_b = params.behavior) !== null && _b !== void 0 ? _b : null;
28
+ }
29
+ }
30
+ DropTableStatement.kind = Symbol("DropTableStatement");
31
+ /**
32
+ * DROP INDEX statement representation.
33
+ */
34
+ export class DropIndexStatement extends SqlComponent {
35
+ constructor(params) {
36
+ var _a, _b, _c;
37
+ super();
38
+ this.indexNames = params.indexNames.map(index => new QualifiedName(index.namespaces, index.name));
39
+ this.ifExists = (_a = params.ifExists) !== null && _a !== void 0 ? _a : false;
40
+ this.concurrently = (_b = params.concurrently) !== null && _b !== void 0 ? _b : false;
41
+ this.behavior = (_c = params.behavior) !== null && _c !== void 0 ? _c : null;
42
+ }
43
+ }
44
+ DropIndexStatement.kind = Symbol("DropIndexStatement");
45
+ /**
46
+ * Column definition within CREATE INDEX clause.
47
+ */
48
+ export class IndexColumnDefinition extends SqlComponent {
49
+ constructor(params) {
50
+ var _a, _b, _c, _d;
51
+ super();
52
+ this.expression = params.expression;
53
+ this.sortOrder = (_a = params.sortOrder) !== null && _a !== void 0 ? _a : null;
54
+ this.nullsOrder = (_b = params.nullsOrder) !== null && _b !== void 0 ? _b : null;
55
+ this.collation = (_c = params.collation) !== null && _c !== void 0 ? _c : null;
56
+ this.operatorClass = (_d = params.operatorClass) !== null && _d !== void 0 ? _d : null;
57
+ }
58
+ }
59
+ IndexColumnDefinition.kind = Symbol("IndexColumnDefinition");
60
+ /**
61
+ * CREATE INDEX statement representation.
62
+ */
63
+ export class CreateIndexStatement extends SqlComponent {
64
+ constructor(params) {
65
+ var _a, _b, _c, _d, _e, _f;
66
+ super();
67
+ this.unique = (_a = params.unique) !== null && _a !== void 0 ? _a : false;
68
+ this.concurrently = (_b = params.concurrently) !== null && _b !== void 0 ? _b : false;
69
+ this.ifNotExists = (_c = params.ifNotExists) !== null && _c !== void 0 ? _c : false;
70
+ this.indexName = new QualifiedName(params.indexName.namespaces, params.indexName.name);
71
+ this.tableName = new QualifiedName(params.tableName.namespaces, params.tableName.name);
72
+ this.usingMethod = (_d = params.usingMethod) !== null && _d !== void 0 ? _d : null;
73
+ this.columns = params.columns.map(col => {
74
+ var _a, _b;
75
+ return new IndexColumnDefinition({
76
+ expression: col.expression,
77
+ sortOrder: col.sortOrder,
78
+ nullsOrder: col.nullsOrder,
79
+ collation: (_a = col.collation) !== null && _a !== void 0 ? _a : null,
80
+ operatorClass: (_b = col.operatorClass) !== null && _b !== void 0 ? _b : null
81
+ });
82
+ });
83
+ this.include = params.include ? [...params.include] : null;
84
+ this.where = params.where;
85
+ this.withOptions = (_e = params.withOptions) !== null && _e !== void 0 ? _e : null;
86
+ this.tablespace = (_f = params.tablespace) !== null && _f !== void 0 ? _f : null;
87
+ }
88
+ }
89
+ CreateIndexStatement.kind = Symbol("CreateIndexStatement");
90
+ /**
91
+ * ALTER TABLE ... ADD CONSTRAINT action.
92
+ */
93
+ export class AlterTableAddConstraint extends SqlComponent {
94
+ constructor(params) {
95
+ var _a, _b;
96
+ super();
97
+ this.constraint = params.constraint;
98
+ this.ifNotExists = (_a = params.ifNotExists) !== null && _a !== void 0 ? _a : false;
99
+ this.notValid = (_b = params.notValid) !== null && _b !== void 0 ? _b : false;
100
+ }
101
+ }
102
+ AlterTableAddConstraint.kind = Symbol("AlterTableAddConstraint");
103
+ /**
104
+ * ALTER TABLE ... DROP CONSTRAINT action.
105
+ */
106
+ export class AlterTableDropConstraint extends SqlComponent {
107
+ constructor(params) {
108
+ var _a, _b;
109
+ super();
110
+ this.constraintName = params.constraintName;
111
+ this.ifExists = (_a = params.ifExists) !== null && _a !== void 0 ? _a : false;
112
+ this.behavior = (_b = params.behavior) !== null && _b !== void 0 ? _b : null;
113
+ }
114
+ }
115
+ AlterTableDropConstraint.kind = Symbol("AlterTableDropConstraint");
116
+ /**
117
+ * ALTER TABLE ... DROP COLUMN action.
118
+ */
119
+ export class AlterTableDropColumn extends SqlComponent {
120
+ constructor(params) {
121
+ var _a, _b;
122
+ super();
123
+ this.columnName = params.columnName;
124
+ this.ifExists = (_a = params.ifExists) !== null && _a !== void 0 ? _a : false;
125
+ this.behavior = (_b = params.behavior) !== null && _b !== void 0 ? _b : null;
126
+ }
127
+ }
128
+ AlterTableDropColumn.kind = Symbol("AlterTableDropColumn");
129
+ /**
130
+ * ALTER TABLE statement representation with constraint-centric actions.
131
+ */
132
+ export class AlterTableStatement extends SqlComponent {
133
+ constructor(params) {
134
+ var _a, _b;
135
+ super();
136
+ this.table = new QualifiedName(params.table.namespaces, params.table.name);
137
+ this.only = (_a = params.only) !== null && _a !== void 0 ? _a : false;
138
+ this.ifExists = (_b = params.ifExists) !== null && _b !== void 0 ? _b : false;
139
+ this.actions = params.actions.map(action => action);
140
+ }
141
+ }
142
+ AlterTableStatement.kind = Symbol("AlterTableStatement");
143
+ /**
144
+ * Standalone DROP CONSTRAINT statement representation.
145
+ */
146
+ export class DropConstraintStatement extends SqlComponent {
147
+ constructor(params) {
148
+ var _a, _b;
149
+ super();
150
+ this.constraintName = params.constraintName;
151
+ this.ifExists = (_a = params.ifExists) !== null && _a !== void 0 ? _a : false;
152
+ this.behavior = (_b = params.behavior) !== null && _b !== void 0 ? _b : null;
153
+ }
154
+ }
155
+ DropConstraintStatement.kind = Symbol("DropConstraintStatement");
156
+ /**
157
+ * Option entry within an EXPLAIN statement.
158
+ */
159
+ export class ExplainOption extends SqlComponent {
160
+ constructor(params) {
161
+ var _a;
162
+ super();
163
+ // Clone the option name so explain options keep associated metadata.
164
+ this.name = cloneIdentifierWithComments(params.name);
165
+ this.value = (_a = params.value) !== null && _a !== void 0 ? _a : null;
166
+ }
167
+ }
168
+ ExplainOption.kind = Symbol("ExplainOption");
169
+ /**
170
+ * EXPLAIN statement representation.
171
+ */
172
+ export class ExplainStatement extends SqlComponent {
173
+ constructor(params) {
174
+ super();
175
+ this.options = params.options ? params.options.map(option => new ExplainOption(option)) : null;
176
+ this.statement = params.statement;
177
+ }
178
+ }
179
+ ExplainStatement.kind = Symbol("ExplainStatement");
180
+ /**
181
+ * ANALYZE statement representation.
182
+ */
183
+ export class AnalyzeStatement extends SqlComponent {
184
+ constructor(params) {
185
+ var _a;
186
+ super();
187
+ this.verbose = (_a = params === null || params === void 0 ? void 0 : params.verbose) !== null && _a !== void 0 ? _a : false;
188
+ this.target = (params === null || params === void 0 ? void 0 : params.target)
189
+ ? new QualifiedName(params.target.namespaces, params.target.name)
190
+ : null;
191
+ if (params === null || params === void 0 ? void 0 : params.columns) {
192
+ // Clone target columns so position-aware comments remain intact.
193
+ this.columns = params.columns.map(cloneIdentifierWithComments);
194
+ }
195
+ else {
196
+ this.columns = null;
197
+ }
198
+ }
199
+ }
200
+ AnalyzeStatement.kind = Symbol("AnalyzeStatement");
201
+ //# sourceMappingURL=DDLStatements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DDLStatements.js","sourceRoot":"","sources":["../../../../src/models/DDLStatements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { SqlComponent } from "./SqlComponent";
2
+ import { DeleteClause, ReturningClause, UsingClause, WhereClause, WithClause } from "./Clause";
3
+ export declare class DeleteQuery extends SqlComponent {
4
+ static kind: symbol;
5
+ withClause: WithClause | null;
6
+ deleteClause: DeleteClause;
7
+ usingClause: UsingClause | null;
8
+ whereClause: WhereClause | null;
9
+ returningClause: ReturningClause | null;
10
+ constructor(params: {
11
+ withClause?: WithClause | null;
12
+ deleteClause: DeleteClause;
13
+ usingClause?: UsingClause | null;
14
+ whereClause?: WhereClause | null;
15
+ returning?: ReturningClause | null;
16
+ });
17
+ }
@@ -0,0 +1,16 @@
1
+ // Represents a DELETE query in SQL.
2
+ // Supports optional USING, WHERE, and RETURNING clauses alongside WITH.
3
+ import { SqlComponent } from "./SqlComponent";
4
+ export class DeleteQuery extends SqlComponent {
5
+ constructor(params) {
6
+ var _a, _b, _c, _d;
7
+ super();
8
+ this.withClause = (_a = params.withClause) !== null && _a !== void 0 ? _a : null;
9
+ this.deleteClause = params.deleteClause;
10
+ this.usingClause = (_b = params.usingClause) !== null && _b !== void 0 ? _b : null;
11
+ this.whereClause = (_c = params.whereClause) !== null && _c !== void 0 ? _c : null;
12
+ this.returningClause = (_d = params.returning) !== null && _d !== void 0 ? _d : null;
13
+ }
14
+ }
15
+ DeleteQuery.kind = Symbol("DeleteQuery");
16
+ //# sourceMappingURL=DeleteQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteQuery.js","sourceRoot":"","sources":["../../../../src/models/DeleteQuery.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,wEAAwE;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,OAAO,WAAY,SAAQ,YAAY;IAQzC,YAAY,MAMX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC;IACpD,CAAC;;AApBM,gBAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC"}
@@ -1,16 +1,22 @@
1
1
  import { SqlComponent } from "./SqlComponent";
2
2
  import { SelectQuery } from "./SelectQuery";
3
- import { InsertClause } from "./Clause";
3
+ import { InsertClause, ReturningClause, WithClause } from "./Clause";
4
4
  export declare class InsertQuery extends SqlComponent {
5
5
  static kind: symbol;
6
+ withClause: WithClause | null;
6
7
  insertClause: InsertClause;
7
8
  selectQuery: SelectQuery | null;
9
+ returningClause: ReturningClause | null;
8
10
  /**
9
11
  * @param params.insertClause InsertClause instance (target table and columns)
10
12
  * @param params.selectQuery SELECT/VALUES query (required)
13
+ * @param params.withClause Optional WITH clause scoped to the INSERT statement
14
+ * @param params.returning Optional RETURNING clause
11
15
  */
12
16
  constructor(params: {
17
+ withClause?: WithClause | null;
13
18
  insertClause: InsertClause;
14
19
  selectQuery?: SelectQuery | null;
20
+ returning?: ReturningClause | null;
15
21
  });
16
22
  }
@@ -5,12 +5,16 @@ export class InsertQuery extends SqlComponent {
5
5
  /**
6
6
  * @param params.insertClause InsertClause instance (target table and columns)
7
7
  * @param params.selectQuery SELECT/VALUES query (required)
8
+ * @param params.withClause Optional WITH clause scoped to the INSERT statement
9
+ * @param params.returning Optional RETURNING clause
8
10
  */
9
11
  constructor(params) {
10
- var _a;
12
+ var _a, _b, _c;
11
13
  super();
14
+ this.withClause = (_a = params.withClause) !== null && _a !== void 0 ? _a : null;
12
15
  this.insertClause = params.insertClause;
13
- this.selectQuery = (_a = params.selectQuery) !== null && _a !== void 0 ? _a : null;
16
+ this.selectQuery = (_b = params.selectQuery) !== null && _b !== void 0 ? _b : null;
17
+ this.returningClause = (_c = params.returning) !== null && _c !== void 0 ? _c : null;
14
18
  }
15
19
  }
16
20
  InsertQuery.kind = Symbol("InsertQuery");
@@ -1 +1 @@
1
- {"version":3,"file":"InsertQuery.js","sourceRoot":"","sources":["../../../../src/models/InsertQuery.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,MAAM,OAAO,WAAY,SAAQ,YAAY;IAKzC;;;OAGG;IACH,YAAY,MAGX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,IAAI,CAAC;IAClD,CAAC;;AAfM,gBAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"InsertQuery.js","sourceRoot":"","sources":["../../../../src/models/InsertQuery.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,MAAM,OAAO,WAAY,SAAQ,YAAY;IAOzC;;;;;OAKG;IACH,YAAY,MAKX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC;IACpD,CAAC;;AAvBM,gBAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { SqlComponent } from "./SqlComponent";
2
+ import { IdentifierString, ValueList, ValueComponent } from "./ValueComponent";
3
+ import { SetClause, SetClauseItem, SourceExpression, WhereClause, WithClause } from "./Clause";
4
+ export type MergeMatchType = "matched" | "not_matched" | "not_matched_by_source" | "not_matched_by_target";
5
+ export declare abstract class MergeAction extends SqlComponent {
6
+ static kind: symbol;
7
+ }
8
+ export declare class MergeUpdateAction extends MergeAction {
9
+ static kind: symbol;
10
+ setClause: SetClause;
11
+ whereClause: WhereClause | null;
12
+ constructor(setClause: SetClause | SetClauseItem[], whereClause?: WhereClause | null);
13
+ }
14
+ export declare class MergeDeleteAction extends MergeAction {
15
+ static kind: symbol;
16
+ whereClause: WhereClause | null;
17
+ constructor(whereClause?: WhereClause | null);
18
+ }
19
+ export declare class MergeInsertAction extends MergeAction {
20
+ static kind: symbol;
21
+ columns: IdentifierString[] | null;
22
+ values: ValueList | null;
23
+ defaultValues: boolean;
24
+ private valuesLeadingComments;
25
+ constructor(params: {
26
+ columns?: (IdentifierString | string)[] | null;
27
+ values?: ValueList | null;
28
+ defaultValues?: boolean;
29
+ valuesLeadingComments?: string[] | null;
30
+ });
31
+ addValuesLeadingComments(comments: string[]): void;
32
+ getValuesLeadingComments(): string[];
33
+ }
34
+ export declare class MergeDoNothingAction extends MergeAction {
35
+ static kind: symbol;
36
+ }
37
+ export declare class MergeWhenClause extends SqlComponent {
38
+ static kind: symbol;
39
+ matchType: MergeMatchType;
40
+ condition: ValueComponent | null;
41
+ action: MergeAction;
42
+ private thenLeadingComments;
43
+ constructor(matchType: MergeMatchType, action: MergeAction, condition?: ValueComponent | null, options?: {
44
+ thenLeadingComments?: string[] | null;
45
+ });
46
+ addThenLeadingComments(comments: string[]): void;
47
+ getThenLeadingComments(): string[];
48
+ }
49
+ export declare class MergeQuery extends SqlComponent {
50
+ static kind: symbol;
51
+ withClause: WithClause | null;
52
+ target: SourceExpression;
53
+ source: SourceExpression;
54
+ onCondition: ValueComponent;
55
+ whenClauses: MergeWhenClause[];
56
+ constructor(params: {
57
+ withClause?: WithClause | null;
58
+ target: SourceExpression;
59
+ source: SourceExpression;
60
+ onCondition: ValueComponent;
61
+ whenClauses: MergeWhenClause[];
62
+ });
63
+ }
@@ -0,0 +1,94 @@
1
+ import { SqlComponent } from "./SqlComponent";
2
+ import { IdentifierString } from "./ValueComponent";
3
+ import { SetClause } from "./Clause";
4
+ export class MergeAction extends SqlComponent {
5
+ }
6
+ MergeAction.kind = Symbol("MergeAction");
7
+ export class MergeUpdateAction extends MergeAction {
8
+ constructor(setClause, whereClause) {
9
+ super();
10
+ this.setClause = setClause instanceof SetClause ? setClause : new SetClause(setClause);
11
+ this.whereClause = whereClause !== null && whereClause !== void 0 ? whereClause : null;
12
+ }
13
+ }
14
+ MergeUpdateAction.kind = Symbol("MergeUpdateAction");
15
+ export class MergeDeleteAction extends MergeAction {
16
+ constructor(whereClause) {
17
+ super();
18
+ this.whereClause = whereClause !== null && whereClause !== void 0 ? whereClause : null;
19
+ }
20
+ }
21
+ MergeDeleteAction.kind = Symbol("MergeDeleteAction");
22
+ export class MergeInsertAction extends MergeAction {
23
+ constructor(params) {
24
+ var _a, _b;
25
+ super();
26
+ this.columns = params.columns
27
+ ? params.columns.map(col => (typeof col === "string" ? new IdentifierString(col) : col))
28
+ : null;
29
+ this.values = (_a = params.values) !== null && _a !== void 0 ? _a : null;
30
+ this.defaultValues = (_b = params.defaultValues) !== null && _b !== void 0 ? _b : false;
31
+ this.valuesLeadingComments = params.valuesLeadingComments ? [...params.valuesLeadingComments] : null;
32
+ }
33
+ addValuesLeadingComments(comments) {
34
+ if (!comments || comments.length === 0) {
35
+ return;
36
+ }
37
+ if (!this.valuesLeadingComments) {
38
+ this.valuesLeadingComments = [];
39
+ }
40
+ for (const comment of comments) {
41
+ if (!this.valuesLeadingComments.includes(comment)) {
42
+ this.valuesLeadingComments.push(comment);
43
+ }
44
+ }
45
+ }
46
+ getValuesLeadingComments() {
47
+ return this.valuesLeadingComments ? [...this.valuesLeadingComments] : [];
48
+ }
49
+ }
50
+ MergeInsertAction.kind = Symbol("MergeInsertAction");
51
+ export class MergeDoNothingAction extends MergeAction {
52
+ }
53
+ MergeDoNothingAction.kind = Symbol("MergeDoNothingAction");
54
+ export class MergeWhenClause extends SqlComponent {
55
+ constructor(matchType, action, condition, options) {
56
+ super();
57
+ this.matchType = matchType;
58
+ this.action = action;
59
+ this.condition = condition !== null && condition !== void 0 ? condition : null;
60
+ this.thenLeadingComments = (options === null || options === void 0 ? void 0 : options.thenLeadingComments)
61
+ ? [...options.thenLeadingComments]
62
+ : null;
63
+ }
64
+ addThenLeadingComments(comments) {
65
+ if (!comments || comments.length === 0) {
66
+ return;
67
+ }
68
+ if (!this.thenLeadingComments) {
69
+ this.thenLeadingComments = [];
70
+ }
71
+ for (const comment of comments) {
72
+ if (!this.thenLeadingComments.includes(comment)) {
73
+ this.thenLeadingComments.push(comment);
74
+ }
75
+ }
76
+ }
77
+ getThenLeadingComments() {
78
+ return this.thenLeadingComments ? [...this.thenLeadingComments] : [];
79
+ }
80
+ }
81
+ MergeWhenClause.kind = Symbol("MergeWhenClause");
82
+ export class MergeQuery extends SqlComponent {
83
+ constructor(params) {
84
+ var _a;
85
+ super();
86
+ this.withClause = (_a = params.withClause) !== null && _a !== void 0 ? _a : null;
87
+ this.target = params.target;
88
+ this.source = params.source;
89
+ this.onCondition = params.onCondition;
90
+ this.whenClauses = params.whenClauses;
91
+ }
92
+ }
93
+ MergeQuery.kind = Symbol("MergeQuery");
94
+ //# sourceMappingURL=MergeQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MergeQuery.js","sourceRoot":"","sources":["../../../../src/models/MergeQuery.ts"],"names":[],"mappings":"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"}