rawsql-ts 0.12.0 → 0.13.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 (537) hide show
  1. package/LICENSE +21 -0
  2. package/dist/esm/index.js +11 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +16 -16
  5. package/dist/esm/index.min.js.map +3 -3
  6. package/dist/esm/src/index.d.ts +12 -0
  7. package/dist/esm/src/index.js +11 -0
  8. package/dist/esm/src/index.js.map +1 -1
  9. package/dist/esm/src/models/Clause.d.ts +7 -3
  10. package/dist/esm/src/models/Clause.js +17 -4
  11. package/dist/esm/src/models/Clause.js.map +1 -1
  12. package/dist/esm/src/models/DDLStatements.d.ts +14 -2
  13. package/dist/esm/src/models/DDLStatements.js +12 -0
  14. package/dist/esm/src/models/DDLStatements.js.map +1 -1
  15. package/dist/esm/src/models/InsertQuery.d.ts +1 -4
  16. package/dist/esm/src/models/InsertQuery.js +3 -5
  17. package/dist/esm/src/models/InsertQuery.js.map +1 -1
  18. package/dist/esm/src/models/SqlPrintToken.d.ts +1 -0
  19. package/dist/esm/src/models/SqlPrintToken.js +1 -0
  20. package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
  21. package/dist/esm/src/models/TableDefinitionModel.d.ts +39 -0
  22. package/dist/esm/src/models/TableDefinitionModel.js +77 -0
  23. package/dist/esm/src/models/TableDefinitionModel.js.map +1 -0
  24. package/dist/esm/src/models/ValuesQuery.d.ts +2 -0
  25. package/dist/esm/src/models/ValuesQuery.js +1 -0
  26. package/dist/esm/src/models/ValuesQuery.js.map +1 -1
  27. package/dist/esm/src/parsers/AlterTableParser.js +1 -1
  28. package/dist/esm/src/parsers/AlterTableParser.js.map +1 -1
  29. package/dist/esm/src/parsers/InsertQueryParser.js +4 -1
  30. package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -1
  31. package/dist/esm/src/parsers/ReturningClauseParser.js +33 -47
  32. package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -1
  33. package/dist/esm/src/parsers/SqlParser.d.ts +0 -1
  34. package/dist/esm/src/parsers/SqlParser.js +44 -58
  35. package/dist/esm/src/parsers/SqlParser.js.map +1 -1
  36. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +1 -0
  37. package/dist/esm/src/parsers/SqlPrintTokenParser.js +23 -5
  38. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  39. package/dist/esm/src/tokenReaders/LiteralTokenReader.js +7 -0
  40. package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  41. package/dist/esm/src/transformers/DDLDiffGenerator.d.ts +14 -0
  42. package/dist/esm/src/transformers/DDLDiffGenerator.js +197 -0
  43. package/dist/esm/src/transformers/DDLDiffGenerator.js.map +1 -0
  44. package/dist/esm/src/transformers/DDLGeneralizer.d.ts +13 -0
  45. package/dist/esm/src/transformers/DDLGeneralizer.js +98 -0
  46. package/dist/esm/src/transformers/DDLGeneralizer.js.map +1 -0
  47. package/dist/esm/src/transformers/DDLToFixtureConverter.d.ts +19 -0
  48. package/dist/esm/src/transformers/DDLToFixtureConverter.js +202 -0
  49. package/dist/esm/src/transformers/DDLToFixtureConverter.js.map +1 -0
  50. package/dist/esm/src/transformers/DeleteResultSelectConverter.d.ts +53 -0
  51. package/dist/esm/src/transformers/DeleteResultSelectConverter.js +394 -0
  52. package/dist/esm/src/transformers/DeleteResultSelectConverter.js.map +1 -0
  53. package/dist/esm/src/transformers/FixtureCteBuilder.d.ts +60 -0
  54. package/dist/esm/src/transformers/FixtureCteBuilder.js +147 -0
  55. package/dist/esm/src/transformers/FixtureCteBuilder.js.map +1 -0
  56. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js +5 -2
  57. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -1
  58. package/dist/esm/src/transformers/InsertResultSelectConverter.d.ts +64 -0
  59. package/dist/esm/src/transformers/InsertResultSelectConverter.js +495 -0
  60. package/dist/esm/src/transformers/InsertResultSelectConverter.js.map +1 -0
  61. package/dist/esm/src/transformers/MergeResultSelectConverter.d.ts +38 -0
  62. package/dist/esm/src/transformers/MergeResultSelectConverter.js +306 -0
  63. package/dist/esm/src/transformers/MergeResultSelectConverter.js.map +1 -0
  64. package/dist/esm/src/transformers/QueryBuilder.d.ts +11 -0
  65. package/dist/esm/src/transformers/QueryBuilder.js +19 -3
  66. package/dist/esm/src/transformers/QueryBuilder.js.map +1 -1
  67. package/dist/esm/src/transformers/SelectResultSelectConverter.d.ts +10 -0
  68. package/dist/esm/src/transformers/SelectResultSelectConverter.js +32 -0
  69. package/dist/esm/src/transformers/SelectResultSelectConverter.js.map +1 -0
  70. package/dist/esm/src/transformers/SimulatedSelectConverter.d.ts +23 -0
  71. package/dist/esm/src/transformers/SimulatedSelectConverter.js +61 -0
  72. package/dist/esm/src/transformers/SimulatedSelectConverter.js.map +1 -0
  73. package/dist/esm/src/transformers/UpdateResultSelectConverter.d.ts +51 -0
  74. package/dist/esm/src/transformers/UpdateResultSelectConverter.js +340 -0
  75. package/dist/esm/src/transformers/UpdateResultSelectConverter.js.map +1 -0
  76. package/dist/esm/src/utils/SelectQueryWithClauseHelper.d.ts +12 -0
  77. package/dist/esm/src/utils/SelectQueryWithClauseHelper.js +43 -0
  78. package/dist/esm/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
  79. package/dist/esm/src/utils/ValueComponentRewriter.d.ts +3 -0
  80. package/dist/esm/src/utils/ValueComponentRewriter.js +180 -0
  81. package/dist/esm/src/utils/ValueComponentRewriter.js.map +1 -0
  82. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  83. package/dist/formatters/OriginalFormatRestorer.js +139 -0
  84. package/dist/formatters/OriginalFormatRestorer.js.map +1 -0
  85. package/dist/index.js +144 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/index.min.js +17 -17
  88. package/dist/index.min.js.map +3 -3
  89. package/dist/models/BinarySelectQuery.js +198 -0
  90. package/dist/models/BinarySelectQuery.js.map +1 -0
  91. package/dist/models/CTEError.js +37 -0
  92. package/dist/models/CTEError.js.map +1 -0
  93. package/dist/models/Clause.js +535 -0
  94. package/dist/models/Clause.js.map +1 -0
  95. package/dist/models/CreateTableQuery.js +135 -0
  96. package/dist/models/CreateTableQuery.js.map +1 -0
  97. package/dist/models/DDLStatements.js +275 -0
  98. package/dist/models/DDLStatements.js.map +1 -0
  99. package/dist/models/DeleteQuery.js +20 -0
  100. package/dist/models/DeleteQuery.js.map +1 -0
  101. package/dist/models/FormattingLexeme.js +3 -0
  102. package/dist/models/FormattingLexeme.js.map +1 -0
  103. package/dist/models/HintClause.js +41 -0
  104. package/dist/models/HintClause.js.map +1 -0
  105. package/dist/models/InsertQuery.js +23 -0
  106. package/dist/models/InsertQuery.js.map +1 -0
  107. package/dist/models/KeywordTrie.js +54 -0
  108. package/dist/models/KeywordTrie.js.map +1 -0
  109. package/dist/models/Lexeme.js +22 -0
  110. package/dist/models/Lexeme.js.map +1 -0
  111. package/dist/models/MergeQuery.js +104 -0
  112. package/dist/models/MergeQuery.js.map +1 -0
  113. package/dist/models/SelectQuery.js +22 -0
  114. package/dist/models/SelectQuery.js.map +1 -0
  115. package/dist/models/SimpleSelectQuery.js +648 -0
  116. package/dist/models/SimpleSelectQuery.js.map +1 -0
  117. package/dist/models/SqlComponent.js +73 -0
  118. package/dist/models/SqlComponent.js.map +1 -0
  119. package/dist/models/SqlPrintToken.js +143 -0
  120. package/dist/models/SqlPrintToken.js.map +1 -0
  121. package/dist/models/TableDefinitionModel.js +86 -0
  122. package/dist/models/TableDefinitionModel.js.map +1 -0
  123. package/dist/models/UpdateQuery.js +29 -0
  124. package/dist/models/UpdateQuery.js.map +1 -0
  125. package/dist/models/ValueComponent.js +380 -0
  126. package/dist/models/ValueComponent.js.map +1 -0
  127. package/dist/models/ValuesQuery.js +62 -0
  128. package/dist/models/ValuesQuery.js.map +1 -0
  129. package/dist/parsers/AlterTableParser.js +490 -0
  130. package/dist/parsers/AlterTableParser.js.map +1 -0
  131. package/dist/parsers/AnalyzeStatementParser.js +94 -0
  132. package/dist/parsers/AnalyzeStatementParser.js.map +1 -0
  133. package/dist/parsers/CommandExpressionParser.js +213 -0
  134. package/dist/parsers/CommandExpressionParser.js.map +1 -0
  135. package/dist/parsers/CommonTableParser.js +177 -0
  136. package/dist/parsers/CommonTableParser.js.map +1 -0
  137. package/dist/parsers/CreateIndexParser.js +241 -0
  138. package/dist/parsers/CreateIndexParser.js.map +1 -0
  139. package/dist/parsers/CreateTableParser.js +738 -0
  140. package/dist/parsers/CreateTableParser.js.map +1 -0
  141. package/dist/parsers/DeleteClauseParser.js +37 -0
  142. package/dist/parsers/DeleteClauseParser.js.map +1 -0
  143. package/dist/parsers/DeleteQueryParser.js +77 -0
  144. package/dist/parsers/DeleteQueryParser.js.map +1 -0
  145. package/dist/parsers/DropConstraintParser.js +51 -0
  146. package/dist/parsers/DropConstraintParser.js.map +1 -0
  147. package/dist/parsers/DropIndexParser.js +73 -0
  148. package/dist/parsers/DropIndexParser.js.map +1 -0
  149. package/dist/parsers/DropTableParser.js +63 -0
  150. package/dist/parsers/DropTableParser.js.map +1 -0
  151. package/dist/parsers/ExplainStatementParser.js +189 -0
  152. package/dist/parsers/ExplainStatementParser.js.map +1 -0
  153. package/dist/parsers/FetchClauseParser.js +89 -0
  154. package/dist/parsers/FetchClauseParser.js.map +1 -0
  155. package/dist/parsers/ForClauseParser.js +58 -0
  156. package/dist/parsers/ForClauseParser.js.map +1 -0
  157. package/dist/parsers/FromClauseParser.js +54 -0
  158. package/dist/parsers/FromClauseParser.js.map +1 -0
  159. package/dist/parsers/FullNameParser.js +110 -0
  160. package/dist/parsers/FullNameParser.js.map +1 -0
  161. package/dist/parsers/FunctionExpressionParser.js +524 -0
  162. package/dist/parsers/FunctionExpressionParser.js.map +1 -0
  163. package/dist/parsers/GroupByParser.js +58 -0
  164. package/dist/parsers/GroupByParser.js.map +1 -0
  165. package/dist/parsers/HavingParser.js +36 -0
  166. package/dist/parsers/HavingParser.js.map +1 -0
  167. package/dist/parsers/IdentifierDecorator.js +17 -0
  168. package/dist/parsers/IdentifierDecorator.js.map +1 -0
  169. package/dist/parsers/IdentifierParser.js +15 -0
  170. package/dist/parsers/IdentifierParser.js.map +1 -0
  171. package/dist/parsers/InsertQueryParser.js +162 -0
  172. package/dist/parsers/InsertQueryParser.js.map +1 -0
  173. package/dist/parsers/JoinClauseParser.js +117 -0
  174. package/dist/parsers/JoinClauseParser.js.map +1 -0
  175. package/dist/parsers/JoinOnClauseParser.js +21 -0
  176. package/dist/parsers/JoinOnClauseParser.js.map +1 -0
  177. package/dist/parsers/JoinUsingClauseParser.js +23 -0
  178. package/dist/parsers/JoinUsingClauseParser.js.map +1 -0
  179. package/dist/parsers/KeywordParser.js +99 -0
  180. package/dist/parsers/KeywordParser.js.map +1 -0
  181. package/dist/parsers/LimitClauseParser.js +38 -0
  182. package/dist/parsers/LimitClauseParser.js.map +1 -0
  183. package/dist/parsers/LiteralParser.js +48 -0
  184. package/dist/parsers/LiteralParser.js.map +1 -0
  185. package/dist/parsers/MergeQueryParser.js +483 -0
  186. package/dist/parsers/MergeQueryParser.js.map +1 -0
  187. package/dist/parsers/OffsetClauseParser.js +42 -0
  188. package/dist/parsers/OffsetClauseParser.js.map +1 -0
  189. package/dist/parsers/OrderByClauseParser.js +108 -0
  190. package/dist/parsers/OrderByClauseParser.js.map +1 -0
  191. package/dist/parsers/OverExpressionParser.js +44 -0
  192. package/dist/parsers/OverExpressionParser.js.map +1 -0
  193. package/dist/parsers/ParameterDecorator.js +40 -0
  194. package/dist/parsers/ParameterDecorator.js.map +1 -0
  195. package/dist/parsers/ParameterExpressionParser.js +24 -0
  196. package/dist/parsers/ParameterExpressionParser.js.map +1 -0
  197. package/dist/parsers/ParenExpressionParser.js +109 -0
  198. package/dist/parsers/ParenExpressionParser.js.map +1 -0
  199. package/dist/parsers/ParseError.js +25 -0
  200. package/dist/parsers/ParseError.js.map +1 -0
  201. package/dist/parsers/PartitionByParser.js +53 -0
  202. package/dist/parsers/PartitionByParser.js.map +1 -0
  203. package/dist/parsers/ReturningClauseParser.js +64 -0
  204. package/dist/parsers/ReturningClauseParser.js.map +1 -0
  205. package/dist/parsers/SelectClauseParser.js +244 -0
  206. package/dist/parsers/SelectClauseParser.js.map +1 -0
  207. package/dist/parsers/SelectQueryParser.js +564 -0
  208. package/dist/parsers/SelectQueryParser.js.map +1 -0
  209. package/dist/parsers/SequenceParser.js +245 -0
  210. package/dist/parsers/SequenceParser.js.map +1 -0
  211. package/dist/parsers/SetClauseParser.js +125 -0
  212. package/dist/parsers/SetClauseParser.js.map +1 -0
  213. package/dist/parsers/SourceAliasExpressionParser.js +60 -0
  214. package/dist/parsers/SourceAliasExpressionParser.js.map +1 -0
  215. package/dist/parsers/SourceExpressionParser.js +69 -0
  216. package/dist/parsers/SourceExpressionParser.js.map +1 -0
  217. package/dist/parsers/SourceParser.js +144 -0
  218. package/dist/parsers/SourceParser.js.map +1 -0
  219. package/dist/parsers/SqlParser.js +431 -0
  220. package/dist/parsers/SqlParser.js.map +1 -0
  221. package/dist/parsers/SqlPrintTokenParser.js +3289 -0
  222. package/dist/parsers/SqlPrintTokenParser.js.map +1 -0
  223. package/dist/parsers/SqlTokenizer.js +553 -0
  224. package/dist/parsers/SqlTokenizer.js.map +1 -0
  225. package/dist/parsers/StringSpecifierExpressionParser.js +22 -0
  226. package/dist/parsers/StringSpecifierExpressionParser.js.map +1 -0
  227. package/dist/parsers/UnaryExpressionParser.js +39 -0
  228. package/dist/parsers/UnaryExpressionParser.js.map +1 -0
  229. package/dist/parsers/UpdateClauseParser.js +21 -0
  230. package/dist/parsers/UpdateClauseParser.js.map +1 -0
  231. package/dist/parsers/UpdateQueryParser.js +98 -0
  232. package/dist/parsers/UpdateQueryParser.js.map +1 -0
  233. package/dist/parsers/UsingClauseParser.js +33 -0
  234. package/dist/parsers/UsingClauseParser.js.map +1 -0
  235. package/dist/parsers/ValueParser.js +562 -0
  236. package/dist/parsers/ValueParser.js.map +1 -0
  237. package/dist/parsers/ValuesQueryParser.js +112 -0
  238. package/dist/parsers/ValuesQueryParser.js.map +1 -0
  239. package/dist/parsers/WhereClauseParser.js +51 -0
  240. package/dist/parsers/WhereClauseParser.js.map +1 -0
  241. package/dist/parsers/WindowClauseParser.js +57 -0
  242. package/dist/parsers/WindowClauseParser.js.map +1 -0
  243. package/dist/parsers/WindowExpressionParser.js +163 -0
  244. package/dist/parsers/WindowExpressionParser.js.map +1 -0
  245. package/dist/parsers/WithClauseParser.js +165 -0
  246. package/dist/parsers/WithClauseParser.js.map +1 -0
  247. package/dist/parsers/utils/LexemeCommentUtils.js +29 -0
  248. package/dist/parsers/utils/LexemeCommentUtils.js.map +1 -0
  249. package/dist/reporting/models/DataFlowEdge.js +58 -0
  250. package/dist/reporting/models/DataFlowEdge.js.map +1 -0
  251. package/dist/reporting/models/DataFlowGraph.js +138 -0
  252. package/dist/reporting/models/DataFlowGraph.js.map +1 -0
  253. package/dist/reporting/models/DataFlowNode.js +148 -0
  254. package/dist/reporting/models/DataFlowNode.js.map +1 -0
  255. package/dist/reporting/services/CTEHandler.js +58 -0
  256. package/dist/reporting/services/CTEHandler.js.map +1 -0
  257. package/dist/reporting/services/DataSourceHandler.js +95 -0
  258. package/dist/reporting/services/DataSourceHandler.js.map +1 -0
  259. package/dist/reporting/services/JoinHandler.js +84 -0
  260. package/dist/reporting/services/JoinHandler.js.map +1 -0
  261. package/dist/reporting/services/ProcessHandler.js +26 -0
  262. package/dist/reporting/services/ProcessHandler.js.map +1 -0
  263. package/dist/src/index.d.ts +15 -0
  264. package/dist/src/index.js +13 -1
  265. package/dist/src/index.js.map +1 -1
  266. package/dist/src/models/Clause.d.ts +7 -3
  267. package/dist/src/models/Clause.js +16 -3
  268. package/dist/src/models/Clause.js.map +1 -1
  269. package/dist/src/models/DDLStatements.d.ts +97 -2
  270. package/dist/src/models/DDLStatements.js +14 -1
  271. package/dist/src/models/DDLStatements.js.map +1 -1
  272. package/dist/src/models/InsertQuery.d.ts +1 -4
  273. package/dist/src/models/InsertQuery.js +3 -5
  274. package/dist/src/models/InsertQuery.js.map +1 -1
  275. package/dist/src/models/SqlPrintToken.d.ts +6 -0
  276. package/dist/src/models/SqlPrintToken.js +1 -0
  277. package/dist/src/models/SqlPrintToken.js.map +1 -1
  278. package/dist/src/models/TableDefinitionModel.d.ts +41 -0
  279. package/dist/src/models/TableDefinitionModel.js +85 -0
  280. package/dist/src/models/TableDefinitionModel.js.map +1 -0
  281. package/dist/src/models/ValueComponent.d.ts +2 -1
  282. package/dist/src/models/ValuesQuery.d.ts +2 -0
  283. package/dist/src/models/ValuesQuery.js +1 -0
  284. package/dist/src/models/ValuesQuery.js.map +1 -1
  285. package/dist/src/parsers/AlterTableParser.d.ts +1 -0
  286. package/dist/src/parsers/AlterTableParser.js +26 -5
  287. package/dist/src/parsers/AlterTableParser.js.map +1 -1
  288. package/dist/src/parsers/FunctionExpressionParser.d.ts +1 -0
  289. package/dist/src/parsers/InsertQueryParser.js +4 -1
  290. package/dist/src/parsers/InsertQueryParser.js.map +1 -1
  291. package/dist/src/parsers/ReturningClauseParser.js +33 -47
  292. package/dist/src/parsers/ReturningClauseParser.js.map +1 -1
  293. package/dist/src/parsers/SequenceParser.d.ts +16 -0
  294. package/dist/src/parsers/SqlParser.d.ts +4 -3
  295. package/dist/src/parsers/SqlParser.js +44 -63
  296. package/dist/src/parsers/SqlParser.js.map +1 -1
  297. package/dist/src/parsers/SqlPrintTokenParser.d.ts +9 -0
  298. package/dist/src/parsers/SqlPrintTokenParser.js +22 -4
  299. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  300. package/dist/src/parsers/SqlTokenizer.d.ts +1 -0
  301. package/dist/src/tokenReaders/LiteralTokenReader.js +7 -0
  302. package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  303. package/dist/src/transformers/DDLDiffGenerator.d.ts +18 -0
  304. package/dist/src/transformers/DDLDiffGenerator.js +313 -0
  305. package/dist/src/transformers/DDLDiffGenerator.js.map +1 -0
  306. package/dist/src/transformers/DDLGeneralizer.d.ts +13 -0
  307. package/dist/src/transformers/DDLGeneralizer.js +119 -0
  308. package/dist/src/transformers/DDLGeneralizer.js.map +1 -0
  309. package/dist/src/transformers/DDLToFixtureConverter.d.ts +19 -0
  310. package/dist/src/transformers/DDLToFixtureConverter.js +206 -0
  311. package/dist/src/transformers/DDLToFixtureConverter.js.map +1 -0
  312. package/dist/src/transformers/DeleteResultSelectConverter.d.ts +53 -0
  313. package/dist/src/transformers/DeleteResultSelectConverter.js +398 -0
  314. package/dist/src/transformers/DeleteResultSelectConverter.js.map +1 -0
  315. package/dist/src/transformers/FixtureCteBuilder.d.ts +60 -0
  316. package/dist/src/transformers/FixtureCteBuilder.js +151 -0
  317. package/dist/src/transformers/FixtureCteBuilder.js.map +1 -0
  318. package/dist/src/transformers/InsertQuerySelectValuesConverter.js +5 -2
  319. package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -1
  320. package/dist/src/transformers/InsertResultSelectConverter.d.ts +67 -0
  321. package/dist/src/transformers/InsertResultSelectConverter.js +499 -0
  322. package/dist/src/transformers/InsertResultSelectConverter.js.map +1 -0
  323. package/dist/src/transformers/MergeResultSelectConverter.d.ts +38 -0
  324. package/dist/src/transformers/MergeResultSelectConverter.js +310 -0
  325. package/dist/src/transformers/MergeResultSelectConverter.js.map +1 -0
  326. package/dist/src/transformers/QueryBuilder.d.ts +11 -0
  327. package/dist/src/transformers/QueryBuilder.js +19 -3
  328. package/dist/src/transformers/QueryBuilder.js.map +1 -1
  329. package/dist/src/transformers/SelectResultSelectConverter.d.ts +10 -0
  330. package/dist/src/transformers/SelectResultSelectConverter.js +36 -0
  331. package/dist/src/transformers/SelectResultSelectConverter.js.map +1 -0
  332. package/dist/src/transformers/SimulatedSelectConverter.d.ts +23 -0
  333. package/dist/src/transformers/SimulatedSelectConverter.js +65 -0
  334. package/dist/src/transformers/SimulatedSelectConverter.js.map +1 -0
  335. package/dist/src/transformers/UpdateResultSelectConverter.d.ts +51 -0
  336. package/dist/src/transformers/UpdateResultSelectConverter.js +344 -0
  337. package/dist/src/transformers/UpdateResultSelectConverter.js.map +1 -0
  338. package/dist/src/types/GenericFixture.d.ts +17 -0
  339. package/dist/src/utils/SelectQueryWithClauseHelper.d.ts +12 -0
  340. package/dist/src/utils/SelectQueryWithClauseHelper.js +47 -0
  341. package/dist/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
  342. package/dist/src/utils/TableNameUtils.d.ts +10 -0
  343. package/dist/src/utils/ValueComponentRewriter.d.ts +3 -0
  344. package/dist/src/utils/ValueComponentRewriter.js +183 -0
  345. package/dist/src/utils/ValueComponentRewriter.js.map +1 -0
  346. package/dist/tokenReaders/BaseTokenReader.js +86 -0
  347. package/dist/tokenReaders/BaseTokenReader.js.map +1 -0
  348. package/dist/tokenReaders/CommandTokenReader.js +221 -0
  349. package/dist/tokenReaders/CommandTokenReader.js.map +1 -0
  350. package/dist/tokenReaders/EscapedIdentifierTokenReader.js +99 -0
  351. package/dist/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
  352. package/dist/tokenReaders/FunctionTokenReader.js +47 -0
  353. package/dist/tokenReaders/FunctionTokenReader.js.map +1 -0
  354. package/dist/tokenReaders/IdentifierTokenReader.js +34 -0
  355. package/dist/tokenReaders/IdentifierTokenReader.js.map +1 -0
  356. package/dist/tokenReaders/LiteralTokenReader.js +329 -0
  357. package/dist/tokenReaders/LiteralTokenReader.js.map +1 -0
  358. package/dist/tokenReaders/OperatorTokenReader.js +152 -0
  359. package/dist/tokenReaders/OperatorTokenReader.js.map +1 -0
  360. package/dist/tokenReaders/ParameterTokenReader.js +190 -0
  361. package/dist/tokenReaders/ParameterTokenReader.js.map +1 -0
  362. package/dist/tokenReaders/StringSpecifierTokenReader.js +31 -0
  363. package/dist/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
  364. package/dist/tokenReaders/SymbolTokenReader.js +35 -0
  365. package/dist/tokenReaders/SymbolTokenReader.js.map +1 -0
  366. package/dist/tokenReaders/TokenReaderManager.js +110 -0
  367. package/dist/tokenReaders/TokenReaderManager.js.map +1 -0
  368. package/dist/tokenReaders/TypeTokenReader.js +69 -0
  369. package/dist/tokenReaders/TypeTokenReader.js.map +1 -0
  370. package/dist/transformers/AliasRenamer.js +600 -0
  371. package/dist/transformers/AliasRenamer.js.map +1 -0
  372. package/dist/transformers/CTEBuilder.js +188 -0
  373. package/dist/transformers/CTEBuilder.js.map +1 -0
  374. package/dist/transformers/CTECollector.js +409 -0
  375. package/dist/transformers/CTECollector.js.map +1 -0
  376. package/dist/transformers/CTEComposer.js +302 -0
  377. package/dist/transformers/CTEComposer.js.map +1 -0
  378. package/dist/transformers/CTEDependencyAnalyzer.js +285 -0
  379. package/dist/transformers/CTEDependencyAnalyzer.js.map +1 -0
  380. package/dist/transformers/CTEDependencyTracer.js +253 -0
  381. package/dist/transformers/CTEDependencyTracer.js.map +1 -0
  382. package/dist/transformers/CTEDisabler.js +355 -0
  383. package/dist/transformers/CTEDisabler.js.map +1 -0
  384. package/dist/transformers/CTEInjector.js +83 -0
  385. package/dist/transformers/CTEInjector.js.map +1 -0
  386. package/dist/transformers/CTENormalizer.js +46 -0
  387. package/dist/transformers/CTENormalizer.js.map +1 -0
  388. package/dist/transformers/CTEQueryDecomposer.js +589 -0
  389. package/dist/transformers/CTEQueryDecomposer.js.map +1 -0
  390. package/dist/transformers/CTERenamer.js +486 -0
  391. package/dist/transformers/CTERenamer.js.map +1 -0
  392. package/dist/transformers/CTETableReferenceCollector.js +358 -0
  393. package/dist/transformers/CTETableReferenceCollector.js.map +1 -0
  394. package/dist/transformers/ColumnReferenceCollector.js +478 -0
  395. package/dist/transformers/ColumnReferenceCollector.js.map +1 -0
  396. package/dist/transformers/DDLDiffGenerator.js +313 -0
  397. package/dist/transformers/DDLDiffGenerator.js.map +1 -0
  398. package/dist/transformers/DDLGeneralizer.js +119 -0
  399. package/dist/transformers/DDLGeneralizer.js.map +1 -0
  400. package/dist/transformers/DDLToFixtureConverter.js +206 -0
  401. package/dist/transformers/DDLToFixtureConverter.js.map +1 -0
  402. package/dist/transformers/DeleteResultSelectConverter.js +414 -0
  403. package/dist/transformers/DeleteResultSelectConverter.js.map +1 -0
  404. package/dist/transformers/DynamicQueryBuilder.js +164 -0
  405. package/dist/transformers/DynamicQueryBuilder.js.map +1 -0
  406. package/dist/transformers/EnhancedJsonMapping.js +223 -0
  407. package/dist/transformers/EnhancedJsonMapping.js.map +1 -0
  408. package/dist/transformers/FilterableItemCollector.js +259 -0
  409. package/dist/transformers/FilterableItemCollector.js.map +1 -0
  410. package/dist/transformers/FixtureCteBuilder.js +151 -0
  411. package/dist/transformers/FixtureCteBuilder.js.map +1 -0
  412. package/dist/transformers/FormatOptionResolver.js +67 -0
  413. package/dist/transformers/FormatOptionResolver.js.map +1 -0
  414. package/dist/transformers/Formatter.js +38 -0
  415. package/dist/transformers/Formatter.js.map +1 -0
  416. package/dist/transformers/InsertQuerySelectValuesConverter.js +125 -0
  417. package/dist/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
  418. package/dist/transformers/InsertResultSelectConverter.js +589 -0
  419. package/dist/transformers/InsertResultSelectConverter.js.map +1 -0
  420. package/dist/transformers/JoinAggregationDecomposer.js +497 -0
  421. package/dist/transformers/JoinAggregationDecomposer.js.map +1 -0
  422. package/dist/transformers/JsonMappingConverter.js +392 -0
  423. package/dist/transformers/JsonMappingConverter.js.map +1 -0
  424. package/dist/transformers/JsonMappingUnifier.js +216 -0
  425. package/dist/transformers/JsonMappingUnifier.js.map +1 -0
  426. package/dist/transformers/LinePrinter.js +148 -0
  427. package/dist/transformers/LinePrinter.js.map +1 -0
  428. package/dist/transformers/MergeResultSelectConverter.js +310 -0
  429. package/dist/transformers/MergeResultSelectConverter.js.map +1 -0
  430. package/dist/transformers/ModelDrivenJsonMapping.js +122 -0
  431. package/dist/transformers/ModelDrivenJsonMapping.js.map +1 -0
  432. package/dist/transformers/OnelineFormattingHelper.js +99 -0
  433. package/dist/transformers/OnelineFormattingHelper.js.map +1 -0
  434. package/dist/transformers/ParameterCollector.js +37 -0
  435. package/dist/transformers/ParameterCollector.js.map +1 -0
  436. package/dist/transformers/PostgresArrayEntityCteBuilder.js +458 -0
  437. package/dist/transformers/PostgresArrayEntityCteBuilder.js.map +1 -0
  438. package/dist/transformers/PostgresJsonQueryBuilder.js +245 -0
  439. package/dist/transformers/PostgresJsonQueryBuilder.js.map +1 -0
  440. package/dist/transformers/PostgresObjectEntityCteBuilder.js +347 -0
  441. package/dist/transformers/PostgresObjectEntityCteBuilder.js.map +1 -0
  442. package/dist/transformers/QueryBuilder.js +649 -0
  443. package/dist/transformers/QueryBuilder.js.map +1 -0
  444. package/dist/transformers/QueryFlowDiagramGenerator.js +157 -0
  445. package/dist/transformers/QueryFlowDiagramGenerator.js.map +1 -0
  446. package/dist/transformers/SchemaCollector.js +523 -0
  447. package/dist/transformers/SchemaCollector.js.map +1 -0
  448. package/dist/transformers/SelectResultSelectConverter.js +36 -0
  449. package/dist/transformers/SelectResultSelectConverter.js.map +1 -0
  450. package/dist/transformers/SelectValueCollector.js +244 -0
  451. package/dist/transformers/SelectValueCollector.js.map +1 -0
  452. package/dist/transformers/SelectableColumnCollector.js +674 -0
  453. package/dist/transformers/SelectableColumnCollector.js.map +1 -0
  454. package/dist/transformers/SimulatedSelectConverter.js +65 -0
  455. package/dist/transformers/SimulatedSelectConverter.js.map +1 -0
  456. package/dist/transformers/SmartRenamer.js +422 -0
  457. package/dist/transformers/SmartRenamer.js.map +1 -0
  458. package/dist/transformers/SqlFormatter.js +77 -0
  459. package/dist/transformers/SqlFormatter.js.map +1 -0
  460. package/dist/transformers/SqlIdentifierRenamer.js +504 -0
  461. package/dist/transformers/SqlIdentifierRenamer.js.map +1 -0
  462. package/dist/transformers/SqlOutputToken.js +13 -0
  463. package/dist/transformers/SqlOutputToken.js.map +1 -0
  464. package/dist/transformers/SqlPaginationInjector.js +108 -0
  465. package/dist/transformers/SqlPaginationInjector.js.map +1 -0
  466. package/dist/transformers/SqlParamInjector.js +802 -0
  467. package/dist/transformers/SqlParamInjector.js.map +1 -0
  468. package/dist/transformers/SqlParameterBinder.js +70 -0
  469. package/dist/transformers/SqlParameterBinder.js.map +1 -0
  470. package/dist/transformers/SqlPrinter.js +1478 -0
  471. package/dist/transformers/SqlPrinter.js.map +1 -0
  472. package/dist/transformers/SqlSortInjector.js +153 -0
  473. package/dist/transformers/SqlSortInjector.js.map +1 -0
  474. package/dist/transformers/TableColumnResolver.js +3 -0
  475. package/dist/transformers/TableColumnResolver.js.map +1 -0
  476. package/dist/transformers/TableSourceCollector.js +439 -0
  477. package/dist/transformers/TableSourceCollector.js.map +1 -0
  478. package/dist/transformers/TypeTransformationPostProcessor.js +363 -0
  479. package/dist/transformers/TypeTransformationPostProcessor.js.map +1 -0
  480. package/dist/transformers/UpdateResultSelectConverter.js +359 -0
  481. package/dist/transformers/UpdateResultSelectConverter.js.map +1 -0
  482. package/dist/transformers/UpstreamSelectQueryFinder.js +184 -0
  483. package/dist/transformers/UpstreamSelectQueryFinder.js.map +1 -0
  484. package/dist/tsconfig.tsbuildinfo +1 -1
  485. package/dist/types/Formatting.js +3 -0
  486. package/dist/types/Formatting.js.map +1 -0
  487. package/dist/types/GenericFixture.js +3 -0
  488. package/dist/types/GenericFixture.js.map +1 -0
  489. package/dist/utils/CTERegionDetector.js +464 -0
  490. package/dist/utils/CTERegionDetector.js.map +1 -0
  491. package/dist/utils/CommentEditor.js +345 -0
  492. package/dist/utils/CommentEditor.js.map +1 -0
  493. package/dist/utils/CommentUtils.js +69 -0
  494. package/dist/utils/CommentUtils.js.map +1 -0
  495. package/dist/utils/CursorContextAnalyzer.js +338 -0
  496. package/dist/utils/CursorContextAnalyzer.js.map +1 -0
  497. package/dist/utils/IntelliSenseApi.js +292 -0
  498. package/dist/utils/IntelliSenseApi.js.map +1 -0
  499. package/dist/utils/JsonSchemaValidator.js +215 -0
  500. package/dist/utils/JsonSchemaValidator.js.map +1 -0
  501. package/dist/utils/KeywordCache.js +206 -0
  502. package/dist/utils/KeywordCache.js.map +1 -0
  503. package/dist/utils/LexemeCursor.js +314 -0
  504. package/dist/utils/LexemeCursor.js.map +1 -0
  505. package/dist/utils/MultiQuerySplitter.js +292 -0
  506. package/dist/utils/MultiQuerySplitter.js.map +1 -0
  507. package/dist/utils/OperatorPrecedence.js +107 -0
  508. package/dist/utils/OperatorPrecedence.js.map +1 -0
  509. package/dist/utils/ParameterDetector.js +53 -0
  510. package/dist/utils/ParameterDetector.js.map +1 -0
  511. package/dist/utils/ParameterHelper.js +31 -0
  512. package/dist/utils/ParameterHelper.js.map +1 -0
  513. package/dist/utils/ParameterRemover.js +783 -0
  514. package/dist/utils/ParameterRemover.js.map +1 -0
  515. package/dist/utils/ParserStringUtils.js +31 -0
  516. package/dist/utils/ParserStringUtils.js.map +1 -0
  517. package/dist/utils/PositionAwareParser.js +363 -0
  518. package/dist/utils/PositionAwareParser.js.map +1 -0
  519. package/dist/utils/SchemaManager.js +217 -0
  520. package/dist/utils/SchemaManager.js.map +1 -0
  521. package/dist/utils/ScopeResolver.js +272 -0
  522. package/dist/utils/ScopeResolver.js.map +1 -0
  523. package/dist/utils/SelectQueryWithClauseHelper.js +47 -0
  524. package/dist/utils/SelectQueryWithClauseHelper.js.map +1 -0
  525. package/dist/utils/SqlSchemaValidator.js +55 -0
  526. package/dist/utils/SqlSchemaValidator.js.map +1 -0
  527. package/dist/utils/TableNameUtils.js +35 -0
  528. package/dist/utils/TableNameUtils.js.map +1 -0
  529. package/dist/utils/TextPositionUtils.js +128 -0
  530. package/dist/utils/TextPositionUtils.js.map +1 -0
  531. package/dist/utils/ValueComponentRewriter.js +187 -0
  532. package/dist/utils/ValueComponentRewriter.js.map +1 -0
  533. package/dist/utils/charLookupTable.js +73 -0
  534. package/dist/utils/charLookupTable.js.map +1 -0
  535. package/dist/utils/stringUtils.js +230 -0
  536. package/dist/utils/stringUtils.js.map +1 -0
  537. package/package.json +62 -62
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimulatedSelectConverter = void 0;
4
+ const InsertQuery_1 = require("../models/InsertQuery");
5
+ const UpdateQuery_1 = require("../models/UpdateQuery");
6
+ const DeleteQuery_1 = require("../models/DeleteQuery");
7
+ const MergeQuery_1 = require("../models/MergeQuery");
8
+ const CreateTableQuery_1 = require("../models/CreateTableQuery");
9
+ const SimpleSelectQuery_1 = require("../models/SimpleSelectQuery");
10
+ const BinarySelectQuery_1 = require("../models/BinarySelectQuery");
11
+ const ValuesQuery_1 = require("../models/ValuesQuery");
12
+ const InsertResultSelectConverter_1 = require("./InsertResultSelectConverter");
13
+ const UpdateResultSelectConverter_1 = require("./UpdateResultSelectConverter");
14
+ const DeleteResultSelectConverter_1 = require("./DeleteResultSelectConverter");
15
+ const MergeResultSelectConverter_1 = require("./MergeResultSelectConverter");
16
+ const SelectResultSelectConverter_1 = require("./SelectResultSelectConverter");
17
+ class SimulatedSelectConverter {
18
+ /**
19
+ * Converts a SQL statement into a simulated SELECT statement for previewing results.
20
+ *
21
+ * Rules:
22
+ * 1. INSERT/UPDATE/DELETE/MERGE: Converted to SELECT statement showing affected rows.
23
+ * 2. SELECT: Preserved as is (with fixtures injected).
24
+ * 3. CREATE TEMPORARY TABLE ... AS SELECT: Preserved as is (with fixtures injected into inner SELECT).
25
+ * 4. Other DDL (CREATE TABLE, DROP, ALTER, etc.): Ignored (returns null).
26
+ *
27
+ * @param ast The SQL component to convert
28
+ * @param options Options for conversion (fixtures, table definitions, etc.)
29
+ * @returns The converted SqlComponent or null if the statement should be ignored.
30
+ */
31
+ static convert(ast, options) {
32
+ if (ast instanceof InsertQuery_1.InsertQuery) {
33
+ return InsertResultSelectConverter_1.InsertResultSelectConverter.toSelectQuery(ast, options);
34
+ }
35
+ if (ast instanceof UpdateQuery_1.UpdateQuery) {
36
+ return UpdateResultSelectConverter_1.UpdateResultSelectConverter.toSelectQuery(ast, options);
37
+ }
38
+ if (ast instanceof DeleteQuery_1.DeleteQuery) {
39
+ return DeleteResultSelectConverter_1.DeleteResultSelectConverter.toSelectQuery(ast, options);
40
+ }
41
+ if (ast instanceof MergeQuery_1.MergeQuery) {
42
+ return MergeResultSelectConverter_1.MergeResultSelectConverter.toSelectQuery(ast, options);
43
+ }
44
+ if (ast instanceof SimpleSelectQuery_1.SimpleSelectQuery || ast instanceof BinarySelectQuery_1.BinarySelectQuery || ast instanceof ValuesQuery_1.ValuesQuery) {
45
+ // Use SelectResultSelectConverter to inject fixtures
46
+ return SelectResultSelectConverter_1.SelectResultSelectConverter.toSelectQuery(ast, options);
47
+ }
48
+ if (ast instanceof CreateTableQuery_1.CreateTableQuery) {
49
+ // Allow CreateTemporaryTableAsSelect
50
+ if (ast.isTemporary && ast.asSelectQuery) {
51
+ // Inject fixtures into the inner select query
52
+ // Note: We modify the AST in place as SelectResultSelectConverter does
53
+ const processedSelect = SelectResultSelectConverter_1.SelectResultSelectConverter.toSelectQuery(ast.asSelectQuery, options);
54
+ ast.asSelectQuery = processedSelect;
55
+ return ast;
56
+ }
57
+ // Ignore other Create Table statements
58
+ return null;
59
+ }
60
+ // Ignore all other statements (DDL, etc.)
61
+ return null;
62
+ }
63
+ }
64
+ exports.SimulatedSelectConverter = SimulatedSelectConverter;
65
+ //# sourceMappingURL=SimulatedSelectConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimulatedSelectConverter.js","sourceRoot":"","sources":["../../../src/transformers/SimulatedSelectConverter.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,iEAA8D;AAC9D,mEAAgE;AAChE,mEAAgE;AAChE,uDAAoD;AACpD,+EAAuG;AACvG,+EAAuG;AACvG,+EAAuG;AACvG,6EAAoG;AACpG,+EAAuG;AASvG,MAAa,wBAAwB;IACjC;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,OAAO,CAAC,GAAiB,EAAE,OAAgC;QACrE,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YAC7B,OAAO,yDAA2B,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YAC7B,OAAO,yDAA2B,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YAC7B,OAAO,yDAA2B,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,GAAG,YAAY,uBAAU,EAAE,CAAC;YAC5B,OAAO,uDAA0B,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,GAAG,YAAY,qCAAiB,IAAI,GAAG,YAAY,qCAAiB,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YACrG,qDAAqD;YACrD,OAAO,yDAA2B,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,GAAG,YAAY,mCAAgB,EAAE,CAAC;YAClC,qCAAqC;YACrC,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvC,8CAA8C;gBAC9C,uEAAuE;gBACvE,MAAM,eAAe,GAAG,yDAA2B,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC9F,GAAG,CAAC,aAAa,GAAG,eAAe,CAAC;gBACpC,OAAO,GAAG,CAAC;YACf,CAAC;YACD,uCAAuC;YACvC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,0CAA0C;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAjDD,4DAiDC"}
@@ -0,0 +1,51 @@
1
+ import { UpdateQuery } from '../models/UpdateQuery';
2
+ import { SimpleSelectQuery } from '../models/SelectQuery';
3
+ import { TableDefinitionModel, TableDefinitionRegistry } from '../models/TableDefinitionModel';
4
+ import { FixtureTableDefinition } from './FixtureCteBuilder';
5
+ import type { MissingFixtureStrategy } from './InsertResultSelectConverter';
6
+ /** Options that control how UPDATE-to-SELECT conversion resolves metadata and fixtures. */
7
+ export interface UpdateResultSelectOptions {
8
+ /** Optional registry keyed by table name (matching the target table name case). */
9
+ tableDefinitions?: TableDefinitionRegistry;
10
+ /** Optional callback that resolves metadata by table name (useful for schemified targets). */
11
+ tableDefinitionResolver?: (tableName: string) => TableDefinitionModel | undefined;
12
+ /** Optional fixtures that should shadow real tables inside the generated SELECT. */
13
+ fixtureTables?: FixtureTableDefinition[];
14
+ /** Strategy for how missing fixtures should be tolerated. */
15
+ missingFixtureStrategy?: MissingFixtureStrategy;
16
+ }
17
+ export declare class UpdateResultSelectConverter {
18
+ private static readonly DEFAULT_MISSING_FIXTURE_STRATEGY;
19
+ /**
20
+ * Converts an UPDATE with RETURNING (or a bare UPDATE) into a SELECT that mirrors its output rows.
21
+ */
22
+ static toSelectQuery(updateQuery: UpdateQuery, options?: UpdateResultSelectOptions): SimpleSelectQuery;
23
+ private static buildReturningSelectClause;
24
+ private static buildReturningSelectItems;
25
+ private static isWildcardReturningItem;
26
+ private static expandReturningWildcard;
27
+ private static buildUpdateReturningSelectItem;
28
+ private static buildUpdateColumnExpression;
29
+ private static getColumnReferenceName;
30
+ private static getReturningAlias;
31
+ private static buildCountSelectClause;
32
+ private static buildFromClause;
33
+ private static mapSetExpressions;
34
+ private static ensureColumnExists;
35
+ private static resolveTableDefinition;
36
+ private static convertFixtureToTableDefinition;
37
+ private static buildTableDefinitionMap;
38
+ private static extractTargetTableName;
39
+ private static extractColumnName;
40
+ private static buildFixtureCtes;
41
+ private static collectPhysicalTableReferences;
42
+ private static filterFixtureTablesForReferences;
43
+ private static collectReferencedTablesFromWithClause;
44
+ private static buildFixtureTableMap;
45
+ private static ensureFixtureCoverage;
46
+ private static collectReferencedTables;
47
+ private static collectCteNamesFromWithClause;
48
+ private static getMissingFixtureTables;
49
+ private static mergeWithClause;
50
+ private static normalizeIdentifier;
51
+ }
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateResultSelectConverter = void 0;
4
+ const Clause_1 = require("../models/Clause");
5
+ const SelectQuery_1 = require("../models/SelectQuery");
6
+ const ValueComponent_1 = require("../models/ValueComponent");
7
+ const TableSourceCollector_1 = require("./TableSourceCollector");
8
+ const FixtureCteBuilder_1 = require("./FixtureCteBuilder");
9
+ const SelectQueryWithClauseHelper_1 = require("../utils/SelectQueryWithClauseHelper");
10
+ const ValueComponentRewriter_1 = require("../utils/ValueComponentRewriter");
11
+ class UpdateResultSelectConverter {
12
+ /**
13
+ * Converts an UPDATE with RETURNING (or a bare UPDATE) into a SELECT that mirrors its output rows.
14
+ */
15
+ static toSelectQuery(updateQuery, options) {
16
+ var _a, _b, _c, _d;
17
+ const targetTableName = this.extractTargetTableName(updateQuery.updateClause);
18
+ const tableDefinition = this.resolveTableDefinition(targetTableName, options);
19
+ const targetAlias = updateQuery.updateClause.getSourceAliasName();
20
+ const fromClause = this.buildFromClause(updateQuery.updateClause.source, updateQuery.fromClause);
21
+ const whereClause = (_a = updateQuery.whereClause) !== null && _a !== void 0 ? _a : null;
22
+ // Decide whether RETURNING or a row count should drive the SELECT clause.
23
+ const selectClause = updateQuery.returningClause
24
+ ? this.buildReturningSelectClause(updateQuery.returningClause, updateQuery.setClause, targetAlias, tableDefinition)
25
+ : this.buildCountSelectClause();
26
+ // Assemble the skeleton SELECT that mirrors the UPDATE's source and predicates.
27
+ const selectQuery = new SelectQuery_1.SimpleSelectQuery({
28
+ withClause: (_b = updateQuery.withClause) !== null && _b !== void 0 ? _b : undefined,
29
+ selectClause,
30
+ fromClause,
31
+ whereClause
32
+ });
33
+ // Prepare fixture descriptors for the tables that will be touched by the SELECT.
34
+ const fixtureTables = (_c = options === null || options === void 0 ? void 0 : options.fixtureTables) !== null && _c !== void 0 ? _c : [];
35
+ const fixtureMap = this.buildFixtureTableMap(fixtureTables);
36
+ const missingStrategy = (_d = options === null || options === void 0 ? void 0 : options.missingFixtureStrategy) !== null && _d !== void 0 ? _d : this.DEFAULT_MISSING_FIXTURE_STRATEGY;
37
+ const originalWithClause = SelectQueryWithClauseHelper_1.SelectQueryWithClauseHelper.detachWithClause(selectQuery);
38
+ const referencedTables = this.collectPhysicalTableReferences(selectQuery, originalWithClause);
39
+ const cteNames = this.collectCteNamesFromWithClause(originalWithClause);
40
+ const normalizedTarget = this.normalizeIdentifier(targetTableName);
41
+ if (!cteNames.has(normalizedTarget)) {
42
+ referencedTables.add(normalizedTarget);
43
+ }
44
+ // Ensure each referenced table is covered by a fixture (or allowed to skip it).
45
+ this.ensureFixtureCoverage(referencedTables, fixtureMap, missingStrategy);
46
+ const filteredFixtures = this.filterFixtureTablesForReferences(fixtureTables, referencedTables);
47
+ // Turn the fixture definitions into CommonTable entries before reinjecting the WITH clause.
48
+ const fixtureCtes = this.buildFixtureCtes(filteredFixtures);
49
+ const recombinedWithClause = this.mergeWithClause(originalWithClause, fixtureCtes);
50
+ // Reattach the combined WITH clause so fixture CTEs precede any existing definitions.
51
+ SelectQueryWithClauseHelper_1.SelectQueryWithClauseHelper.setWithClause(selectQuery, recombinedWithClause);
52
+ return selectQuery;
53
+ }
54
+ static buildReturningSelectClause(returning, setClause, targetAlias, tableDefinition) {
55
+ const setExpressionMap = this.mapSetExpressions(setClause);
56
+ const selectItems = this.buildReturningSelectItems(returning, setExpressionMap, targetAlias, tableDefinition);
57
+ return new Clause_1.SelectClause(selectItems);
58
+ }
59
+ static buildReturningSelectItems(returning, setExpressions, targetAlias, tableDefinition) {
60
+ // Convert each RETURNING item into a select entry, expanding wildcards up front.
61
+ const selectItems = [];
62
+ for (const item of returning.items) {
63
+ if (this.isWildcardReturningItem(item)) {
64
+ selectItems.push(...this.expandReturningWildcard(tableDefinition, setExpressions, targetAlias));
65
+ continue;
66
+ }
67
+ selectItems.push(this.buildUpdateReturningSelectItem(item, setExpressions, targetAlias, tableDefinition));
68
+ }
69
+ return selectItems;
70
+ }
71
+ static isWildcardReturningItem(item) {
72
+ return (item.value instanceof ValueComponent_1.ColumnReference &&
73
+ item.value.column.name === '*');
74
+ }
75
+ static expandReturningWildcard(tableDefinition, setExpressions, targetAlias) {
76
+ // Use metadata to expand RETURNING * so each column can honor SET overrides.
77
+ if (!tableDefinition) {
78
+ throw new Error('Cannot expand RETURNING * without table definition.');
79
+ }
80
+ return tableDefinition.columns.map((column) => {
81
+ const expression = this.buildUpdateColumnExpression(column.name, setExpressions, targetAlias, tableDefinition);
82
+ return new Clause_1.SelectItem(expression, column.name);
83
+ });
84
+ }
85
+ static buildUpdateReturningSelectItem(item, setExpressions, targetAlias, tableDefinition) {
86
+ // Rewrite the item expression so column references honor SET overrides.
87
+ const expression = (0, ValueComponentRewriter_1.rewriteValueComponentWithColumnResolver)(item.value, (column) => this.buildUpdateColumnExpression(column, setExpressions, targetAlias, tableDefinition));
88
+ const alias = this.getReturningAlias(item);
89
+ return new Clause_1.SelectItem(expression, alias);
90
+ }
91
+ static buildUpdateColumnExpression(columnOrName, setExpressions, targetAlias, tableDefinition) {
92
+ const columnName = typeof columnOrName === 'string'
93
+ ? columnOrName
94
+ : this.getColumnReferenceName(columnOrName);
95
+ const normalized = this.normalizeIdentifier(columnName);
96
+ const overrideExpression = setExpressions.get(normalized);
97
+ // Prefer the SET expression when the column is updated, otherwise preserve the target reference.
98
+ if (overrideExpression) {
99
+ return overrideExpression;
100
+ }
101
+ this.ensureColumnExists(columnName, tableDefinition);
102
+ return new ValueComponent_1.ColumnReference(targetAlias, columnName);
103
+ }
104
+ static getColumnReferenceName(column) {
105
+ const nameComponent = column.qualifiedName.name;
106
+ if (nameComponent instanceof ValueComponent_1.IdentifierString) {
107
+ return nameComponent.name;
108
+ }
109
+ return nameComponent.value;
110
+ }
111
+ static getReturningAlias(item) {
112
+ var _a;
113
+ if ((_a = item.identifier) === null || _a === void 0 ? void 0 : _a.name) {
114
+ return item.identifier.name;
115
+ }
116
+ if (item.value instanceof ValueComponent_1.ColumnReference) {
117
+ return item.value.toString();
118
+ }
119
+ return null;
120
+ }
121
+ static buildCountSelectClause() {
122
+ // Count rows when the UPDATE does not expose RETURNING output.
123
+ const countFunction = new ValueComponent_1.FunctionCall(null, 'count', new ValueComponent_1.RawString('*'), null);
124
+ const selectItem = new Clause_1.SelectItem(countFunction, 'count');
125
+ return new Clause_1.SelectClause([selectItem]);
126
+ }
127
+ static buildFromClause(targetSource, fromClause) {
128
+ if (!fromClause) {
129
+ return new Clause_1.FromClause(targetSource, null);
130
+ }
131
+ const joins = [];
132
+ // Cross join any explicit FROM sources so their columns remain accessible.
133
+ joins.push(new Clause_1.JoinClause('cross join', fromClause.source, null, false));
134
+ if (fromClause.joins) {
135
+ joins.push(...fromClause.joins);
136
+ }
137
+ return new Clause_1.FromClause(targetSource, joins);
138
+ }
139
+ static mapSetExpressions(setClause) {
140
+ // Normalize each column name so lookups are case-insensitive.
141
+ const expressionMap = new Map();
142
+ for (const item of setClause.items) {
143
+ const columnName = this.extractColumnName(item);
144
+ expressionMap.set(this.normalizeIdentifier(columnName), item.value);
145
+ }
146
+ return expressionMap;
147
+ }
148
+ static ensureColumnExists(columnName, tableDefinition) {
149
+ // Guard against referencing columns that do not exist when metadata is available.
150
+ if (!tableDefinition) {
151
+ return;
152
+ }
153
+ const normalized = this.normalizeIdentifier(columnName);
154
+ const exists = tableDefinition.columns.some((column) => this.normalizeIdentifier(column.name) === normalized);
155
+ if (!exists) {
156
+ throw new Error(`Column '${columnName}' cannot be resolved for RETURNING output.`);
157
+ }
158
+ }
159
+ static resolveTableDefinition(tableName, options) {
160
+ // Prefer resolver callback results before falling back to the static registry.
161
+ if (options === null || options === void 0 ? void 0 : options.tableDefinitionResolver) {
162
+ const resolved = options.tableDefinitionResolver(tableName);
163
+ if (resolved !== undefined) {
164
+ return resolved;
165
+ }
166
+ }
167
+ const normalized = this.normalizeIdentifier(tableName);
168
+ if (options === null || options === void 0 ? void 0 : options.tableDefinitions) {
169
+ const map = this.buildTableDefinitionMap(options.tableDefinitions);
170
+ const definition = map.get(normalized);
171
+ if (definition) {
172
+ return definition;
173
+ }
174
+ }
175
+ if (options === null || options === void 0 ? void 0 : options.fixtureTables) {
176
+ const fixture = options.fixtureTables.find(f => this.normalizeIdentifier(f.tableName) === normalized);
177
+ if (fixture) {
178
+ return this.convertFixtureToTableDefinition(fixture);
179
+ }
180
+ }
181
+ return undefined;
182
+ }
183
+ static convertFixtureToTableDefinition(fixture) {
184
+ return {
185
+ name: fixture.tableName,
186
+ columns: fixture.columns.map(col => {
187
+ var _a;
188
+ return ({
189
+ name: col.name,
190
+ typeName: col.typeName,
191
+ required: false,
192
+ defaultValue: (_a = col.defaultValue) !== null && _a !== void 0 ? _a : null
193
+ });
194
+ })
195
+ };
196
+ }
197
+ static buildTableDefinitionMap(registry) {
198
+ // Normalize registry keys so lookups ignore casing.
199
+ const map = new Map();
200
+ for (const definition of Object.values(registry)) {
201
+ map.set(this.normalizeIdentifier(definition.name), definition);
202
+ }
203
+ return map;
204
+ }
205
+ static extractTargetTableName(updateClause) {
206
+ const datasource = updateClause.source.datasource;
207
+ if (datasource instanceof Clause_1.TableSource) {
208
+ return datasource.getSourceName();
209
+ }
210
+ throw new Error('Update target must be a table source for conversion.');
211
+ }
212
+ static extractColumnName(item) {
213
+ const columnComponent = item.qualifiedName.name;
214
+ if (columnComponent instanceof ValueComponent_1.RawString) {
215
+ return columnComponent.value;
216
+ }
217
+ return columnComponent.name;
218
+ }
219
+ static buildFixtureCtes(fixtures) {
220
+ if (!fixtures || fixtures.length === 0) {
221
+ return [];
222
+ }
223
+ return FixtureCteBuilder_1.FixtureCteBuilder.buildFixtures(fixtures);
224
+ }
225
+ static collectPhysicalTableReferences(selectQuery, withClause) {
226
+ const referencedTables = this.collectReferencedTables(selectQuery);
227
+ const ignoredTables = this.collectCteNamesFromWithClause(withClause);
228
+ const tablesToShadow = new Set();
229
+ // Record only concrete tables that are not already defined via CTE aliases.
230
+ for (const table of referencedTables) {
231
+ if (ignoredTables.has(table)) {
232
+ continue;
233
+ }
234
+ tablesToShadow.add(table);
235
+ }
236
+ const cteReferencedTables = this.collectReferencedTablesFromWithClause(withClause);
237
+ for (const table of cteReferencedTables) {
238
+ if (ignoredTables.has(table)) {
239
+ continue;
240
+ }
241
+ tablesToShadow.add(table);
242
+ }
243
+ return tablesToShadow;
244
+ }
245
+ static filterFixtureTablesForReferences(fixtures, referencedTables) {
246
+ if (!fixtures.length || referencedTables.size === 0) {
247
+ return [];
248
+ }
249
+ const filtered = [];
250
+ for (const fixture of fixtures) {
251
+ if (referencedTables.has(this.normalizeIdentifier(fixture.tableName))) {
252
+ filtered.push(fixture);
253
+ }
254
+ }
255
+ return filtered;
256
+ }
257
+ static collectReferencedTablesFromWithClause(withClause) {
258
+ const tables = new Set();
259
+ if (!(withClause === null || withClause === void 0 ? void 0 : withClause.tables)) {
260
+ return tables;
261
+ }
262
+ for (const cte of withClause.tables) {
263
+ for (const table of this.collectReferencedTables(cte.query)) {
264
+ tables.add(table);
265
+ }
266
+ }
267
+ return tables;
268
+ }
269
+ static buildFixtureTableMap(fixtures) {
270
+ // Normalize fixture table names to keep comparisons consistent.
271
+ const map = new Map();
272
+ for (const fixture of fixtures) {
273
+ map.set(this.normalizeIdentifier(fixture.tableName), fixture);
274
+ }
275
+ return map;
276
+ }
277
+ static ensureFixtureCoverage(referencedTables, fixtureMap, strategy) {
278
+ if (referencedTables.size === 0) {
279
+ return;
280
+ }
281
+ const missingTables = this.getMissingFixtureTables(referencedTables, fixtureMap);
282
+ if (missingTables.length === 0) {
283
+ return;
284
+ }
285
+ if (strategy === 'error') {
286
+ throw new Error(`Update SELECT refers to tables without fixture coverage: ${missingTables.join(', ')}.`);
287
+ }
288
+ }
289
+ static collectReferencedTables(query) {
290
+ // Use the collector to track every TableSource referenced by the SELECT.
291
+ const collector = new TableSourceCollector_1.TableSourceCollector(false);
292
+ const sources = collector.collect(query);
293
+ const normalized = new Set();
294
+ for (const source of sources) {
295
+ normalized.add(this.normalizeIdentifier(source.getSourceName()));
296
+ }
297
+ return normalized;
298
+ }
299
+ static collectCteNamesFromWithClause(withClause) {
300
+ // Determine which table names come from CTE aliases so they can be ignored.
301
+ const names = new Set();
302
+ if (!(withClause === null || withClause === void 0 ? void 0 : withClause.tables)) {
303
+ return names;
304
+ }
305
+ for (const table of withClause.tables) {
306
+ names.add(this.normalizeIdentifier(table.getSourceAliasName()));
307
+ }
308
+ return names;
309
+ }
310
+ static getMissingFixtureTables(referencedTables, fixtureMap) {
311
+ // Return every referenced table that lacks an overriding fixture definition.
312
+ const missing = [];
313
+ for (const table of referencedTables) {
314
+ if (!fixtureMap.has(table)) {
315
+ missing.push(table);
316
+ }
317
+ }
318
+ return missing;
319
+ }
320
+ static mergeWithClause(original, fixtureCtes) {
321
+ var _a;
322
+ // Combine fixture CTEs ahead of any original definitions so they shadow physical tables.
323
+ if (!fixtureCtes.length && !original) {
324
+ return null;
325
+ }
326
+ const combinedTables = [...fixtureCtes];
327
+ if (original === null || original === void 0 ? void 0 : original.tables) {
328
+ combinedTables.push(...original.tables);
329
+ }
330
+ if (!combinedTables.length) {
331
+ return null;
332
+ }
333
+ const merged = new Clause_1.WithClause((_a = original === null || original === void 0 ? void 0 : original.recursive) !== null && _a !== void 0 ? _a : false, combinedTables);
334
+ merged.globalComments = (original === null || original === void 0 ? void 0 : original.globalComments) ? [...original.globalComments] : null;
335
+ merged.trailingComments = (original === null || original === void 0 ? void 0 : original.trailingComments) ? [...original.trailingComments] : null;
336
+ return merged;
337
+ }
338
+ static normalizeIdentifier(value) {
339
+ return value.trim().toLowerCase();
340
+ }
341
+ }
342
+ exports.UpdateResultSelectConverter = UpdateResultSelectConverter;
343
+ UpdateResultSelectConverter.DEFAULT_MISSING_FIXTURE_STRATEGY = 'error';
344
+ //# sourceMappingURL=UpdateResultSelectConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateResultSelectConverter.js","sourceRoot":"","sources":["../../../src/transformers/UpdateResultSelectConverter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** Column definition for generic, driver-agnostic fixtures. */
2
+ export interface GenericFixtureColumn {
3
+ name: string;
4
+ /** Optional database-specific type name (kept as a raw string). */
5
+ typeName?: string;
6
+ /** Whether the column should be treated as required when simulating writes. */
7
+ required?: boolean;
8
+ /** Default expression/value as string when available. */
9
+ defaultValue?: string | null;
10
+ }
11
+ /** Generic fixture definition that can be adapted by driver layers. */
12
+ export interface GenericFixture {
13
+ tableName: string;
14
+ columns: GenericFixtureColumn[];
15
+ /** Optional fixture rows; values are kept untyped to allow driver-specific coercion. */
16
+ rows?: Record<string, unknown>[];
17
+ }
@@ -0,0 +1,12 @@
1
+ import { SelectQuery } from '../models/SelectQuery';
2
+ import { WithClause } from '../models/Clause';
3
+ /**
4
+ * Utility to manage WITH clause placement for statements that promote the
5
+ * CTE definitions outside of the SELECT body (for example, INSERT).
6
+ */
7
+ export declare class SelectQueryWithClauseHelper {
8
+ static getWithClause(selectQuery: SelectQuery | null): WithClause | null;
9
+ static setWithClause(selectQuery: SelectQuery, withClause: WithClause | null): void;
10
+ static detachWithClause(selectQuery: SelectQuery): WithClause | null;
11
+ private static findClauseOwner;
12
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectQueryWithClauseHelper = void 0;
4
+ const SelectQuery_1 = require("../models/SelectQuery");
5
+ /**
6
+ * Utility to manage WITH clause placement for statements that promote the
7
+ * CTE definitions outside of the SELECT body (for example, INSERT).
8
+ */
9
+ class SelectQueryWithClauseHelper {
10
+ static getWithClause(selectQuery) {
11
+ const owner = this.findClauseOwner(selectQuery);
12
+ if (!owner) {
13
+ return null;
14
+ }
15
+ return owner.withClause;
16
+ }
17
+ static setWithClause(selectQuery, withClause) {
18
+ const owner = this.findClauseOwner(selectQuery);
19
+ if (!owner) {
20
+ throw new Error("Cannot attach WITH clause to the provided select query.");
21
+ }
22
+ owner.withClause = withClause;
23
+ }
24
+ static detachWithClause(selectQuery) {
25
+ const owner = this.findClauseOwner(selectQuery);
26
+ if (!owner) {
27
+ return null;
28
+ }
29
+ const clause = owner.withClause;
30
+ owner.withClause = null;
31
+ return clause;
32
+ }
33
+ static findClauseOwner(selectQuery) {
34
+ if (!selectQuery) {
35
+ return null;
36
+ }
37
+ if (selectQuery instanceof SelectQuery_1.SimpleSelectQuery || selectQuery instanceof SelectQuery_1.ValuesQuery) {
38
+ return selectQuery;
39
+ }
40
+ if (selectQuery instanceof SelectQuery_1.BinarySelectQuery) {
41
+ return this.findClauseOwner(selectQuery.left);
42
+ }
43
+ throw new Error("Unsupported select query type for WITH clause management.");
44
+ }
45
+ }
46
+ exports.SelectQueryWithClauseHelper = SelectQueryWithClauseHelper;
47
+ //# sourceMappingURL=SelectQueryWithClauseHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectQueryWithClauseHelper.js","sourceRoot":"","sources":["../../../src/utils/SelectQueryWithClauseHelper.ts"],"names":[],"mappings":";;;AAAA,uDAAuG;AAGvG;;;GAGG;AACH,MAAa,2BAA2B;IAC7B,MAAM,CAAC,aAAa,CAAC,WAA+B;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,WAAwB,EAAE,UAA6B;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,WAAwB;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;QAChC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,WAA+B;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,WAAW,YAAY,+BAAiB,IAAI,WAAW,YAAY,yBAAW,EAAE,CAAC;YACjF,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,IAAI,WAAW,YAAY,+BAAiB,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACjF,CAAC;CACJ;AAvCD,kEAuCC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Parses a table name through the SQL parser so all supported identifier
3
+ * syntaxes (quoted, bracketed, backtick) converge to a consistent key.
4
+ */
5
+ export declare const normalizeTableName: (tableName: string) => string;
6
+ /**
7
+ * For schema-sensitive matching we no longer drop qualifiers; a single
8
+ * normalized key is sufficient and safer than heuristic variants.
9
+ */
10
+ export declare const tableNameVariants: (tableName: string) => string[];
@@ -0,0 +1,3 @@
1
+ import { ColumnReference, ValueComponent } from '../models/ValueComponent';
2
+ export type ColumnReferenceResolver = (column: ColumnReference) => ValueComponent;
3
+ export declare function rewriteValueComponentWithColumnResolver(value: ValueComponent, resolver: ColumnReferenceResolver): ValueComponent;