rawsql-ts 0.1.0-beta.6 → 0.1.0-beta.8
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/dist/index.d.ts +13 -0
- package/dist/models/BinarySelectQuery.d.ts +91 -0
- package/dist/models/Clause.d.ts +189 -0
- package/dist/models/KeywordTrie.d.ts +11 -0
- package/dist/models/Lexeme.d.ts +25 -0
- package/dist/models/SelectQuery.d.ts +5 -0
- package/dist/models/SimpleSelectQuery.d.ts +167 -0
- package/dist/models/SqlComponent.d.ts +18 -0
- package/dist/models/ValueComponent.d.ts +158 -0
- package/dist/models/ValuesQuery.d.ts +10 -0
- package/dist/parsers/CommandExpressionParser.d.ts +15 -0
- package/dist/parsers/CommonTableParser.d.ts +9 -0
- package/dist/parsers/ForClauseParser.d.ts +9 -0
- package/dist/parsers/FromClauseParser.d.ts +9 -0
- package/dist/parsers/FunctionExpressionParser.d.ts +22 -0
- package/dist/parsers/GroupByParser.d.ts +10 -0
- package/dist/parsers/HavingParser.d.ts +9 -0
- package/dist/parsers/IdentifierParser.d.ts +8 -0
- package/dist/parsers/JoinClauseParser.d.ts +14 -0
- package/dist/parsers/KeywordParser.d.ts +17 -0
- package/dist/parsers/LimitClauseParser.d.ts +9 -0
- package/dist/parsers/LiteralParser.d.ts +8 -0
- package/dist/parsers/OrderByClauseParser.d.ts +10 -0
- package/dist/parsers/OverExpressionParser.d.ts +9 -0
- package/dist/parsers/ParameterExpressionParser.d.ts +8 -0
- package/dist/parsers/ParenExpressionParser.d.ts +8 -0
- package/dist/parsers/PartitionByParser.d.ts +9 -0
- package/dist/parsers/SelectClauseParser.d.ts +10 -0
- package/dist/parsers/SelectQueryParser.d.ts +13 -0
- package/dist/parsers/SourceAliasExpressionParser.d.ts +8 -0
- package/dist/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/parsers/SourceParser.d.ts +13 -0
- package/dist/parsers/SqlTokenizer.d.ts +64 -0
- package/dist/parsers/StringSpecifierExpressionParser.d.ts +8 -0
- package/dist/parsers/UnaryExpressionParser.d.ts +8 -0
- package/dist/parsers/ValueParser.d.ts +14 -0
- package/dist/parsers/ValuesQueryParser.d.ts +10 -0
- package/dist/parsers/WhereClauseParser.d.ts +9 -0
- package/dist/parsers/WindowClauseParser.d.ts +9 -0
- package/dist/parsers/WindowExpressionParser.d.ts +12 -0
- package/dist/parsers/WithClauseParser.d.ts +9 -0
- package/dist/tokenReaders/BaseTokenReader.d.ts +43 -0
- package/dist/tokenReaders/CommandTokenReader.d.ts +7 -0
- package/dist/tokenReaders/FunctionTokenReader.d.ts +11 -0
- package/dist/tokenReaders/IdentifierTokenReader.d.ts +15 -0
- package/dist/tokenReaders/LiteralTokenReader.d.ts +23 -0
- package/dist/tokenReaders/OperatorTokenReader.d.ts +5 -0
- package/dist/tokenReaders/ParameterTokenReader.d.ts +11 -0
- package/dist/tokenReaders/StringSpecifierTokenReader.d.ts +8 -0
- package/dist/tokenReaders/SymbolTokenReader.d.ts +12 -0
- package/dist/tokenReaders/TokenReaderManager.d.ts +53 -0
- package/dist/tokenReaders/TypeTokenReader.d.ts +11 -0
- package/dist/transformers/CTEBuilder.d.ts +52 -0
- package/dist/transformers/CTECollector.d.ts +81 -0
- package/dist/transformers/CTEDisabler.d.ts +77 -0
- package/dist/transformers/CTEInjector.d.ts +40 -0
- package/dist/transformers/CTENormalizer.d.ts +25 -0
- package/dist/transformers/Formatter.d.ts +67 -0
- package/dist/transformers/QueryNormalizer.d.ts +37 -0
- package/dist/transformers/SelectValueCollector.d.ts +62 -0
- package/dist/transformers/SelectableColumnCollector.d.ts +70 -0
- package/dist/transformers/TableSourceCollector.d.ts +92 -0
- package/dist/transformers/UpstreamSelectQueryFinder.d.ts +27 -0
- package/dist/utils/charLookupTable.d.ts +11 -0
- package/dist/utils/stringUtils.d.ts +43 -0
- package/package.json +6 -3
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/904140CF7EDF0C98AEA45F0D36062FE1 +0 -1
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/A32D1DB906C73FA74EF270AAEE165FC0 +0 -86
- 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
@@ -0,0 +1,11 @@
|
|
1
|
+
import { BaseTokenReader } from './BaseTokenReader';
|
2
|
+
import { Lexeme } from '../models/Lexeme';
|
3
|
+
/**
|
4
|
+
* Reads SQL identifier tokens
|
5
|
+
*/
|
6
|
+
export declare class TypeTokenReader extends BaseTokenReader {
|
7
|
+
/**
|
8
|
+
* Try to read an identifier token
|
9
|
+
*/
|
10
|
+
tryRead(previous: Lexeme | null): Lexeme | null;
|
11
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { CommonTable, WithClause } from "../models/Clause";
|
2
|
+
/**
|
3
|
+
* CTENameConflictResolver is responsible for resolving name conflicts among Common Table Expressions (CTEs).
|
4
|
+
* It also sorts the tables in the proper order based on dependencies and recursiveness.
|
5
|
+
*/
|
6
|
+
export declare class CTEBuilder {
|
7
|
+
private sourceCollector;
|
8
|
+
private cteCollector;
|
9
|
+
private formatter;
|
10
|
+
constructor();
|
11
|
+
/**
|
12
|
+
* Resolves name conflicts among CommonTables.
|
13
|
+
* If there are duplicate CTE names, they must have identical definitions.
|
14
|
+
* Also sorts the tables so that:
|
15
|
+
* 1. Recursive CTEs come first (CTEs that reference themselves)
|
16
|
+
* 2. Then remaining tables are sorted so inner (deeper) CTEs come before outer CTEs
|
17
|
+
*
|
18
|
+
* @param commonTables The list of CommonTables to check for name conflicts
|
19
|
+
* @returns An object containing:
|
20
|
+
* - needRecursive: boolean indicating if any recursive CTEs are present
|
21
|
+
* - commonTables: A new list of CommonTables with resolved name conflicts and proper order
|
22
|
+
* @throws Error if there are duplicate CTE names with different definitions
|
23
|
+
*/
|
24
|
+
build(commonTables: CommonTable[]): WithClause;
|
25
|
+
/**
|
26
|
+
* Resolves duplicate CTE names by checking if they have identical definitions.
|
27
|
+
* If definitions differ, throws an error.
|
28
|
+
*
|
29
|
+
* @param commonTables The list of CTEs to check for duplicates
|
30
|
+
* @returns A list of CTEs with duplicates removed
|
31
|
+
* @throws Error if there are duplicate CTE names with different definitions
|
32
|
+
*/
|
33
|
+
private resolveDuplicateNames;
|
34
|
+
/**
|
35
|
+
* Builds a dependency graph of CTEs and identifies recursive CTEs.
|
36
|
+
*
|
37
|
+
* @param tables The list of CTEs to analyze
|
38
|
+
* @returns Object containing the table map, set of recursive CTEs, and dependency map
|
39
|
+
*/
|
40
|
+
private buildDependencyGraph;
|
41
|
+
/**
|
42
|
+
* Sorts the CTEs using topological sort, with recursive CTEs coming first.
|
43
|
+
*
|
44
|
+
* @param tables The list of CTEs to sort
|
45
|
+
* @param tableMap Map of table names to their CommonTable objects
|
46
|
+
* @param recursiveCTEs Set of table names that are recursive (self-referential)
|
47
|
+
* @param dependencies Map of table dependencies
|
48
|
+
* @returns Sorted list of CTEs
|
49
|
+
* @throws Error if a circular reference is detected
|
50
|
+
*/
|
51
|
+
private sortCommonTables;
|
52
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { CommonTable } from "../models/Clause";
|
2
|
+
import { SelectQuery } from "../models/SelectQuery";
|
3
|
+
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
4
|
+
/**
|
5
|
+
* A visitor that collects all CommonTable instances from a SQL query structure.
|
6
|
+
* This includes tables from:
|
7
|
+
* - WITH clauses
|
8
|
+
* - Subqueries
|
9
|
+
* - Inline queries
|
10
|
+
* - UNION queries
|
11
|
+
* - Value components that may contain queries
|
12
|
+
*/
|
13
|
+
export declare class CTECollector implements SqlComponentVisitor<void> {
|
14
|
+
private handlers;
|
15
|
+
private commonTables;
|
16
|
+
private visitedNodes;
|
17
|
+
private isRootVisit;
|
18
|
+
constructor();
|
19
|
+
/**
|
20
|
+
* Get all collected CommonTables
|
21
|
+
*/
|
22
|
+
getCommonTables(): CommonTable[];
|
23
|
+
/**
|
24
|
+
* Reset the collection of CommonTables
|
25
|
+
*/
|
26
|
+
private reset;
|
27
|
+
collect(query: SelectQuery): CommonTable[];
|
28
|
+
/**
|
29
|
+
* Main entry point for the visitor pattern.
|
30
|
+
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
31
|
+
*/
|
32
|
+
visit(arg: SqlComponent): void;
|
33
|
+
/**
|
34
|
+
* Internal visit method used for all nodes.
|
35
|
+
* This separates the visit flag management from the actual node visitation logic.
|
36
|
+
*/
|
37
|
+
private visitNode;
|
38
|
+
private visitSimpleSelectQuery;
|
39
|
+
private visitBinarySelectQuery;
|
40
|
+
private visitValuesQuery;
|
41
|
+
private visitWithClause;
|
42
|
+
private visitCommonTable;
|
43
|
+
private visitSelectClause;
|
44
|
+
private visitSelectItem;
|
45
|
+
private visitFromClause;
|
46
|
+
private visitSourceExpression;
|
47
|
+
private visitTableSource;
|
48
|
+
private visitParenSource;
|
49
|
+
private visitSubQuerySource;
|
50
|
+
private visitInlineQuery;
|
51
|
+
private visitJoinClause;
|
52
|
+
private visitJoinOnClause;
|
53
|
+
private visitJoinUsingClause;
|
54
|
+
private visitWhereClause;
|
55
|
+
private visitGroupByClause;
|
56
|
+
private visitHavingClause;
|
57
|
+
private visitOrderByClause;
|
58
|
+
private visitWindowFrameClause;
|
59
|
+
private visitLimitClause;
|
60
|
+
private visitForClause;
|
61
|
+
private visitOrderByItem;
|
62
|
+
private visitParenExpression;
|
63
|
+
private visitBinaryExpression;
|
64
|
+
private visitUnaryExpression;
|
65
|
+
private visitCaseExpression;
|
66
|
+
private visitSwitchCaseArgument;
|
67
|
+
private visitCaseKeyValuePair;
|
68
|
+
private visitBetweenExpression;
|
69
|
+
private visitFunctionCall;
|
70
|
+
private visitArrayExpression;
|
71
|
+
private visitTupleExpression;
|
72
|
+
private visitCastExpression;
|
73
|
+
private visitTypeValue;
|
74
|
+
private visitWindowFrameExpression;
|
75
|
+
private visitWindowFrameSpec;
|
76
|
+
private visitIdentifierString;
|
77
|
+
private visitRawString;
|
78
|
+
private visitColumnReference;
|
79
|
+
private visitParameterExpression;
|
80
|
+
private visitLiteralValue;
|
81
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import { ForClause, FromClause, GroupByClause, HavingClause, JoinClause, JoinOnClause, JoinUsingClause, LimitClause, OrderByClause, OrderByItem, ParenSource, SelectClause, SelectItem, SourceExpression, SubQuerySource, TableSource, WhereClause, WindowFrameClause } from "../models/Clause";
|
2
|
+
import { BinarySelectQuery, SimpleSelectQuery, SelectQuery, ValuesQuery } from "../models/SelectQuery";
|
3
|
+
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
4
|
+
import { ArrayExpression, BetweenExpression, BinaryExpression, CaseExpression, CaseKeyValuePair, CastExpression, ColumnReference, FunctionCall, InlineQuery, ParenExpression, ParameterExpression, SwitchCaseArgument, TupleExpression, UnaryExpression, ValueComponent, WindowFrameExpression, IdentifierString, RawString, WindowFrameSpec, TypeValue } from "../models/ValueComponent";
|
5
|
+
/**
|
6
|
+
* A visitor that disables all WITH clauses in a SQL query structure.
|
7
|
+
* This processes and removes WITH clauses from:
|
8
|
+
* - Simple SELECT queries
|
9
|
+
* - Binary queries (UNION, EXCEPT, etc.)
|
10
|
+
* - Subqueries
|
11
|
+
* - Inline queries
|
12
|
+
*
|
13
|
+
* It maintains the CTE queries themselves but restructures the query to not use
|
14
|
+
* the WITH clause syntactical construct.
|
15
|
+
*/
|
16
|
+
export declare class CTEDisabler implements SqlComponentVisitor<SqlComponent> {
|
17
|
+
private handlers;
|
18
|
+
private visitedNodes;
|
19
|
+
private isRootVisit;
|
20
|
+
constructor();
|
21
|
+
/**
|
22
|
+
* Reset the visited nodes tracking
|
23
|
+
*/
|
24
|
+
private reset;
|
25
|
+
execute(arg: SqlComponent): SelectQuery;
|
26
|
+
/**
|
27
|
+
* Main entry point for the visitor pattern.
|
28
|
+
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
29
|
+
*/
|
30
|
+
visit(arg: SqlComponent): SqlComponent;
|
31
|
+
/**
|
32
|
+
* Internal visit method used for all nodes.
|
33
|
+
* This separates the visit flag management from the actual node visitation logic.
|
34
|
+
*/
|
35
|
+
private visitNode;
|
36
|
+
visitSimpleSelectQuery(arg: SimpleSelectQuery): SqlComponent;
|
37
|
+
visitBinarySelectQuery(query: BinarySelectQuery): SqlComponent;
|
38
|
+
visitValuesQuery(query: ValuesQuery): SqlComponent;
|
39
|
+
visitSelectClause(clause: SelectClause): SqlComponent;
|
40
|
+
visitFromClause(clause: FromClause): SqlComponent;
|
41
|
+
visitSubQuerySource(subQuery: SubQuerySource): SqlComponent;
|
42
|
+
visitInlineQuery(inlineQuery: InlineQuery): SqlComponent;
|
43
|
+
visitJoinClause(joinClause: JoinClause): SqlComponent;
|
44
|
+
visitJoinOnClause(joinOn: JoinOnClause): SqlComponent;
|
45
|
+
visitJoinUsingClause(joinUsing: JoinUsingClause): SqlComponent;
|
46
|
+
visitWhereClause(whereClause: WhereClause): SqlComponent;
|
47
|
+
visitGroupByClause(clause: GroupByClause): SqlComponent;
|
48
|
+
visitHavingClause(clause: HavingClause): SqlComponent;
|
49
|
+
visitOrderByClause(clause: OrderByClause): SqlComponent;
|
50
|
+
visitWindowFrameClause(clause: WindowFrameClause): SqlComponent;
|
51
|
+
visitLimitClause(clause: LimitClause): SqlComponent;
|
52
|
+
visitForClause(clause: ForClause): SqlComponent;
|
53
|
+
visitParenExpression(expr: ParenExpression): SqlComponent;
|
54
|
+
visitBinaryExpression(expr: BinaryExpression): SqlComponent;
|
55
|
+
visitUnaryExpression(expr: UnaryExpression): SqlComponent;
|
56
|
+
visitCaseExpression(expr: CaseExpression): SqlComponent;
|
57
|
+
visitSwitchCaseArgument(switchCase: SwitchCaseArgument): SqlComponent;
|
58
|
+
visitCaseKeyValuePair(pair: CaseKeyValuePair): SqlComponent;
|
59
|
+
visitBetweenExpression(expr: BetweenExpression): SqlComponent;
|
60
|
+
visitFunctionCall(func: FunctionCall): SqlComponent;
|
61
|
+
visitArrayExpression(expr: ArrayExpression): SqlComponent;
|
62
|
+
visitTupleExpression(expr: TupleExpression): SqlComponent;
|
63
|
+
visitCastExpression(expr: CastExpression): SqlComponent;
|
64
|
+
visitTypeValue(typeValue: TypeValue): SqlComponent;
|
65
|
+
visitSelectItem(item: SelectItem): SqlComponent;
|
66
|
+
visitIdentifierString(ident: IdentifierString): SqlComponent;
|
67
|
+
visitRawString(raw: RawString): SqlComponent;
|
68
|
+
visitColumnReference(column: ColumnReference): SqlComponent;
|
69
|
+
visitSourceExpression(source: SourceExpression): SqlComponent;
|
70
|
+
visitTableSource(source: TableSource): SqlComponent;
|
71
|
+
visitParenSource(source: ParenSource): SqlComponent;
|
72
|
+
visitParameterExpression(param: ParameterExpression): SqlComponent;
|
73
|
+
visitWindowFrameExpression(expr: WindowFrameExpression): SqlComponent;
|
74
|
+
visitWindowFrameSpec(spec: WindowFrameSpec): SqlComponent;
|
75
|
+
visitLiteralValue(value: ValueComponent): SqlComponent;
|
76
|
+
visitOrderByItem(item: OrderByItem): SqlComponent;
|
77
|
+
}
|
@@ -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,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
|
+
private cteCollector;
|
14
|
+
private cteDisabler;
|
15
|
+
private injector;
|
16
|
+
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
|
+
normalize(query: SelectQuery): SelectQuery;
|
25
|
+
}
|
@@ -0,0 +1,67 @@
|
|
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
|
+
execute(arg: SqlComponent, config?: FormatterConfig | null): string;
|
14
|
+
visit(arg: SqlComponent): string;
|
15
|
+
private visitBinarySelectQuery;
|
16
|
+
private visitWindowFrameBoundaryValue;
|
17
|
+
private visitWindowFrameBoundStatic;
|
18
|
+
private visitWindowFrameExpression;
|
19
|
+
private visitWindowFrameSpec;
|
20
|
+
private visitJoinUsingClause;
|
21
|
+
private visitJoinOnClause;
|
22
|
+
private visitTypeValue;
|
23
|
+
private visitStringSpecifierExpression;
|
24
|
+
private visitWithClause;
|
25
|
+
private visitCommonTable;
|
26
|
+
private visitDistinctOn;
|
27
|
+
private visitDistinct;
|
28
|
+
private visitHavingClause;
|
29
|
+
private visitGroupByClause;
|
30
|
+
private visitFromClause;
|
31
|
+
private visitJoinClause;
|
32
|
+
private visitSourceAliasExpression;
|
33
|
+
private visitSourceExpression;
|
34
|
+
private visitSubQuerySource;
|
35
|
+
private visitFunctionSource;
|
36
|
+
private visitTableSource;
|
37
|
+
private visitValueList;
|
38
|
+
private visitSwitchCaseArgument;
|
39
|
+
private visitColumnReference;
|
40
|
+
private visitFunctionCall;
|
41
|
+
private visitUnaryExpression;
|
42
|
+
private visitBinaryExpression;
|
43
|
+
private visitLiteralExpression;
|
44
|
+
private visitParameterExpression;
|
45
|
+
private visitSelectExpression;
|
46
|
+
private visitSelectClause;
|
47
|
+
private visitSelectQuery;
|
48
|
+
private visitArrayExpression;
|
49
|
+
private visitCaseExpression;
|
50
|
+
private visitCastExpression;
|
51
|
+
private visitBracketExpression;
|
52
|
+
private visitBetweenExpression;
|
53
|
+
private visitPartitionByClause;
|
54
|
+
private visitOrderByClause;
|
55
|
+
private visitOrderByItem;
|
56
|
+
private visitWindowFrameClause;
|
57
|
+
private visitLimitClause;
|
58
|
+
private visitFetchSpecification;
|
59
|
+
private visitForClause;
|
60
|
+
private visitWhereClause;
|
61
|
+
private visitInlineQuery;
|
62
|
+
private visitRawString;
|
63
|
+
private visitIdentifierString;
|
64
|
+
private visitValuesQuery;
|
65
|
+
private visitTupleExpression;
|
66
|
+
}
|
67
|
+
export {};
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
2
|
+
/**
|
3
|
+
* Normalizes SELECT queries by converting different query types to a standard SimpleSelectQuery format.
|
4
|
+
* - Simple SELECT queries are returned as-is
|
5
|
+
* - Binary queries (UNION, etc.) are wrapped in a subquery: SELECT * FROM (original) AS bq
|
6
|
+
* - VALUES queries are given sequentially numbered columns: SELECT * FROM (original) AS vq(column1, column2, ...)
|
7
|
+
*/
|
8
|
+
export declare class QueryNormalizer {
|
9
|
+
/**
|
10
|
+
* Normalizes a SELECT query to a standard form
|
11
|
+
*
|
12
|
+
* @param query The query to normalize
|
13
|
+
* @returns A normalized SimpleSelectQuery
|
14
|
+
*/
|
15
|
+
normalize(query: SelectQuery): SimpleSelectQuery;
|
16
|
+
/**
|
17
|
+
* Converts a binary query (UNION, EXCEPT, etc.) to a simple query
|
18
|
+
* by wrapping it in a SELECT * FROM (original) AS bq
|
19
|
+
*
|
20
|
+
* @param query The binary query to normalize
|
21
|
+
* @returns A normalized SimpleSelectQuery
|
22
|
+
*/
|
23
|
+
private normalizeBinaryQuery;
|
24
|
+
/**
|
25
|
+
* Converts a VALUES query to a simple query with sequentially numbered columns
|
26
|
+
*
|
27
|
+
* @param query The VALUES query to normalize
|
28
|
+
* @returns A normalized SimpleSelectQuery
|
29
|
+
*/
|
30
|
+
private normalizeValuesQuery;
|
31
|
+
/**
|
32
|
+
* Creates a SELECT clause with a single * (all columns) item
|
33
|
+
*
|
34
|
+
* @returns A SELECT clause with *
|
35
|
+
*/
|
36
|
+
private createSelectAllClause;
|
37
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import { CommonTable } from "../models/Clause";
|
2
|
+
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
3
|
+
import { ValueComponent } from "../models/ValueComponent";
|
4
|
+
/**
|
5
|
+
* Type definition for a function that resolves column names from a table name
|
6
|
+
*/
|
7
|
+
export type TableColumnResolver = (tableName: string) => string[];
|
8
|
+
/**
|
9
|
+
* A visitor that collects all SelectItem instances from a SQL query structure.
|
10
|
+
* This visitor scans through select clauses and collects all the SelectItem objects.
|
11
|
+
* It can also resolve wildcard selectors (table.* or *) using a provided table column resolver.
|
12
|
+
*/
|
13
|
+
export declare class SelectValueCollector implements SqlComponentVisitor<void> {
|
14
|
+
private handlers;
|
15
|
+
private selectValues;
|
16
|
+
private visitedNodes;
|
17
|
+
private isRootVisit;
|
18
|
+
private tableColumnResolver?;
|
19
|
+
private commonTableCollector;
|
20
|
+
private commonTables;
|
21
|
+
initialCommonTables: CommonTable[] | null;
|
22
|
+
constructor(tableColumnResolver?: TableColumnResolver, initialCommonTables?: CommonTable[] | null);
|
23
|
+
/**
|
24
|
+
* Get all collected SelectItems as an array of objects with name and value properties
|
25
|
+
* @returns An array of objects with name (string) and value (ValueComponent) properties
|
26
|
+
*/
|
27
|
+
getValues(): {
|
28
|
+
name: string;
|
29
|
+
value: ValueComponent;
|
30
|
+
}[];
|
31
|
+
/**
|
32
|
+
* Reset the collection of SelectItems
|
33
|
+
*/
|
34
|
+
private reset;
|
35
|
+
collect(arg: SqlComponent): {
|
36
|
+
name: string;
|
37
|
+
value: ValueComponent;
|
38
|
+
}[];
|
39
|
+
/**
|
40
|
+
* Main entry point for the visitor pattern.
|
41
|
+
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
42
|
+
*/
|
43
|
+
visit(arg: SqlComponent): void;
|
44
|
+
/**
|
45
|
+
* Internal visit method used for all nodes.
|
46
|
+
* This separates the visit flag management from the actual node visitation logic.
|
47
|
+
*/
|
48
|
+
private visitNode;
|
49
|
+
/**
|
50
|
+
* Process a SimpleSelectQuery to collect data and store the current context
|
51
|
+
*/
|
52
|
+
private visitSimpleSelectQuery;
|
53
|
+
private processFromClause;
|
54
|
+
private processJoinClause;
|
55
|
+
private processSourceExpression;
|
56
|
+
private visitSelectClause;
|
57
|
+
private processSelectItem;
|
58
|
+
private processValueComponent;
|
59
|
+
private visitSourceExpression;
|
60
|
+
private visitFromClause;
|
61
|
+
private addSelectValueAsUnique;
|
62
|
+
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
2
|
+
import { ValueComponent } from "../models/ValueComponent";
|
3
|
+
import { TableColumnResolver } from "./SelectValueCollector";
|
4
|
+
/**
|
5
|
+
* A visitor that collects all ColumnReference instances from a SQL query structure.
|
6
|
+
* This visitor scans through all clauses and collects all unique ColumnReference objects.
|
7
|
+
* It does not scan Common Table Expressions (CTEs) or subqueries.
|
8
|
+
*
|
9
|
+
* Important: Only collects column references to tables defined in the root FROM/JOIN clauses,
|
10
|
+
* as these are the only columns that can be directly referenced in the query.
|
11
|
+
*/
|
12
|
+
export declare class SelectableColumnCollector implements SqlComponentVisitor<void> {
|
13
|
+
private handlers;
|
14
|
+
private selectValues;
|
15
|
+
private visitedNodes;
|
16
|
+
private formatter;
|
17
|
+
private isRootVisit;
|
18
|
+
private tableColumnResolver?;
|
19
|
+
private commonTableCollector;
|
20
|
+
private selectValueCollector;
|
21
|
+
private commonTables;
|
22
|
+
constructor(tableColumnResolver?: TableColumnResolver);
|
23
|
+
getValues(): {
|
24
|
+
name: string;
|
25
|
+
value: ValueComponent;
|
26
|
+
}[];
|
27
|
+
collect(arg: SqlComponent): {
|
28
|
+
name: string;
|
29
|
+
value: ValueComponent;
|
30
|
+
}[];
|
31
|
+
/**
|
32
|
+
* Reset the collection of ColumnReferences
|
33
|
+
*/
|
34
|
+
private reset;
|
35
|
+
private addSelectValueAsUnique;
|
36
|
+
/**
|
37
|
+
* Main entry point for the visitor pattern.
|
38
|
+
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
39
|
+
*/
|
40
|
+
visit(arg: SqlComponent): void;
|
41
|
+
/**
|
42
|
+
* Internal visit method used for all nodes.
|
43
|
+
* This separates the visit flag management from the actual node visitation logic.
|
44
|
+
*/
|
45
|
+
private visitNode;
|
46
|
+
/**
|
47
|
+
* Process a SimpleSelectQuery to collect ColumnReferences from all its clauses
|
48
|
+
*/
|
49
|
+
private visitSimpleSelectQuery;
|
50
|
+
private visitSelectClause;
|
51
|
+
private visitFromClause;
|
52
|
+
private visitWhereClause;
|
53
|
+
private visitGroupByClause;
|
54
|
+
private visitHavingClause;
|
55
|
+
private visitOrderByClause;
|
56
|
+
private visitWindowFrameClause;
|
57
|
+
private visitLimitClause;
|
58
|
+
private visitJoinOnClause;
|
59
|
+
private visitJoinUsingClause;
|
60
|
+
private visitColumnReference;
|
61
|
+
private visitBinaryExpression;
|
62
|
+
private visitUnaryExpression;
|
63
|
+
private visitFunctionCall;
|
64
|
+
private visitParenExpression;
|
65
|
+
private visitCaseExpression;
|
66
|
+
private visitCastExpression;
|
67
|
+
private visitBetweenExpression;
|
68
|
+
private visitArrayExpression;
|
69
|
+
private visitValueList;
|
70
|
+
}
|
@@ -0,0 +1,92 @@
|
|
1
|
+
import { TableSource } from "../models/Clause";
|
2
|
+
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
3
|
+
/**
|
4
|
+
* A visitor that collects all table source names from a SQL query structure.
|
5
|
+
*
|
6
|
+
* When selectableOnly is true (default behavior):
|
7
|
+
* - Includes only table sources from FROM and JOIN clauses
|
8
|
+
* - Excludes inline queries, subqueries, and CTEs
|
9
|
+
*
|
10
|
+
* When selectableOnly is false:
|
11
|
+
* - Scans all parts of the query including WITH clauses, subqueries, etc.
|
12
|
+
* - Collects all table sources from the entire query
|
13
|
+
* - Excludes tables that are managed by CTEs
|
14
|
+
*
|
15
|
+
* For UNION-like queries, it scans both the left and right parts.
|
16
|
+
*/
|
17
|
+
export declare class TableSourceCollector implements SqlComponentVisitor<void> {
|
18
|
+
private handlers;
|
19
|
+
private tableSources;
|
20
|
+
private visitedNodes;
|
21
|
+
private tableNameMap;
|
22
|
+
private selectableOnly;
|
23
|
+
private cteNames;
|
24
|
+
private isRootVisit;
|
25
|
+
constructor(selectableOnly?: boolean);
|
26
|
+
/**
|
27
|
+
* Gets all collected table sources
|
28
|
+
*/
|
29
|
+
getTableSources(): TableSource[];
|
30
|
+
/**
|
31
|
+
* Reset the collection of table sources
|
32
|
+
*/
|
33
|
+
private reset;
|
34
|
+
/**
|
35
|
+
* Gets a unique identifier for a table source
|
36
|
+
*/
|
37
|
+
private getTableIdentifier;
|
38
|
+
collect(query: SqlComponent): TableSource[];
|
39
|
+
/**
|
40
|
+
* Main entry point for the visitor pattern.
|
41
|
+
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
42
|
+
*/
|
43
|
+
visit(arg: SqlComponent): void;
|
44
|
+
/**
|
45
|
+
* Internal visit method used for all nodes.
|
46
|
+
* This separates the visit flag management from the actual node visitation logic.
|
47
|
+
*/
|
48
|
+
private visitNode;
|
49
|
+
/**
|
50
|
+
* Collects all CTE names to exclude them from real table sources
|
51
|
+
*/
|
52
|
+
private collectCTEs;
|
53
|
+
private visitSimpleSelectQuery;
|
54
|
+
private visitBinarySelectQuery;
|
55
|
+
private visitValuesQuery;
|
56
|
+
private visitWithClause;
|
57
|
+
private visitCommonTable;
|
58
|
+
private visitFromClause;
|
59
|
+
private visitSourceExpression;
|
60
|
+
private visitTableSource;
|
61
|
+
/**
|
62
|
+
* Checks if a table name is a CTE name
|
63
|
+
*/
|
64
|
+
private isCTETable;
|
65
|
+
private visitParenSource;
|
66
|
+
private visitSubQuerySource;
|
67
|
+
private visitInlineQuery;
|
68
|
+
private visitJoinClause;
|
69
|
+
private visitJoinOnClause;
|
70
|
+
private visitJoinUsingClause;
|
71
|
+
private visitWhereClause;
|
72
|
+
private visitGroupByClause;
|
73
|
+
private visitHavingClause;
|
74
|
+
private visitOrderByClause;
|
75
|
+
private visitWindowFrameClause;
|
76
|
+
private visitLimitClause;
|
77
|
+
private visitForClause;
|
78
|
+
private visitOrderByItem;
|
79
|
+
private visitSelectClause;
|
80
|
+
private visitSelectItem;
|
81
|
+
private visitParenExpression;
|
82
|
+
private visitBinaryExpression;
|
83
|
+
private visitUnaryExpression;
|
84
|
+
private visitCaseExpression;
|
85
|
+
private visitSwitchCaseArgument;
|
86
|
+
private visitCaseKeyValuePair;
|
87
|
+
private visitBetweenExpression;
|
88
|
+
private visitFunctionCall;
|
89
|
+
private visitArrayExpression;
|
90
|
+
private visitTupleExpression;
|
91
|
+
private visitCastExpression;
|
92
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { SelectQuery } from "../models/SelectQuery";
|
2
|
+
/**
|
3
|
+
* UpstreamSelectQueryFinder searches upstream queries for the specified columns.
|
4
|
+
* If a query (including its upstream CTEs or subqueries) contains all columns,
|
5
|
+
* it returns the highest such SelectQuery. Otherwise, it searches downstream.
|
6
|
+
* For UNION queries, it checks each branch independently.
|
7
|
+
*/
|
8
|
+
export declare class UpstreamSelectQueryFinder {
|
9
|
+
private tableColumnResolver?;
|
10
|
+
private columnCollector;
|
11
|
+
constructor(tableColumnResolver?: (tableName: string) => string[]);
|
12
|
+
/**
|
13
|
+
* Finds the highest SelectQuery containing all specified columns.
|
14
|
+
* @param query The root SelectQuery to search.
|
15
|
+
* @param columnNames Array of column names to check for.
|
16
|
+
* @returns An array of SelectQuery objects, or an empty array if not found.
|
17
|
+
*/
|
18
|
+
find(query: SelectQuery, columnNames: string[]): SelectQuery[];
|
19
|
+
private handleTableSource;
|
20
|
+
private handleSubQuerySource;
|
21
|
+
/**
|
22
|
+
* Processes all source branches in a FROM clause and checks if all upstream queries contain the specified columns.
|
23
|
+
* Returns a flat array of SelectQuery if all branches are valid, otherwise null.
|
24
|
+
*/
|
25
|
+
private processFromClauseBranches;
|
26
|
+
private findUpstream;
|
27
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/**
|
2
|
+
* Fast character classification utilities for SQL tokenization
|
3
|
+
*/
|
4
|
+
export declare class CharLookupTable {
|
5
|
+
static isWhitespace(char: string): boolean;
|
6
|
+
static isDigit(char: string): boolean;
|
7
|
+
static isHexChar(char: string): boolean;
|
8
|
+
static isOperatorSymbol(char: string): boolean;
|
9
|
+
static isDelimiter(char: string): boolean;
|
10
|
+
static isNamedParameterPrefix(char: string): boolean;
|
11
|
+
}
|