rawsql-ts 0.1.0-beta.1 → 0.1.0-beta.10
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.
- package/README.md +179 -206
- package/dist/index.d.ts +13 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/models/BinarySelectQuery.d.ts +91 -0
- package/dist/models/BinarySelectQuery.js +141 -0
- package/dist/models/BinarySelectQuery.js.map +1 -0
- package/dist/models/Clause.d.ts +189 -0
- package/dist/models/Clause.js +318 -0
- package/dist/models/Clause.js.map +1 -0
- package/dist/models/KeywordTrie.d.ts +11 -0
- package/dist/models/KeywordTrie.js +52 -0
- package/dist/models/KeywordTrie.js.map +1 -0
- package/dist/models/Lexeme.d.ts +25 -0
- package/dist/models/Lexeme.js +21 -0
- package/dist/models/Lexeme.js.map +1 -0
- package/dist/models/SelectQuery.d.ts +5 -0
- package/dist/models/SelectQuery.js +10 -0
- package/dist/models/SelectQuery.js.map +1 -0
- package/dist/models/SimpleSelectQuery.d.ts +167 -0
- package/dist/models/SimpleSelectQuery.js +292 -0
- package/dist/models/SimpleSelectQuery.js.map +1 -0
- package/dist/models/SqlComponent.d.ts +18 -0
- package/dist/models/SqlComponent.js +27 -0
- package/dist/models/SqlComponent.js.map +1 -0
- package/dist/models/ValueComponent.d.ts +158 -0
- package/dist/models/ValueComponent.js +250 -0
- package/dist/models/ValueComponent.js.map +1 -0
- package/dist/models/ValuesQuery.d.ts +10 -0
- package/dist/models/ValuesQuery.js +16 -0
- package/dist/models/ValuesQuery.js.map +1 -0
- package/dist/parsers/CommandExpressionParser.d.ts +15 -0
- package/dist/parsers/CommandExpressionParser.js +124 -0
- package/dist/parsers/CommandExpressionParser.js.map +1 -0
- package/dist/parsers/CommonTableParser.d.ts +9 -0
- package/dist/parsers/CommonTableParser.js +62 -0
- package/dist/parsers/CommonTableParser.js.map +1 -0
- package/dist/parsers/ForClauseParser.d.ts +9 -0
- package/dist/parsers/ForClauseParser.js +58 -0
- package/dist/parsers/ForClauseParser.js.map +1 -0
- package/dist/parsers/FromClauseParser.d.ts +9 -0
- package/dist/parsers/FromClauseParser.js +47 -0
- package/dist/parsers/FromClauseParser.js.map +1 -0
- package/dist/parsers/FunctionExpressionParser.d.ts +22 -0
- package/dist/parsers/FunctionExpressionParser.js +178 -0
- package/dist/parsers/FunctionExpressionParser.js.map +1 -0
- package/dist/parsers/GroupByParser.d.ts +10 -0
- package/dist/parsers/GroupByParser.js +58 -0
- package/dist/parsers/GroupByParser.js.map +1 -0
- package/dist/parsers/HavingParser.d.ts +9 -0
- package/dist/parsers/HavingParser.js +36 -0
- package/dist/parsers/HavingParser.js.map +1 -0
- package/dist/parsers/IdentifierParser.d.ts +8 -0
- package/dist/parsers/IdentifierParser.js +39 -0
- package/dist/parsers/IdentifierParser.js.map +1 -0
- package/dist/parsers/JoinClauseParser.d.ts +14 -0
- package/dist/parsers/JoinClauseParser.js +105 -0
- package/dist/parsers/JoinClauseParser.js.map +1 -0
- package/dist/parsers/KeywordParser.d.ts +17 -0
- package/dist/parsers/KeywordParser.js +91 -0
- package/dist/parsers/KeywordParser.js.map +1 -0
- package/dist/parsers/LimitClauseParser.d.ts +9 -0
- package/dist/parsers/LimitClauseParser.js +50 -0
- package/dist/parsers/LimitClauseParser.js.map +1 -0
- package/dist/parsers/LiteralParser.d.ts +8 -0
- package/dist/parsers/LiteralParser.js +38 -0
- package/dist/parsers/LiteralParser.js.map +1 -0
- package/dist/parsers/OrderByClauseParser.d.ts +10 -0
- package/dist/parsers/OrderByClauseParser.js +77 -0
- package/dist/parsers/OrderByClauseParser.js.map +1 -0
- package/dist/parsers/OverExpressionParser.d.ts +9 -0
- package/dist/parsers/OverExpressionParser.js +44 -0
- package/dist/parsers/OverExpressionParser.js.map +1 -0
- package/dist/parsers/ParameterExpressionParser.d.ts +8 -0
- package/dist/parsers/ParameterExpressionParser.js +15 -0
- package/dist/parsers/ParameterExpressionParser.js.map +1 -0
- package/dist/parsers/ParenExpressionParser.d.ts +8 -0
- package/dist/parsers/ParenExpressionParser.js +33 -0
- package/dist/parsers/ParenExpressionParser.js.map +1 -0
- package/dist/parsers/PartitionByParser.d.ts +9 -0
- package/dist/parsers/PartitionByParser.js +53 -0
- package/dist/parsers/PartitionByParser.js.map +1 -0
- package/dist/parsers/SelectClauseParser.d.ts +10 -0
- package/dist/parsers/SelectClauseParser.js +84 -0
- package/dist/parsers/SelectClauseParser.js.map +1 -0
- package/dist/parsers/SelectQueryParser.d.ts +13 -0
- package/dist/parsers/SelectQueryParser.js +153 -0
- package/dist/parsers/SelectQueryParser.js.map +1 -0
- package/dist/parsers/SourceAliasExpressionParser.d.ts +8 -0
- package/dist/parsers/SourceAliasExpressionParser.js +49 -0
- package/dist/parsers/SourceAliasExpressionParser.js.map +1 -0
- package/dist/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/parsers/SourceExpressionParser.js +35 -0
- package/dist/parsers/SourceExpressionParser.js.map +1 -0
- package/dist/parsers/SourceParser.d.ts +13 -0
- package/dist/parsers/SourceParser.js +119 -0
- package/dist/parsers/SourceParser.js.map +1 -0
- package/dist/parsers/SqlTokenizer.d.ts +64 -0
- package/dist/parsers/SqlTokenizer.js +174 -0
- package/dist/parsers/SqlTokenizer.js.map +1 -0
- package/dist/parsers/StringSpecifierExpressionParser.d.ts +8 -0
- package/dist/parsers/StringSpecifierExpressionParser.js +22 -0
- package/dist/parsers/StringSpecifierExpressionParser.js.map +1 -0
- package/dist/parsers/UnaryExpressionParser.d.ts +8 -0
- package/dist/parsers/UnaryExpressionParser.js +30 -0
- package/dist/parsers/UnaryExpressionParser.js.map +1 -0
- package/dist/parsers/ValueParser.d.ts +14 -0
- package/dist/parsers/ValueParser.js +136 -0
- package/dist/parsers/ValueParser.js.map +1 -0
- package/dist/parsers/ValuesQueryParser.d.ts +10 -0
- package/dist/parsers/ValuesQueryParser.js +86 -0
- package/dist/parsers/ValuesQueryParser.js.map +1 -0
- package/dist/parsers/WhereClauseParser.d.ts +9 -0
- package/dist/parsers/WhereClauseParser.js +36 -0
- package/dist/parsers/WhereClauseParser.js.map +1 -0
- package/dist/parsers/WindowClauseParser.d.ts +9 -0
- package/dist/parsers/WindowClauseParser.js +45 -0
- package/dist/parsers/WindowClauseParser.js.map +1 -0
- package/dist/parsers/WindowExpressionParser.d.ts +12 -0
- package/dist/parsers/WindowExpressionParser.js +163 -0
- package/dist/parsers/WindowExpressionParser.js.map +1 -0
- package/dist/parsers/WithClauseParser.d.ts +9 -0
- package/dist/parsers/WithClauseParser.js +57 -0
- package/dist/parsers/WithClauseParser.js.map +1 -0
- package/dist/tokenReaders/BaseTokenReader.d.ts +43 -0
- package/{.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/A32D1DB906C73FA74EF270AAEE165FC0 → dist/tokenReaders/BaseTokenReader.js} +30 -34
- package/dist/tokenReaders/BaseTokenReader.js.map +1 -0
- package/dist/tokenReaders/CommandTokenReader.d.ts +7 -0
- package/dist/tokenReaders/CommandTokenReader.js +145 -0
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -0
- package/dist/tokenReaders/FunctionTokenReader.d.ts +11 -0
- package/dist/tokenReaders/FunctionTokenReader.js +45 -0
- package/dist/tokenReaders/FunctionTokenReader.js.map +1 -0
- package/dist/tokenReaders/IdentifierTokenReader.d.ts +15 -0
- package/dist/tokenReaders/IdentifierTokenReader.js +70 -0
- package/dist/tokenReaders/IdentifierTokenReader.js.map +1 -0
- package/dist/tokenReaders/LiteralTokenReader.d.ts +23 -0
- package/dist/tokenReaders/LiteralTokenReader.js +189 -0
- package/dist/tokenReaders/LiteralTokenReader.js.map +1 -0
- package/dist/tokenReaders/OperatorTokenReader.d.ts +5 -0
- package/dist/tokenReaders/OperatorTokenReader.js +98 -0
- package/dist/tokenReaders/OperatorTokenReader.js.map +1 -0
- package/dist/tokenReaders/ParameterTokenReader.d.ts +11 -0
- package/dist/tokenReaders/ParameterTokenReader.js +44 -0
- package/dist/tokenReaders/ParameterTokenReader.js.map +1 -0
- package/dist/tokenReaders/StringSpecifierTokenReader.d.ts +8 -0
- package/dist/tokenReaders/StringSpecifierTokenReader.js +31 -0
- package/dist/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
- package/dist/tokenReaders/SymbolTokenReader.d.ts +12 -0
- package/dist/tokenReaders/SymbolTokenReader.js +35 -0
- package/dist/tokenReaders/SymbolTokenReader.js.map +1 -0
- package/dist/tokenReaders/TokenReaderManager.d.ts +53 -0
- package/dist/tokenReaders/TokenReaderManager.js +110 -0
- package/dist/tokenReaders/TokenReaderManager.js.map +1 -0
- package/dist/tokenReaders/TypeTokenReader.d.ts +11 -0
- package/dist/tokenReaders/TypeTokenReader.js +59 -0
- package/dist/tokenReaders/TypeTokenReader.js.map +1 -0
- package/dist/transformers/CTEBuilder.d.ts +52 -0
- package/dist/transformers/CTEBuilder.js +188 -0
- package/dist/transformers/CTEBuilder.js.map +1 -0
- package/dist/transformers/CTECollector.d.ts +81 -0
- package/dist/transformers/CTECollector.js +384 -0
- package/dist/transformers/CTECollector.js.map +1 -0
- package/dist/transformers/CTEDisabler.d.ts +77 -0
- package/dist/transformers/CTEDisabler.js +325 -0
- package/dist/transformers/CTEDisabler.js.map +1 -0
- package/dist/transformers/CTEInjector.d.ts +40 -0
- package/dist/transformers/CTEInjector.js +83 -0
- package/dist/transformers/CTEInjector.js.map +1 -0
- package/dist/transformers/CTENormalizer.d.ts +25 -0
- package/dist/transformers/CTENormalizer.js +46 -0
- package/dist/transformers/CTENormalizer.js.map +1 -0
- package/dist/transformers/Formatter.d.ts +82 -0
- package/dist/transformers/Formatter.js +467 -0
- package/dist/transformers/Formatter.js.map +1 -0
- package/dist/transformers/QueryConverter.d.ts +41 -0
- package/dist/transformers/QueryConverter.js +119 -0
- package/dist/transformers/QueryConverter.js.map +1 -0
- package/dist/transformers/SelectValueCollector.d.ts +62 -0
- package/dist/transformers/SelectValueCollector.js +249 -0
- package/dist/transformers/SelectValueCollector.js.map +1 -0
- package/dist/transformers/SelectableColumnCollector.d.ts +70 -0
- package/dist/transformers/SelectableColumnCollector.js +308 -0
- package/dist/transformers/SelectableColumnCollector.js.map +1 -0
- package/dist/transformers/TableSourceCollector.d.ts +92 -0
- package/dist/transformers/TableSourceCollector.js +384 -0
- package/dist/transformers/TableSourceCollector.js.map +1 -0
- package/dist/transformers/UpstreamSelectQueryFinder.d.ts +27 -0
- package/dist/transformers/UpstreamSelectQueryFinder.js +129 -0
- package/dist/transformers/UpstreamSelectQueryFinder.js.map +1 -0
- package/dist/utils/charLookupTable.d.ts +11 -0
- package/dist/utils/charLookupTable.js +73 -0
- package/dist/utils/charLookupTable.js.map +1 -0
- package/dist/utils/stringUtils.d.ts +43 -0
- package/dist/utils/stringUtils.js +168 -0
- package/dist/utils/stringUtils.js.map +1 -0
- package/package.json +13 -7
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/904140CF7EDF0C98AEA45F0D36062FE1 +0 -1
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/E621434FB1D5415B14FBBCC11967E420 +0 -34
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/EF71788BE39818EEA3F0164DC15E1BD7 +0 -170
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/state.mpack +0 -1
- package/.vs/CopilotSnapshots/07B1013C385C5641A5F5100E0751210B/0C73C015B2C859419AFBD08BE1343FC0/BA5D2B145A59265D63FA3B3584344B02 +0 -236
- package/.vs/CopilotSnapshots/07B1013C385C5641A5F5100E0751210B/state.mpack +0 -1
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/1F95FD72006ED6E92629CEFD7B2C4FEC +0 -1
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/4CA7B9D3BC2D0A498DC0777EDA3F9B0F +0 -1
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/7B623BFBAEB4EB61A9585F0BC8039B06 +0 -19
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/1F95FD72006ED6E92629CEFD7B2C4FEC +0 -5
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/4CA7B9D3BC2D0A498DC0777EDA3F9B0F +0 -3
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/7B623BFBAEB4EB61A9585F0BC8039B06 +0 -21
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/state.mpack +0 -1
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/41035D2B1D57326B55F66372017E223A +0 -1
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/45EABF6EF6BDFAA58C941A29E98C9C83 +0 -113
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/748E0B8859CA1A5FDCA675C9E53B6D1C +0 -1
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/A250FF4AD59546A65FFDC6AA92A4698E +0 -1
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/C42432BC73D8AA122171FAB6EEB13CBC +0 -19
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/state.mpack +0 -1
- package/.vs/CopilotSnapshots/13B40109875D434BB24880356492BE7E/828B96E81CC7014B887AA519767FACC3/437DAEC1EBBAF4F25ABA1B6A25EB6933 +0 -25
- package/.vs/CopilotSnapshots/13B40109875D434BB24880356492BE7E/state.mpack +0 -1
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/904140CF7EDF0C98AEA45F0D36062FE1 +0 -63
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/DFF70C60F68ECD9A4E4C3C74E4CC4DEE +0 -1
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/EF71788BE39818EEA3F0164DC15E1BD7 +0 -170
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/state.mpack +0 -1
- package/.vs/CopilotSnapshots/3BACC9346120824DB30006E353477163/87C831E9EA1AA249A25A44D08CF8E0B5/EF71788BE39818EEA3F0164DC15E1BD7 +0 -328
- package/.vs/CopilotSnapshots/3BACC9346120824DB30006E353477163/state.mpack +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/23E7151F0483C5BB5E663F83D4962FD4 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/2D4DCEBC89D52B097AEEEABA23C0EB59 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/7C951A8A572EA5C371FDE657AF968B9C +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/A32D1DB906C73FA74EF270AAEE165FC0 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/B692C85119711C76235AA5D78F9F3818 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/E602628EF6D764C2C267810C92906DBA +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/E621434FB1D5415B14FBBCC11967E420 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/23E7151F0483C5BB5E663F83D4962FD4 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/2D4DCEBC89D52B097AEEEABA23C0EB59 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/7C951A8A572EA5C371FDE657AF968B9C +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/A32D1DB906C73FA74EF270AAEE165FC0 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/B692C85119711C76235AA5D78F9F3818 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/E602628EF6D764C2C267810C92906DBA +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/E621434FB1D5415B14FBBCC11967E420 +0 -1
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/EF71788BE39818EEA3F0164DC15E1BD7 +0 -489
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/state.mpack +0 -1
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/0E5F1D40C0CAE848B8F9457F29A1F3FF/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -42
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/462A64EF41A4BF42A18708B83E02FD6F/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -40
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/90C95C12B91FA142BEF509B6FA329DE5/A3B20E10A19C7CA170132274D2F9312B +0 -9
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/90C95C12B91FA142BEF509B6FA329DE5/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -1
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/AD7513C9BBFE904AAB7F940397B95A99/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -42
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/state.mpack +0 -1
- package/.vs/CopilotSnapshots/50E0417FAD2E524D887CB5763C2FB7B4/63A4C250D9DCE04B9F61D8833B89B5BF/EF71788BE39818EEA3F0164DC15E1BD7 +0 -174
- package/.vs/CopilotSnapshots/50E0417FAD2E524D887CB5763C2FB7B4/state.mpack +0 -1
- package/.vs/CopilotSnapshots/5EF2507B002AC14EA991043C37C36551/60FF68DE489DAD4FBCBBB54AA3F6A552/EF71788BE39818EEA3F0164DC15E1BD7 +0 -496
- package/.vs/CopilotSnapshots/5EF2507B002AC14EA991043C37C36551/state.mpack +0 -1
- package/.vs/CopilotSnapshots/6AA7610F1FB2B746821E54C28A8D109B/7FB78C0F8CB04F4AA6AF3315277B80F8/FB35DD13E708043D4CD8ACD54E14708F +0 -1
- package/.vs/CopilotSnapshots/6AA7610F1FB2B746821E54C28A8D109B/state.mpack +0 -1
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/5782E13CAB03A04E9E1EC5692F892170/BA5D2B145A59265D63FA3B3584344B02 +0 -5
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/5782E13CAB03A04E9E1EC5692F892170/EF71788BE39818EEA3F0164DC15E1BD7 +0 -158
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/9886598393C89944B51920C01EB650C9/BA5D2B145A59265D63FA3B3584344B02 +0 -35
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/state.mpack +0 -1
- package/.vs/CopilotSnapshots/8492D9C7A2D9514DB8A69D304B48BF3C/D2DA3C4E2131E84EA02E321802A65254/EF71788BE39818EEA3F0164DC15E1BD7 +0 -165
- package/.vs/CopilotSnapshots/8492D9C7A2D9514DB8A69D304B48BF3C/state.mpack +0 -1
- package/.vs/CopilotSnapshots/891A2DC0E5FA424CB8BDDA4FE26ED372/E244D49DDC79514DBA322770B03AE287/1CF9939611B0D194AC81951A171DF046 +0 -43
- package/.vs/CopilotSnapshots/891A2DC0E5FA424CB8BDDA4FE26ED372/state.mpack +0 -1
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/11E6D1F8E56D734F99C5216231273E8D/E621434FB1D5415B14FBBCC11967E420 +0 -66
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/24C69A83160FD844B0DEFECF8E1313DB/1CF9939611B0D194AC81951A171DF046 +0 -43
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/24C69A83160FD844B0DEFECF8E1313DB/E621434FB1D5415B14FBBCC11967E420 +0 -53
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/5E6D1BCD7CE81548AB445DE97505DC62/1CF9939611B0D194AC81951A171DF046 +0 -30
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/5E6D1BCD7CE81548AB445DE97505DC62/E621434FB1D5415B14FBBCC11967E420 +0 -53
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/EC4E81E0109C8F4BA1B5D9CFE1C122BC/E621434FB1D5415B14FBBCC11967E420 +0 -54
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/state.mpack +0 -1
- package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/6139F888FA743143B8E6C99306A478A6/30F913EA337870677E7C575773ECF531 +0 -130
- package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/F21743E379F9C1439F6A6405A289AA99/30F913EA337870677E7C575773ECF531 +0 -160
- package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/state.mpack +0 -1
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/2E2EFE66C5E05C4B809986E9B23D5409/45EABF6EF6BDFAA58C941A29E98C9C83 +0 -113
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/2E2EFE66C5E05C4B809986E9B23D5409/FB35DD13E708043D4CD8ACD54E14708F +0 -2
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/BE46916E3A8F2C4284792B951B674907/FB35DD13E708043D4CD8ACD54E14708F +0 -5
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/state.mpack +0 -1
- package/.vs/CopilotSnapshots/A6D99EA2D3819F45AD8087D7487F9318/state.mpack +0 -1
- package/.vs/CopilotSnapshots/A78C77F7A237704D95BCFE1BBC39FB0F/68BA9941941DC244BC799D89DB2BF86E/7C951A8A572EA5C371FDE657AF968B9C +0 -96
- package/.vs/CopilotSnapshots/A78C77F7A237704D95BCFE1BBC39FB0F/state.mpack +0 -1
- package/.vs/CopilotSnapshots/AD2203F1B9FECE44BB6D5DC5D83E87AA/734AB1B2974F9545B7F12AAA5842524B/840203FFA9CCF5B33DFD5C7CC5B13527 +0 -125
- package/.vs/CopilotSnapshots/AD2203F1B9FECE44BB6D5DC5D83E87AA/state.mpack +0 -1
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/89CF3F527D0687479D14274E8CDF3DFF/1CF9939611B0D194AC81951A171DF046 +0 -30
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/89CF3F527D0687479D14274E8CDF3DFF/BA5D2B145A59265D63FA3B3584344B02 +0 -158
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/E495EBF64DC77A4BBD470B92DB0391C4/1CF9939611B0D194AC81951A171DF046 +0 -30
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/E495EBF64DC77A4BBD470B92DB0391C4/BA5D2B145A59265D63FA3B3584344B02 +0 -67
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/state.mpack +0 -1
- package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/1FCDCC65B992954DB78BD1F46892312B/44EB81A1663981E3F52FFFECE3A2918E +0 -143
- package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/1FCDCC65B992954DB78BD1F46892312B/E602628EF6D764C2C267810C92906DBA +0 -253
- package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/state.mpack +0 -1
- package/.vs/CopilotSnapshots/B1DED422A45D5740BA4EE745C04B2B0B/226F822A22D6BD44BCF56BAA47FA274C/EF71788BE39818EEA3F0164DC15E1BD7 +0 -174
- package/.vs/CopilotSnapshots/B1DED422A45D5740BA4EE745C04B2B0B/state.mpack +0 -1
- package/.vs/CopilotSnapshots/B5DD5E50ACD0FD4998564F0FDE7FAEE0/97908D1D83AD2D4EA7082388DE07CBB4/44EB81A1663981E3F52FFFECE3A2918E +0 -148
- package/.vs/CopilotSnapshots/B5DD5E50ACD0FD4998564F0FDE7FAEE0/state.mpack +0 -1
- package/.vs/CopilotSnapshots/B8ADCAC0C19DB14FB8388BA59A86BC74/7ED3F1557FD7BE4DBEAF9B59FD442925/44EB81A1663981E3F52FFFECE3A2918E +0 -152
- package/.vs/CopilotSnapshots/B8ADCAC0C19DB14FB8388BA59A86BC74/state.mpack +0 -1
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/0130610530354840BB06BF4F4E744242/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -138
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/5F1C58CEFBAF1B4E80C4CF38B83A0A5F/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -129
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/BDC3D099FCCCC147848630670EED45CF/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -139
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/D9E2B1CDD1E2BB468E0703BEF6706FF6/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +0 -139
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/state.mpack +0 -1
- package/.vs/CopilotSnapshots/C1E2C1A9C1DCFA46B1D5F1C6F36A152D/BC91C0FD38D8694BB992A8DEC1833670/148399016C7971F5592DAADBB9523118 +0 -120
- package/.vs/CopilotSnapshots/C1E2C1A9C1DCFA46B1D5F1C6F36A152D/state.mpack +0 -1
- package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/6C0950E97063C547A72D737E618436B0/1CF9939611B0D194AC81951A171DF046 +0 -9
- package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/6C0950E97063C547A72D737E618436B0/DFF70C60F68ECD9A4E4C3C74E4CC4DEE +0 -84
- package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/state.mpack +0 -1
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/03EA1376F04C0D468FD0851119159D34/44EB81A1663981E3F52FFFECE3A2918E +0 -148
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/03EA1376F04C0D468FD0851119159D34/E602628EF6D764C2C267810C92906DBA +0 -265
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/6887503C15557349842029E58C9C0D11/44EB81A1663981E3F52FFFECE3A2918E +0 -152
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/6887503C15557349842029E58C9C0D11/E602628EF6D764C2C267810C92906DBA +0 -265
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/state.mpack +0 -1
- package/.vs/CopilotSnapshots/C7190BBC8D95D44F9CF8E65E3E8C9CFD/4B6D07592F8EDC4AA3FF742B1F9531CC/1B80EB15A2FEBEC11C8210C5461F8DB7 +0 -43
- package/.vs/CopilotSnapshots/C7190BBC8D95D44F9CF8E65E3E8C9CFD/state.mpack +0 -1
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/2071ADB146D8F7499419123B2A595A41/03E00441128DC70FFEA043158417AC9A +0 -15
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/6ECBF707FE2A88418EA1649CE46068D5/03E00441128DC70FFEA043158417AC9A +0 -1
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/70BAB1D82B755F47A2351CA905ACC0F1/03E00441128DC70FFEA043158417AC9A +0 -49
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/99DDFADAEC5CA14D92CC470523A11743/03E00441128DC70FFEA043158417AC9A +0 -39
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/state.mpack +0 -1
- package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/2445F4111C26EB4DA5404F930E140F56/840203FFA9CCF5B33DFD5C7CC5B13527 +0 -6
- package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/2445F4111C26EB4DA5404F930E140F56/C27E5C1787B7957BF6F0C3D417890141 +0 -1
- package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/state.mpack +0 -1
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/5FC7C36C7769414C80BFF27A07BB5063/BE400B34D9700403D2BA3A1AA6B1EF1D +0 -15
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/A4DD9B92084D8E48A95435EDB2B14545/86848C7099AD75EE4E8F10E066F49671 +0 -15
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/A4DD9B92084D8E48A95435EDB2B14545/BE400B34D9700403D2BA3A1AA6B1EF1D +0 -15
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/state.mpack +0 -1
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/7C951A8A572EA5C371FDE657AF968B9C +0 -96
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/B692C85119711C76235AA5D78F9F3818 +0 -73
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/EF71788BE39818EEA3F0164DC15E1BD7 +0 -182
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/C1287B2893D30D40A46C30DC2CE05178/7C951A8A572EA5C371FDE657AF968B9C +0 -96
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/C1287B2893D30D40A46C30DC2CE05178/B692C85119711C76235AA5D78F9F3818 +0 -98
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/7C951A8A572EA5C371FDE657AF968B9C +0 -96
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/B692C85119711C76235AA5D78F9F3818 +0 -21
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/EF71788BE39818EEA3F0164DC15E1BD7 +0 -176
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/state.mpack +0 -1
- package/.vs/VSWorkspaceState.json +0 -6
- package/.vs/slnx.sqlite +0 -0
- package/.vs/ts-sample/CopilotIndices/17.13.433.20974/CodeChunks.db +0 -0
- package/.vs/ts-sample/CopilotIndices/17.13.433.20974/SemanticSymbols.db +0 -0
- package/.vs/ts-sample/CopilotIndices/17.13.439.2385/CodeChunks.db +0 -0
- package/.vs/ts-sample/CopilotIndices/17.13.439.2385/SemanticSymbols.db +0 -0
- package/.vs/ts-sample/CopilotIndices/17.13.441.19478/CodeChunks.db +0 -0
- package/.vs/ts-sample/CopilotIndices/17.13.441.19478/SemanticSymbols.db +0 -0
- package/.vs/ts-sample/FileContentIndex/2fa9d8cc-9158-496d-aa9b-3a471d46a157.vsidx +0 -0
- package/.vs/ts-sample/FileContentIndex/5530f45b-244e-4271-b3e3-d8250f03da64.vsidx +0 -0
- package/.vs/ts-sample/FileContentIndex/75f95b5d-c8f7-49ca-a3d7-d1d8f63db437.vsidx +0 -0
- package/.vs/ts-sample/FileContentIndex/abb2aeeb-f62a-4ca7-bfbf-7a1eada625a5.vsidx +0 -0
- package/.vs/ts-sample/FileContentIndex/fc749b54-0f95-45f6-ac75-a8ab3409a5ce.vsidx +0 -0
- package/.vs/ts-sample/config/applicationhost.config +0 -1026
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/0901b413-5d87-4b43-b248-80356492be7e +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/0f61a76a-b21f-46b7-821e-54c28a8d109b +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/101aef14-dd28-4de3-b2eb-e0b26d587b3a +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/22d4deb1-5da4-4057-ba4e-e745c04b2b0b +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/2a76030d-a09e-48cb-85f2-114567f23f93 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/2c6d08ca-cb98-4233-8f7c-011c3b409234 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/338dc290-9b2f-4929-8101-26139fca2640 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/34c9ac3b-2061-4d82-b300-06e353477163 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/3c01b107-5c38-4156-a5f5-100e0751210b +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/489ee702-f5df-4723-87cb-618de990598a +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/4ccac3c5-b137-474a-b6bc-753d09f69117 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/505eddb5-d0ac-49fd-9856-4f0fde7faee0 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/58e8d8c4-4293-4f5e-86f1-8850f5ca5c08 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/5dbafa3e-3015-4c80-a04c-606f5efddc38 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/5f29f527-e43a-4661-b60e-ff772041f413 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/6248dfd7-38ae-4fa6-9176-2fdc0694c3e8 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/66fcbd64-32dc-436d-80e6-7435a1a3ecf1 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/6f9ad733-d555-4d2c-b073-eb6a1aada347 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/715aaadc-c88e-4630-85d1-4c52356d80e0 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/71ab164c-01dc-468c-a734-fbf0bf4aedd9 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/752ee299-aec8-4ddf-b3a6-68a9adf0bc43 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/752ff6dc-741b-4286-a0bf-5d5125ab6769 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/7b50f25e-2a00-4ec1-a991-043c37c36551 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/7f41e050-2ead-4d52-887c-b5763c2fb7b4 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/85b50c9e-8895-4085-89c1-934ad2704744 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/8b2f308d-46ae-4ef5-a82a-e1ded1a5d240 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/8b5f907f-0dac-49ad-bd50-7ca45c569afd +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/8cd733d5-6839-413a-88a2-cec902bc03cd +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/90685124-4085-46d6-acbd-4fde8d6dd2d4 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/96129dc7-1749-4fe4-9a5b-b9d8fa725a0c +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/967094af-46a3-4734-8c5d-084b8442cd81 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/a29ed9a6-81d3-459f-ad80-87d7487f9318 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/a9c1e2c1-dcc1-46fa-b1d5-f1c6f36a152d +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/badc76f4-d284-4b6c-94e9-abdbc74de540 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/bb50ffbd-a9c1-4737-a000-1969c3bd195f +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/bc0b19c7-958d-4fd4-9cf8-e65e3e8c9cfd +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c02d1a89-fae5-4c42-b8bd-da4fe26ed372 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c0caadb8-9dc1-4fb1-b838-8ba59a86bc74 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c250c9ae-d2fa-4701-aee8-e325e2ca0a78 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c31db710-c1c4-4ec0-8602-fa06d3925f98 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/c7d99284-d9a2-4d51-b8a6-9d304b48bf3c +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/ddd1fab4-4016-4cfc-bf9f-f4a85bdfc112 +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/f10322ad-feb9-44ce-bb6d-5dc5d83e87aa +0 -0
- package/.vs/ts-sample/copilot-chat/3c67db7d/sessions/f7778ca7-37a2-4d70-95bc-fe1bbc39fb0f +0 -0
- package/.vs/ts-sample/v17/.suo +0 -0
- package/.vs/ts-sample/v17/.wsuo +0 -0
- package/.vs/ts-sample/v17/DocumentLayout.backup.json +0 -425
- package/.vs/ts-sample/v17/DocumentLayout.json +0 -423
- package/.vs/ts-sample/v17/TestStore/0/000.testlog +0 -0
- package/.vs/ts-sample/v17/TestStore/0/testlog.manifest +0 -0
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.js +0 -15
- package/dist/vitest.config.js.map +0 -1
@@ -0,0 +1,325 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CTEDisabler = void 0;
|
4
|
+
const Clause_1 = require("../models/Clause");
|
5
|
+
const SelectQuery_1 = require("../models/SelectQuery");
|
6
|
+
const ValueComponent_1 = require("../models/ValueComponent");
|
7
|
+
/**
|
8
|
+
* A visitor that disables all WITH clauses in a SQL query structure.
|
9
|
+
* This processes and removes WITH clauses from:
|
10
|
+
* - Simple SELECT queries
|
11
|
+
* - Binary queries (UNION, EXCEPT, etc.)
|
12
|
+
* - Subqueries
|
13
|
+
* - Inline queries
|
14
|
+
*
|
15
|
+
* It maintains the CTE queries themselves but restructures the query to not use
|
16
|
+
* the WITH clause syntactical construct.
|
17
|
+
*/
|
18
|
+
class CTEDisabler {
|
19
|
+
constructor() {
|
20
|
+
this.visitedNodes = new Set();
|
21
|
+
this.isRootVisit = true;
|
22
|
+
this.handlers = new Map();
|
23
|
+
// Setup handlers for all component types that might contain WITH clauses
|
24
|
+
// SelectQuery types
|
25
|
+
this.handlers.set(SelectQuery_1.SimpleSelectQuery.kind, (expr) => this.visitSimpleSelectQuery(expr));
|
26
|
+
this.handlers.set(SelectQuery_1.BinarySelectQuery.kind, (expr) => this.visitBinarySelectQuery(expr));
|
27
|
+
this.handlers.set(SelectQuery_1.ValuesQuery.kind, (expr) => this.visitValuesQuery(expr));
|
28
|
+
// SelectComponent types
|
29
|
+
this.handlers.set(Clause_1.SelectItem.kind, (expr) => this.visitSelectItem(expr));
|
30
|
+
// Identifiers and raw strings
|
31
|
+
this.handlers.set(ValueComponent_1.IdentifierString.kind, (expr) => this.visitIdentifierString(expr));
|
32
|
+
this.handlers.set(ValueComponent_1.RawString.kind, (expr) => this.visitRawString(expr));
|
33
|
+
this.handlers.set(ValueComponent_1.ColumnReference.kind, (expr) => this.visitColumnReference(expr));
|
34
|
+
this.handlers.set(ValueComponent_1.ParameterExpression.kind, (expr) => this.visitParameterExpression(expr));
|
35
|
+
this.handlers.set(ValueComponent_1.LiteralValue.kind, (expr) => this.visitLiteralValue(expr));
|
36
|
+
// Source components
|
37
|
+
this.handlers.set(Clause_1.SourceExpression.kind, (expr) => this.visitSourceExpression(expr));
|
38
|
+
this.handlers.set(Clause_1.TableSource.kind, (expr) => this.visitTableSource(expr));
|
39
|
+
this.handlers.set(Clause_1.ParenSource.kind, (expr) => this.visitParenSource(expr));
|
40
|
+
// Subqueries and inline queries
|
41
|
+
this.handlers.set(Clause_1.SubQuerySource.kind, (expr) => this.visitSubQuerySource(expr));
|
42
|
+
this.handlers.set(ValueComponent_1.InlineQuery.kind, (expr) => this.visitInlineQuery(expr));
|
43
|
+
// FROM and JOIN clauses
|
44
|
+
this.handlers.set(Clause_1.FromClause.kind, (expr) => this.visitFromClause(expr));
|
45
|
+
this.handlers.set(Clause_1.JoinClause.kind, (expr) => this.visitJoinClause(expr));
|
46
|
+
this.handlers.set(Clause_1.JoinOnClause.kind, (expr) => this.visitJoinOnClause(expr));
|
47
|
+
this.handlers.set(Clause_1.JoinUsingClause.kind, (expr) => this.visitJoinUsingClause(expr));
|
48
|
+
// WHERE clause
|
49
|
+
this.handlers.set(Clause_1.WhereClause.kind, (expr) => this.visitWhereClause(expr));
|
50
|
+
// Value components that might contain subqueries
|
51
|
+
this.handlers.set(ValueComponent_1.ParenExpression.kind, (expr) => this.visitParenExpression(expr));
|
52
|
+
this.handlers.set(ValueComponent_1.BinaryExpression.kind, (expr) => this.visitBinaryExpression(expr));
|
53
|
+
this.handlers.set(ValueComponent_1.UnaryExpression.kind, (expr) => this.visitUnaryExpression(expr));
|
54
|
+
this.handlers.set(ValueComponent_1.CaseExpression.kind, (expr) => this.visitCaseExpression(expr));
|
55
|
+
this.handlers.set(ValueComponent_1.CaseKeyValuePair.kind, (expr) => this.visitCaseKeyValuePair(expr));
|
56
|
+
this.handlers.set(ValueComponent_1.SwitchCaseArgument.kind, (expr) => this.visitSwitchCaseArgument(expr));
|
57
|
+
this.handlers.set(ValueComponent_1.BetweenExpression.kind, (expr) => this.visitBetweenExpression(expr));
|
58
|
+
this.handlers.set(ValueComponent_1.FunctionCall.kind, (expr) => this.visitFunctionCall(expr));
|
59
|
+
this.handlers.set(ValueComponent_1.ArrayExpression.kind, (expr) => this.visitArrayExpression(expr));
|
60
|
+
this.handlers.set(ValueComponent_1.TupleExpression.kind, (expr) => this.visitTupleExpression(expr));
|
61
|
+
this.handlers.set(ValueComponent_1.CastExpression.kind, (expr) => this.visitCastExpression(expr));
|
62
|
+
this.handlers.set(ValueComponent_1.WindowFrameExpression.kind, (expr) => this.visitWindowFrameExpression(expr));
|
63
|
+
this.handlers.set(ValueComponent_1.WindowFrameSpec.kind, (expr) => this.visitWindowFrameSpec(expr));
|
64
|
+
this.handlers.set(ValueComponent_1.TypeValue.kind, (expr) => this.visitTypeValue(expr));
|
65
|
+
// Add handlers for other clause types
|
66
|
+
this.handlers.set(Clause_1.SelectClause.kind, (expr) => this.visitSelectClause(expr));
|
67
|
+
this.handlers.set(Clause_1.GroupByClause.kind, (expr) => this.visitGroupByClause(expr));
|
68
|
+
this.handlers.set(Clause_1.HavingClause.kind, (expr) => this.visitHavingClause(expr));
|
69
|
+
this.handlers.set(Clause_1.OrderByClause.kind, (expr) => this.visitOrderByClause(expr));
|
70
|
+
this.handlers.set(Clause_1.WindowFrameClause.kind, (expr) => this.visitWindowFrameClause(expr));
|
71
|
+
this.handlers.set(Clause_1.LimitClause.kind, (expr) => this.visitLimitClause(expr));
|
72
|
+
this.handlers.set(Clause_1.ForClause.kind, (expr) => this.visitForClause(expr));
|
73
|
+
this.handlers.set(Clause_1.OrderByItem.kind, (expr) => this.visitOrderByItem(expr));
|
74
|
+
}
|
75
|
+
/**
|
76
|
+
* Reset the visited nodes tracking
|
77
|
+
*/
|
78
|
+
reset() {
|
79
|
+
this.visitedNodes.clear();
|
80
|
+
}
|
81
|
+
execute(arg) {
|
82
|
+
// Reset the visited nodes before starting the visit
|
83
|
+
this.reset();
|
84
|
+
return this.visit(arg);
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* Main entry point for the visitor pattern.
|
88
|
+
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
89
|
+
*/
|
90
|
+
visit(arg) {
|
91
|
+
// If not a root visit, just visit the node and return
|
92
|
+
if (!this.isRootVisit) {
|
93
|
+
return this.visitNode(arg);
|
94
|
+
}
|
95
|
+
// If this is a root visit, we need to reset the state
|
96
|
+
this.reset();
|
97
|
+
this.isRootVisit = false;
|
98
|
+
try {
|
99
|
+
return this.visitNode(arg);
|
100
|
+
}
|
101
|
+
finally {
|
102
|
+
// Regardless of success or failure, reset the root visit flag
|
103
|
+
this.isRootVisit = true;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
/**
|
107
|
+
* Internal visit method used for all nodes.
|
108
|
+
* This separates the visit flag management from the actual node visitation logic.
|
109
|
+
*/
|
110
|
+
visitNode(arg) {
|
111
|
+
var _a, _b;
|
112
|
+
// Check for circular references - if node already visited, return as is
|
113
|
+
if (this.visitedNodes.has(arg)) {
|
114
|
+
return arg;
|
115
|
+
}
|
116
|
+
// Mark as visited node
|
117
|
+
this.visitedNodes.add(arg);
|
118
|
+
const handler = this.handlers.get(arg.getKind());
|
119
|
+
if (handler) {
|
120
|
+
return handler(arg);
|
121
|
+
}
|
122
|
+
// Provide more detailed error message
|
123
|
+
const kindSymbol = ((_a = arg.getKind()) === null || _a === void 0 ? void 0 : _a.toString()) || 'unknown';
|
124
|
+
const constructor = ((_b = arg.constructor) === null || _b === void 0 ? void 0 : _b.name) || 'unknown';
|
125
|
+
throw new Error(`No handler for ${constructor} with kind ${kindSymbol}. Consider adding a handler for this type.`);
|
126
|
+
}
|
127
|
+
visitSimpleSelectQuery(arg) {
|
128
|
+
if (arg.WithClause) {
|
129
|
+
arg.WithClause.tables.forEach(table => {
|
130
|
+
this.visit(table.query);
|
131
|
+
});
|
132
|
+
}
|
133
|
+
arg.WithClause = null; // Explicitly remove WITH clause
|
134
|
+
// Visit the components of the SimpleSelectQuery
|
135
|
+
arg.selectClause = this.visit(arg.selectClause);
|
136
|
+
arg.fromClause = arg.fromClause ? this.visit(arg.fromClause) : null;
|
137
|
+
arg.whereClause = arg.whereClause ? this.visit(arg.whereClause) : null;
|
138
|
+
arg.groupByClause = arg.groupByClause ? this.visit(arg.groupByClause) : null;
|
139
|
+
arg.havingClause = arg.havingClause ? this.visit(arg.havingClause) : null;
|
140
|
+
arg.orderByClause = arg.orderByClause ? this.visit(arg.orderByClause) : null;
|
141
|
+
arg.windowFrameClause = arg.windowFrameClause ? this.visit(arg.windowFrameClause) : null;
|
142
|
+
arg.rowLimitClause = arg.rowLimitClause ? this.visit(arg.rowLimitClause) : null;
|
143
|
+
arg.forClause = arg.forClause ? this.visit(arg.forClause) : null;
|
144
|
+
return arg;
|
145
|
+
}
|
146
|
+
visitBinarySelectQuery(query) {
|
147
|
+
query.left = this.visit(query.left);
|
148
|
+
query.right = this.visit(query.right);
|
149
|
+
return query;
|
150
|
+
}
|
151
|
+
visitValuesQuery(query) {
|
152
|
+
const newTuples = query.tuples.map(tuple => this.visit(tuple));
|
153
|
+
return new SelectQuery_1.ValuesQuery(newTuples);
|
154
|
+
}
|
155
|
+
visitSelectClause(clause) {
|
156
|
+
const newItems = clause.items.map(item => {
|
157
|
+
return this.visit(item);
|
158
|
+
});
|
159
|
+
return new Clause_1.SelectClause(newItems, clause.distinct);
|
160
|
+
}
|
161
|
+
visitFromClause(clause) {
|
162
|
+
const newSource = this.visit(clause.source);
|
163
|
+
const newJoins = clause.joins ? clause.joins.map(join => this.visit(join)) : null;
|
164
|
+
return new Clause_1.FromClause(newSource, newJoins);
|
165
|
+
}
|
166
|
+
visitSubQuerySource(subQuery) {
|
167
|
+
const newQuery = this.visit(subQuery.query);
|
168
|
+
return new Clause_1.SubQuerySource(newQuery);
|
169
|
+
}
|
170
|
+
visitInlineQuery(inlineQuery) {
|
171
|
+
const newQuery = this.visit(inlineQuery.selectQuery);
|
172
|
+
return new ValueComponent_1.InlineQuery(newQuery);
|
173
|
+
}
|
174
|
+
visitJoinClause(joinClause) {
|
175
|
+
const newSource = this.visit(joinClause.source);
|
176
|
+
const newCondition = joinClause.condition ? this.visit(joinClause.condition) : null;
|
177
|
+
return new Clause_1.JoinClause(joinClause.joinType.value, newSource, newCondition, joinClause.lateral);
|
178
|
+
}
|
179
|
+
visitJoinOnClause(joinOn) {
|
180
|
+
const newCondition = this.visit(joinOn.condition);
|
181
|
+
return new Clause_1.JoinOnClause(newCondition);
|
182
|
+
}
|
183
|
+
visitJoinUsingClause(joinUsing) {
|
184
|
+
const newCondition = this.visit(joinUsing.condition);
|
185
|
+
return new Clause_1.JoinUsingClause(newCondition);
|
186
|
+
}
|
187
|
+
visitWhereClause(whereClause) {
|
188
|
+
const newCondition = this.visit(whereClause.condition);
|
189
|
+
return new Clause_1.WhereClause(newCondition);
|
190
|
+
}
|
191
|
+
visitGroupByClause(clause) {
|
192
|
+
const newGrouping = clause.grouping.map(item => this.visit(item));
|
193
|
+
return new Clause_1.GroupByClause(newGrouping);
|
194
|
+
}
|
195
|
+
visitHavingClause(clause) {
|
196
|
+
const newCondition = this.visit(clause.condition);
|
197
|
+
return new Clause_1.HavingClause(newCondition);
|
198
|
+
}
|
199
|
+
visitOrderByClause(clause) {
|
200
|
+
const newOrder = clause.order.map(item => this.visit(item));
|
201
|
+
return new Clause_1.OrderByClause(newOrder);
|
202
|
+
}
|
203
|
+
visitWindowFrameClause(clause) {
|
204
|
+
const newExpression = this.visit(clause.expression);
|
205
|
+
return new Clause_1.WindowFrameClause(clause.name.name, newExpression);
|
206
|
+
}
|
207
|
+
visitLimitClause(clause) {
|
208
|
+
const newLimit = this.visit(clause.limit);
|
209
|
+
const newOffset = clause.offset ? this.visit(clause.offset) : null;
|
210
|
+
return new Clause_1.LimitClause(newLimit, newOffset);
|
211
|
+
}
|
212
|
+
visitForClause(clause) {
|
213
|
+
return new Clause_1.ForClause(clause.lockMode);
|
214
|
+
}
|
215
|
+
visitParenExpression(expr) {
|
216
|
+
const newExpression = this.visit(expr.expression);
|
217
|
+
return new ValueComponent_1.ParenExpression(newExpression);
|
218
|
+
}
|
219
|
+
visitBinaryExpression(expr) {
|
220
|
+
const newLeft = this.visit(expr.left);
|
221
|
+
const newRight = this.visit(expr.right);
|
222
|
+
return new ValueComponent_1.BinaryExpression(newLeft, expr.operator.value, newRight);
|
223
|
+
}
|
224
|
+
visitUnaryExpression(expr) {
|
225
|
+
const newExpression = this.visit(expr.expression);
|
226
|
+
return new ValueComponent_1.UnaryExpression(expr.operator.value, newExpression);
|
227
|
+
}
|
228
|
+
visitCaseExpression(expr) {
|
229
|
+
const newCondition = expr.condition ? this.visit(expr.condition) : null;
|
230
|
+
const newSwitchCase = this.visit(expr.switchCase);
|
231
|
+
return new ValueComponent_1.CaseExpression(newCondition, newSwitchCase);
|
232
|
+
}
|
233
|
+
visitSwitchCaseArgument(switchCase) {
|
234
|
+
const newCases = switchCase.cases.map(caseItem => this.visit(caseItem));
|
235
|
+
const newElseValue = switchCase.elseValue ? this.visit(switchCase.elseValue) : null;
|
236
|
+
return new ValueComponent_1.SwitchCaseArgument(newCases, newElseValue);
|
237
|
+
}
|
238
|
+
visitCaseKeyValuePair(pair) {
|
239
|
+
const newKey = this.visit(pair.key);
|
240
|
+
const newValue = this.visit(pair.value);
|
241
|
+
return new ValueComponent_1.CaseKeyValuePair(newKey, newValue);
|
242
|
+
}
|
243
|
+
visitBetweenExpression(expr) {
|
244
|
+
const newExpression = this.visit(expr.expression);
|
245
|
+
const newLower = this.visit(expr.lower);
|
246
|
+
const newUpper = this.visit(expr.upper);
|
247
|
+
return new ValueComponent_1.BetweenExpression(newExpression, newLower, newUpper, expr.negated);
|
248
|
+
}
|
249
|
+
visitFunctionCall(func) {
|
250
|
+
const newArgument = func.argument ? this.visit(func.argument) : null;
|
251
|
+
const newOver = func.over ? this.visit(func.over) : null;
|
252
|
+
return new ValueComponent_1.FunctionCall(func.name.value, newArgument, newOver);
|
253
|
+
}
|
254
|
+
visitArrayExpression(expr) {
|
255
|
+
const newExpression = this.visit(expr.expression);
|
256
|
+
return new ValueComponent_1.ArrayExpression(newExpression);
|
257
|
+
}
|
258
|
+
visitTupleExpression(expr) {
|
259
|
+
const newValues = expr.values.map(value => this.visit(value));
|
260
|
+
return new ValueComponent_1.TupleExpression(newValues);
|
261
|
+
}
|
262
|
+
visitCastExpression(expr) {
|
263
|
+
const newInput = this.visit(expr.input);
|
264
|
+
const newCastType = this.visit(expr.castType);
|
265
|
+
return new ValueComponent_1.CastExpression(newInput, newCastType);
|
266
|
+
}
|
267
|
+
visitTypeValue(typeValue) {
|
268
|
+
const newArgument = typeValue.argument ? this.visit(typeValue.argument) : null;
|
269
|
+
return new ValueComponent_1.TypeValue(typeValue.type.value, newArgument);
|
270
|
+
}
|
271
|
+
visitSelectItem(item) {
|
272
|
+
const newValue = this.visit(item.value);
|
273
|
+
return new Clause_1.SelectItem(newValue, item.identifier.name);
|
274
|
+
}
|
275
|
+
visitIdentifierString(ident) {
|
276
|
+
// Identifiers don't have child components, so just return as-is
|
277
|
+
return ident;
|
278
|
+
}
|
279
|
+
visitRawString(raw) {
|
280
|
+
// Raw strings don't have child components, so just return as-is
|
281
|
+
return raw;
|
282
|
+
}
|
283
|
+
visitColumnReference(column) {
|
284
|
+
// Column references don't have subqueries, so just return as-is
|
285
|
+
return column;
|
286
|
+
}
|
287
|
+
visitSourceExpression(source) {
|
288
|
+
const newSource = this.visit(source.datasource);
|
289
|
+
// SourceAliasEpression don't contain subqueries, so just return as-is
|
290
|
+
const newAlias = source.aliasExpression;
|
291
|
+
return new Clause_1.SourceExpression(newSource, newAlias);
|
292
|
+
}
|
293
|
+
visitTableSource(source) {
|
294
|
+
// Table sources don't contain subqueries, so just return as-is
|
295
|
+
return source;
|
296
|
+
}
|
297
|
+
visitParenSource(source) {
|
298
|
+
const newSource = this.visit(source.source);
|
299
|
+
return new Clause_1.ParenSource(newSource);
|
300
|
+
}
|
301
|
+
visitParameterExpression(param) {
|
302
|
+
// Parameter expressions don't have child components, so just return as-is
|
303
|
+
return param;
|
304
|
+
}
|
305
|
+
visitWindowFrameExpression(expr) {
|
306
|
+
const newPartition = expr.partition ? this.visit(expr.partition) : null;
|
307
|
+
const newOrder = expr.order ? this.visit(expr.order) : null;
|
308
|
+
const newFrameSpec = expr.frameSpec ? this.visit(expr.frameSpec) : null;
|
309
|
+
return new ValueComponent_1.WindowFrameExpression(newPartition, newOrder, newFrameSpec);
|
310
|
+
}
|
311
|
+
visitWindowFrameSpec(spec) {
|
312
|
+
// WindowFrameSpec is a simple value object, so return as-is
|
313
|
+
return spec;
|
314
|
+
}
|
315
|
+
visitLiteralValue(value) {
|
316
|
+
// Literal values are returned as-is
|
317
|
+
return value;
|
318
|
+
}
|
319
|
+
visitOrderByItem(item) {
|
320
|
+
const newValue = this.visit(item.value);
|
321
|
+
return new Clause_1.OrderByItem(newValue, item.sortDirection, item.nullsPosition);
|
322
|
+
}
|
323
|
+
}
|
324
|
+
exports.CTEDisabler = CTEDisabler;
|
325
|
+
//# sourceMappingURL=CTEDisabler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CTEDisabler.js","sourceRoot":"","sources":["../../src/transformers/CTEDisabler.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { CommonTable } from "../models/Clause";
|
2
|
+
import { SelectQuery } from "../models/SelectQuery";
|
3
|
+
/**
|
4
|
+
* CTEInjector accepts a SelectQuery object and an array of CommonTables,
|
5
|
+
* and inserts Common Table Expressions into the query.
|
6
|
+
* For BinarySelectQuery, CTEs are inserted into the left query.
|
7
|
+
*
|
8
|
+
* Uses CTENameConflictResolver to resolve naming conflicts between CTEs.
|
9
|
+
*/
|
10
|
+
export declare class CTEInjector {
|
11
|
+
private nameConflictResolver;
|
12
|
+
private cteCollector;
|
13
|
+
constructor();
|
14
|
+
/**
|
15
|
+
* Inserts Common Table Expressions into a SelectQuery object.
|
16
|
+
*
|
17
|
+
* @param query The query to inject CTEs into
|
18
|
+
* @param commonTables Array of CommonTables to be inserted
|
19
|
+
* @returns A new query with the injected CTEs
|
20
|
+
*/
|
21
|
+
inject(query: SelectQuery, commonTables: CommonTable[]): SelectQuery;
|
22
|
+
/**
|
23
|
+
* Inserts Common Table Expressions into a SimpleSelectQuery.
|
24
|
+
*
|
25
|
+
* @param query The SimpleSelectQuery to inject CTEs into
|
26
|
+
* @param commonTables Array of CommonTables to be inserted
|
27
|
+
* @param needRecursive Boolean indicating if recursive WITH clause is needed
|
28
|
+
* @returns A new SimpleSelectQuery with the injected CTEs
|
29
|
+
*/
|
30
|
+
private injectIntoSimpleQuery;
|
31
|
+
/**
|
32
|
+
* Inserts Common Table Expressions into the left query of a BinarySelectQuery.
|
33
|
+
*
|
34
|
+
* @param query The BinarySelectQuery to inject CTEs into
|
35
|
+
* @param commonTables Array of CommonTables to be inserted
|
36
|
+
* @param needRecursive Boolean indicating if recursive WITH clause is needed
|
37
|
+
* @returns A new BinarySelectQuery with the injected CTEs
|
38
|
+
*/
|
39
|
+
private injectIntoBinaryQuery;
|
40
|
+
}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CTEInjector = void 0;
|
4
|
+
const SelectQuery_1 = require("../models/SelectQuery");
|
5
|
+
const CTECollector_1 = require("./CTECollector");
|
6
|
+
const CTEBuilder_1 = require("./CTEBuilder");
|
7
|
+
/**
|
8
|
+
* CTEInjector accepts a SelectQuery object and an array of CommonTables,
|
9
|
+
* and inserts Common Table Expressions into the query.
|
10
|
+
* For BinarySelectQuery, CTEs are inserted into the left query.
|
11
|
+
*
|
12
|
+
* Uses CTENameConflictResolver to resolve naming conflicts between CTEs.
|
13
|
+
*/
|
14
|
+
class CTEInjector {
|
15
|
+
constructor() {
|
16
|
+
this.nameConflictResolver = new CTEBuilder_1.CTEBuilder();
|
17
|
+
this.cteCollector = new CTECollector_1.CTECollector();
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Inserts Common Table Expressions into a SelectQuery object.
|
21
|
+
*
|
22
|
+
* @param query The query to inject CTEs into
|
23
|
+
* @param commonTables Array of CommonTables to be inserted
|
24
|
+
* @returns A new query with the injected CTEs
|
25
|
+
*/
|
26
|
+
inject(query, commonTables) {
|
27
|
+
// If the array is empty, return the query as is
|
28
|
+
if (commonTables.length === 0) {
|
29
|
+
return query;
|
30
|
+
}
|
31
|
+
// Collect CTEs from the query
|
32
|
+
commonTables.push(...this.cteCollector.collect(query));
|
33
|
+
// Use CTENameConflictResolver to resolve duplicates and sort in appropriate order
|
34
|
+
const resolvedWithCaluse = this.nameConflictResolver.build(commonTables);
|
35
|
+
// Process based on query type
|
36
|
+
if (query instanceof SelectQuery_1.SimpleSelectQuery) {
|
37
|
+
return this.injectIntoSimpleQuery(query, resolvedWithCaluse);
|
38
|
+
}
|
39
|
+
else if (query instanceof SelectQuery_1.BinarySelectQuery) {
|
40
|
+
return this.injectIntoBinaryQuery(query, resolvedWithCaluse);
|
41
|
+
}
|
42
|
+
// Unsupported query type
|
43
|
+
throw new Error("Unsupported query type");
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* Inserts Common Table Expressions into a SimpleSelectQuery.
|
47
|
+
*
|
48
|
+
* @param query The SimpleSelectQuery to inject CTEs into
|
49
|
+
* @param commonTables Array of CommonTables to be inserted
|
50
|
+
* @param needRecursive Boolean indicating if recursive WITH clause is needed
|
51
|
+
* @returns A new SimpleSelectQuery with the injected CTEs
|
52
|
+
*/
|
53
|
+
injectIntoSimpleQuery(query, withClause) {
|
54
|
+
if (query.WithClause) {
|
55
|
+
throw new Error("The query already has a WITH clause. Please remove it before injecting new CTEs.");
|
56
|
+
}
|
57
|
+
// If the query doesn't have a WITH clause, set the new one
|
58
|
+
query.WithClause = withClause;
|
59
|
+
return query;
|
60
|
+
}
|
61
|
+
/**
|
62
|
+
* Inserts Common Table Expressions into the left query of a BinarySelectQuery.
|
63
|
+
*
|
64
|
+
* @param query The BinarySelectQuery to inject CTEs into
|
65
|
+
* @param commonTables Array of CommonTables to be inserted
|
66
|
+
* @param needRecursive Boolean indicating if recursive WITH clause is needed
|
67
|
+
* @returns A new BinarySelectQuery with the injected CTEs
|
68
|
+
*/
|
69
|
+
injectIntoBinaryQuery(query, withClause) {
|
70
|
+
// Insert CTEs into the left query
|
71
|
+
if (query.left instanceof SelectQuery_1.SimpleSelectQuery) {
|
72
|
+
this.injectIntoSimpleQuery(query.left, withClause);
|
73
|
+
return query;
|
74
|
+
}
|
75
|
+
else if (query.left instanceof SelectQuery_1.BinarySelectQuery) {
|
76
|
+
this.injectIntoBinaryQuery(query.left, withClause);
|
77
|
+
return query;
|
78
|
+
}
|
79
|
+
throw new Error("Unsupported query type for BinarySelectQuery left side");
|
80
|
+
}
|
81
|
+
}
|
82
|
+
exports.CTEInjector = CTEInjector;
|
83
|
+
//# sourceMappingURL=CTEInjector.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CTEInjector.js","sourceRoot":"","sources":["../../src/transformers/CTEInjector.ts"],"names":[],"mappings":";;;AACA,uDAAuG;AACvG,iDAA8C;AAC9C,6CAA0C;AAE1C;;;;;;GAMG;AACH,MAAa,WAAW;IAIpB;QACI,IAAI,CAAC,oBAAoB,GAAG,IAAI,uBAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAkB,EAAE,YAA2B;QACzD,gDAAgD;QAChD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,8BAA8B;QAC9B,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvD,kFAAkF;QAClF,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEzE,8BAA8B;QAC9B,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAAC,KAAwB,EAAE,UAAsB;QAC1E,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACxG,CAAC;QACD,2DAA2D;QAC3D,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAAC,KAAwB,EAAE,UAAsB;QAC1E,kCAAkC;QAClC,IAAI,KAAK,CAAC,IAAI,YAAY,+BAAiB,EAAE,CAAC;YAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,YAAY,+BAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC9E,CAAC;CACJ;AA3ED,kCA2EC"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { SelectQuery } from "../models/SelectQuery";
|
2
|
+
/**
|
3
|
+
* CTENormalizer is responsible for normalizing Common Table Expressions (CTEs) within SQL queries.
|
4
|
+
* It collects all CTEs from various parts of the query and consolidates them into a single WITH clause
|
5
|
+
* at the root level of the query.
|
6
|
+
*
|
7
|
+
* This implementation uses:
|
8
|
+
* 1. CommonTableCollector - to gather all CTEs from the query structure
|
9
|
+
* 2. WithClauseDisabler - to remove all original WITH clauses from the query
|
10
|
+
* 3. CTENameConflictResolver - to resolve name conflicts among CTEs and sort them properly
|
11
|
+
*/
|
12
|
+
export declare class CTENormalizer {
|
13
|
+
/**
|
14
|
+
* Private constructor to prevent instantiation of this utility class.
|
15
|
+
*/
|
16
|
+
private constructor();
|
17
|
+
/**
|
18
|
+
* Normalizes a SQL query by consolidating all CTEs into a single WITH clause
|
19
|
+
* at the root level of the query.
|
20
|
+
*
|
21
|
+
* @param query The query to normalize
|
22
|
+
* @returns A new normalized query with all CTEs at the root level
|
23
|
+
*/
|
24
|
+
static normalize(query: SelectQuery): SelectQuery;
|
25
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CTENormalizer = void 0;
|
4
|
+
const CTECollector_1 = require("./CTECollector");
|
5
|
+
const CTEDisabler_1 = require("./CTEDisabler");
|
6
|
+
const CTEInjector_1 = require("./CTEInjector");
|
7
|
+
/**
|
8
|
+
* CTENormalizer is responsible for normalizing Common Table Expressions (CTEs) within SQL queries.
|
9
|
+
* It collects all CTEs from various parts of the query and consolidates them into a single WITH clause
|
10
|
+
* at the root level of the query.
|
11
|
+
*
|
12
|
+
* This implementation uses:
|
13
|
+
* 1. CommonTableCollector - to gather all CTEs from the query structure
|
14
|
+
* 2. WithClauseDisabler - to remove all original WITH clauses from the query
|
15
|
+
* 3. CTENameConflictResolver - to resolve name conflicts among CTEs and sort them properly
|
16
|
+
*/
|
17
|
+
class CTENormalizer {
|
18
|
+
/**
|
19
|
+
* Private constructor to prevent instantiation of this utility class.
|
20
|
+
*/
|
21
|
+
constructor() {
|
22
|
+
// This class is not meant to be instantiated.
|
23
|
+
}
|
24
|
+
/**
|
25
|
+
* Normalizes a SQL query by consolidating all CTEs into a single WITH clause
|
26
|
+
* at the root level of the query.
|
27
|
+
*
|
28
|
+
* @param query The query to normalize
|
29
|
+
* @returns A new normalized query with all CTEs at the root level
|
30
|
+
*/
|
31
|
+
static normalize(query) {
|
32
|
+
// No need to normalize if the query doesn't have any CTEs
|
33
|
+
const cteCollector = new CTECollector_1.CTECollector();
|
34
|
+
const allCommonTables = cteCollector.collect(query);
|
35
|
+
if (allCommonTables.length === 0) {
|
36
|
+
return query;
|
37
|
+
}
|
38
|
+
// Remove all WITH clauses from the original query
|
39
|
+
const cteDisabler = new CTEDisabler_1.CTEDisabler();
|
40
|
+
cteDisabler.execute(query);
|
41
|
+
const injector = new CTEInjector_1.CTEInjector();
|
42
|
+
return injector.inject(query, allCommonTables);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
exports.CTENormalizer = CTENormalizer;
|
46
|
+
//# sourceMappingURL=CTENormalizer.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CTENormalizer.js","sourceRoot":"","sources":["../../src/transformers/CTENormalizer.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAE9C,+CAA4C;AAG5C,+CAA4C;AAE5C;;;;;;;;;GASG;AACH,MAAa,aAAa;IACtB;;OAEG;IACH;QACI,8CAA8C;IAClD,CAAC;IACD;;;;;;OAMG;IACI,MAAM,CAAC,SAAS,CAAC,KAAkB;QACtC,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;QACxC,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;QACtC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,IAAI,yBAAW,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACnD,CAAC;CACJ;AA9BD,sCA8BC"}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
2
|
+
interface FormatterConfig {
|
3
|
+
identifierEscape: {
|
4
|
+
start: string;
|
5
|
+
end: string;
|
6
|
+
};
|
7
|
+
parameterSymbol: string;
|
8
|
+
}
|
9
|
+
export declare class Formatter implements SqlComponentVisitor<string> {
|
10
|
+
private handlers;
|
11
|
+
private config;
|
12
|
+
constructor();
|
13
|
+
/**
|
14
|
+
* Formats the given SQL AST node into a SQL string.
|
15
|
+
* This is the recommended public API for users.
|
16
|
+
* @param arg The root SQL AST node to format.
|
17
|
+
* @param config (Optional) Formatter configuration.
|
18
|
+
* @returns The formatted SQL string.
|
19
|
+
*/
|
20
|
+
format(arg: SqlComponent, config?: FormatterConfig | null): string;
|
21
|
+
/**
|
22
|
+
* Visitor entry point for SQL AST nodes.
|
23
|
+
* Note: This method is public only for interface compatibility.
|
24
|
+
* Users should call the format() method instead of visit() directly.
|
25
|
+
* (If you call visit() directly, you are basically breaking the abstraction, so don't do it!)
|
26
|
+
* @param arg The SQL AST node to visit.
|
27
|
+
* @returns The formatted SQL string for the node.
|
28
|
+
*/
|
29
|
+
visit(arg: SqlComponent): string;
|
30
|
+
private visitBinarySelectQuery;
|
31
|
+
private visitWindowFrameBoundaryValue;
|
32
|
+
private visitWindowFrameBoundStatic;
|
33
|
+
private visitWindowFrameExpression;
|
34
|
+
private visitWindowFrameSpec;
|
35
|
+
private visitJoinUsingClause;
|
36
|
+
private visitJoinOnClause;
|
37
|
+
private visitTypeValue;
|
38
|
+
private visitStringSpecifierExpression;
|
39
|
+
private visitWithClause;
|
40
|
+
private visitCommonTable;
|
41
|
+
private visitDistinctOn;
|
42
|
+
private visitDistinct;
|
43
|
+
private visitHavingClause;
|
44
|
+
private visitGroupByClause;
|
45
|
+
private visitFromClause;
|
46
|
+
private visitJoinClause;
|
47
|
+
private visitSourceAliasExpression;
|
48
|
+
private visitSourceExpression;
|
49
|
+
private visitSubQuerySource;
|
50
|
+
private visitFunctionSource;
|
51
|
+
private visitTableSource;
|
52
|
+
private visitValueList;
|
53
|
+
private visitSwitchCaseArgument;
|
54
|
+
private visitColumnReference;
|
55
|
+
private visitFunctionCall;
|
56
|
+
private visitUnaryExpression;
|
57
|
+
private visitBinaryExpression;
|
58
|
+
private visitLiteralExpression;
|
59
|
+
private visitParameterExpression;
|
60
|
+
private visitSelectExpression;
|
61
|
+
private visitSelectClause;
|
62
|
+
private visitSelectQuery;
|
63
|
+
private visitArrayExpression;
|
64
|
+
private visitCaseExpression;
|
65
|
+
private visitCastExpression;
|
66
|
+
private visitBracketExpression;
|
67
|
+
private visitBetweenExpression;
|
68
|
+
private visitPartitionByClause;
|
69
|
+
private visitOrderByClause;
|
70
|
+
private visitOrderByItem;
|
71
|
+
private visitWindowFrameClause;
|
72
|
+
private visitLimitClause;
|
73
|
+
private visitFetchSpecification;
|
74
|
+
private visitForClause;
|
75
|
+
private visitWhereClause;
|
76
|
+
private visitInlineQuery;
|
77
|
+
private visitRawString;
|
78
|
+
private visitIdentifierString;
|
79
|
+
private visitValuesQuery;
|
80
|
+
private visitTupleExpression;
|
81
|
+
}
|
82
|
+
export {};
|