rawsql-ts 0.1.0-beta.1
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/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/904140CF7EDF0C98AEA45F0D36062FE1 +1 -0
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/A32D1DB906C73FA74EF270AAEE165FC0 +86 -0
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/E621434FB1D5415B14FBBCC11967E420 +34 -0
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/48814CCF3E4E4B44A66AB8BC7D6CF6B6/EF71788BE39818EEA3F0164DC15E1BD7 +170 -0
- package/.vs/CopilotSnapshots/02E79E48DFF5234787CB618DE990598A/state.mpack +1 -0
- package/.vs/CopilotSnapshots/07B1013C385C5641A5F5100E0751210B/0C73C015B2C859419AFBD08BE1343FC0/BA5D2B145A59265D63FA3B3584344B02 +236 -0
- package/.vs/CopilotSnapshots/07B1013C385C5641A5F5100E0751210B/state.mpack +1 -0
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/1F95FD72006ED6E92629CEFD7B2C4FEC +1 -0
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/4CA7B9D3BC2D0A498DC0777EDA3F9B0F +1 -0
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/A9AF50781E77B849AA3262D2738D9338/7B623BFBAEB4EB61A9585F0BC8039B06 +19 -0
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/1F95FD72006ED6E92629CEFD7B2C4FEC +5 -0
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/4CA7B9D3BC2D0A498DC0777EDA3F9B0F +3 -0
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/CA94452964F7A94B8ECE3B54EE21B50F/7B623BFBAEB4EB61A9585F0BC8039B06 +21 -0
- package/.vs/CopilotSnapshots/0D03762A9EA0CB4885F2114567F23F93/state.mpack +1 -0
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/41035D2B1D57326B55F66372017E223A +1 -0
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/45EABF6EF6BDFAA58C941A29E98C9C83 +113 -0
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/748E0B8859CA1A5FDCA675C9E53B6D1C +1 -0
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/A250FF4AD59546A65FFDC6AA92A4698E +1 -0
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/23B181EB1228EF40ABCEF51E89FBF6E6/C42432BC73D8AA122171FAB6EEB13CBC +19 -0
- package/.vs/CopilotSnapshots/10B71DC3C4C1C04E8602FA06D3925F98/state.mpack +1 -0
- package/.vs/CopilotSnapshots/13B40109875D434BB24880356492BE7E/828B96E81CC7014B887AA519767FACC3/437DAEC1EBBAF4F25ABA1B6A25EB6933 +25 -0
- package/.vs/CopilotSnapshots/13B40109875D434BB24880356492BE7E/state.mpack +1 -0
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/904140CF7EDF0C98AEA45F0D36062FE1 +63 -0
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/DFF70C60F68ECD9A4E4C3C74E4CC4DEE +1 -0
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/1CDE8BAB21868E4D893E119554BA87E5/EF71788BE39818EEA3F0164DC15E1BD7 +170 -0
- package/.vs/CopilotSnapshots/245168908540D646ACBD4FDE8D6DD2D4/state.mpack +1 -0
- package/.vs/CopilotSnapshots/3BACC9346120824DB30006E353477163/87C831E9EA1AA249A25A44D08CF8E0B5/EF71788BE39818EEA3F0164DC15E1BD7 +328 -0
- package/.vs/CopilotSnapshots/3BACC9346120824DB30006E353477163/state.mpack +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/23E7151F0483C5BB5E663F83D4962FD4 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/2D4DCEBC89D52B097AEEEABA23C0EB59 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/7C951A8A572EA5C371FDE657AF968B9C +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/A32D1DB906C73FA74EF270AAEE165FC0 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/B692C85119711C76235AA5D78F9F3818 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/E602628EF6D764C2C267810C92906DBA +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/14FE66AD0B834E488EECD9594AE72472/E621434FB1D5415B14FBBCC11967E420 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/23E7151F0483C5BB5E663F83D4962FD4 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/2D4DCEBC89D52B097AEEEABA23C0EB59 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/7C951A8A572EA5C371FDE657AF968B9C +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/A32D1DB906C73FA74EF270AAEE165FC0 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/B692C85119711C76235AA5D78F9F3818 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/E602628EF6D764C2C267810C92906DBA +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/E621434FB1D5415B14FBBCC11967E420 +1 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/9C5A45FA50D5344FBB275F406599FF4E/EF71788BE39818EEA3F0164DC15E1BD7 +489 -0
- package/.vs/CopilotSnapshots/3EFABA5D1530804CA04C606F5EFDDC38/state.mpack +1 -0
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/0E5F1D40C0CAE848B8F9457F29A1F3FF/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +42 -0
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/462A64EF41A4BF42A18708B83E02FD6F/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +40 -0
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/90C95C12B91FA142BEF509B6FA329DE5/A3B20E10A19C7CA170132274D2F9312B +9 -0
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/90C95C12B91FA142BEF509B6FA329DE5/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +1 -0
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/AD7513C9BBFE904AAB7F940397B95A99/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +42 -0
- package/.vs/CopilotSnapshots/4C16AB71DC018C46A734FBF0BF4AEDD9/state.mpack +1 -0
- package/.vs/CopilotSnapshots/50E0417FAD2E524D887CB5763C2FB7B4/63A4C250D9DCE04B9F61D8833B89B5BF/EF71788BE39818EEA3F0164DC15E1BD7 +174 -0
- package/.vs/CopilotSnapshots/50E0417FAD2E524D887CB5763C2FB7B4/state.mpack +1 -0
- package/.vs/CopilotSnapshots/5EF2507B002AC14EA991043C37C36551/60FF68DE489DAD4FBCBBB54AA3F6A552/EF71788BE39818EEA3F0164DC15E1BD7 +496 -0
- package/.vs/CopilotSnapshots/5EF2507B002AC14EA991043C37C36551/state.mpack +1 -0
- package/.vs/CopilotSnapshots/6AA7610F1FB2B746821E54C28A8D109B/7FB78C0F8CB04F4AA6AF3315277B80F8/FB35DD13E708043D4CD8ACD54E14708F +1 -0
- package/.vs/CopilotSnapshots/6AA7610F1FB2B746821E54C28A8D109B/state.mpack +1 -0
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/5782E13CAB03A04E9E1EC5692F892170/BA5D2B145A59265D63FA3B3584344B02 +5 -0
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/5782E13CAB03A04E9E1EC5692F892170/EF71788BE39818EEA3F0164DC15E1BD7 +158 -0
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/9886598393C89944B51920C01EB650C9/BA5D2B145A59265D63FA3B3584344B02 +35 -0
- package/.vs/CopilotSnapshots/7F905F8BAC0DAD49BD507CA45C569AFD/state.mpack +1 -0
- package/.vs/CopilotSnapshots/8492D9C7A2D9514DB8A69D304B48BF3C/D2DA3C4E2131E84EA02E321802A65254/EF71788BE39818EEA3F0164DC15E1BD7 +165 -0
- package/.vs/CopilotSnapshots/8492D9C7A2D9514DB8A69D304B48BF3C/state.mpack +1 -0
- package/.vs/CopilotSnapshots/891A2DC0E5FA424CB8BDDA4FE26ED372/E244D49DDC79514DBA322770B03AE287/1CF9939611B0D194AC81951A171DF046 +43 -0
- package/.vs/CopilotSnapshots/891A2DC0E5FA424CB8BDDA4FE26ED372/state.mpack +1 -0
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/11E6D1F8E56D734F99C5216231273E8D/E621434FB1D5415B14FBBCC11967E420 +66 -0
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/24C69A83160FD844B0DEFECF8E1313DB/1CF9939611B0D194AC81951A171DF046 +43 -0
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/24C69A83160FD844B0DEFECF8E1313DB/E621434FB1D5415B14FBBCC11967E420 +53 -0
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/5E6D1BCD7CE81548AB445DE97505DC62/1CF9939611B0D194AC81951A171DF046 +30 -0
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/5E6D1BCD7CE81548AB445DE97505DC62/E621434FB1D5415B14FBBCC11967E420 +53 -0
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/EC4E81E0109C8F4BA1B5D9CFE1C122BC/E621434FB1D5415B14FBBCC11967E420 +54 -0
- package/.vs/CopilotSnapshots/8D302F8BAE46F54EA82AE1DED1A5D240/state.mpack +1 -0
- package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/6139F888FA743143B8E6C99306A478A6/30F913EA337870677E7C575773ECF531 +130 -0
- package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/F21743E379F9C1439F6A6405A289AA99/30F913EA337870677E7C575773ECF531 +160 -0
- package/.vs/CopilotSnapshots/90C28D332F9B2949810126139FCA2640/state.mpack +1 -0
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/2E2EFE66C5E05C4B809986E9B23D5409/45EABF6EF6BDFAA58C941A29E98C9C83 +113 -0
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/2E2EFE66C5E05C4B809986E9B23D5409/FB35DD13E708043D4CD8ACD54E14708F +2 -0
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/BE46916E3A8F2C4284792B951B674907/FB35DD13E708043D4CD8ACD54E14708F +5 -0
- package/.vs/CopilotSnapshots/99E22E75C8AEDF4DB3A668A9ADF0BC43/state.mpack +1 -0
- package/.vs/CopilotSnapshots/A6D99EA2D3819F45AD8087D7487F9318/state.mpack +1 -0
- package/.vs/CopilotSnapshots/A78C77F7A237704D95BCFE1BBC39FB0F/68BA9941941DC244BC799D89DB2BF86E/7C951A8A572EA5C371FDE657AF968B9C +96 -0
- package/.vs/CopilotSnapshots/A78C77F7A237704D95BCFE1BBC39FB0F/state.mpack +1 -0
- package/.vs/CopilotSnapshots/AD2203F1B9FECE44BB6D5DC5D83E87AA/734AB1B2974F9545B7F12AAA5842524B/840203FFA9CCF5B33DFD5C7CC5B13527 +125 -0
- package/.vs/CopilotSnapshots/AD2203F1B9FECE44BB6D5DC5D83E87AA/state.mpack +1 -0
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/89CF3F527D0687479D14274E8CDF3DFF/1CF9939611B0D194AC81951A171DF046 +30 -0
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/89CF3F527D0687479D14274E8CDF3DFF/BA5D2B145A59265D63FA3B3584344B02 +158 -0
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/E495EBF64DC77A4BBD470B92DB0391C4/1CF9939611B0D194AC81951A171DF046 +30 -0
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/E495EBF64DC77A4BBD470B92DB0391C4/BA5D2B145A59265D63FA3B3584344B02 +67 -0
- package/.vs/CopilotSnapshots/AEC950C2FAD20147AEE8E325E2CA0A78/state.mpack +1 -0
- package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/1FCDCC65B992954DB78BD1F46892312B/44EB81A1663981E3F52FFFECE3A2918E +143 -0
- package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/1FCDCC65B992954DB78BD1F46892312B/E602628EF6D764C2C267810C92906DBA +253 -0
- package/.vs/CopilotSnapshots/AF947096A34634478C5D084B8442CD81/state.mpack +1 -0
- package/.vs/CopilotSnapshots/B1DED422A45D5740BA4EE745C04B2B0B/226F822A22D6BD44BCF56BAA47FA274C/EF71788BE39818EEA3F0164DC15E1BD7 +174 -0
- package/.vs/CopilotSnapshots/B1DED422A45D5740BA4EE745C04B2B0B/state.mpack +1 -0
- package/.vs/CopilotSnapshots/B5DD5E50ACD0FD4998564F0FDE7FAEE0/97908D1D83AD2D4EA7082388DE07CBB4/44EB81A1663981E3F52FFFECE3A2918E +148 -0
- package/.vs/CopilotSnapshots/B5DD5E50ACD0FD4998564F0FDE7FAEE0/state.mpack +1 -0
- package/.vs/CopilotSnapshots/B8ADCAC0C19DB14FB8388BA59A86BC74/7ED3F1557FD7BE4DBEAF9B59FD442925/44EB81A1663981E3F52FFFECE3A2918E +152 -0
- package/.vs/CopilotSnapshots/B8ADCAC0C19DB14FB8388BA59A86BC74/state.mpack +1 -0
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/0130610530354840BB06BF4F4E744242/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +138 -0
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/5F1C58CEFBAF1B4E80C4CF38B83A0A5F/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +129 -0
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/BDC3D099FCCCC147848630670EED45CF/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +139 -0
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/D9E2B1CDD1E2BB468E0703BEF6706FF6/D03CD05B4F5C8B7C8CDF0B5E1961B3CA +139 -0
- package/.vs/CopilotSnapshots/BDFF50BBC1A93747A0001969C3BD195F/state.mpack +1 -0
- package/.vs/CopilotSnapshots/C1E2C1A9C1DCFA46B1D5F1C6F36A152D/BC91C0FD38D8694BB992A8DEC1833670/148399016C7971F5592DAADBB9523118 +120 -0
- package/.vs/CopilotSnapshots/C1E2C1A9C1DCFA46B1D5F1C6F36A152D/state.mpack +1 -0
- package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/6C0950E97063C547A72D737E618436B0/1CF9939611B0D194AC81951A171DF046 +9 -0
- package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/6C0950E97063C547A72D737E618436B0/DFF70C60F68ECD9A4E4C3C74E4CC4DEE +84 -0
- package/.vs/CopilotSnapshots/C4D8E85893425E4F86F18850F5CA5C08/state.mpack +1 -0
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/03EA1376F04C0D468FD0851119159D34/44EB81A1663981E3F52FFFECE3A2918E +148 -0
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/03EA1376F04C0D468FD0851119159D34/E602628EF6D764C2C267810C92906DBA +265 -0
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/6887503C15557349842029E58C9C0D11/44EB81A1663981E3F52FFFECE3A2918E +152 -0
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/6887503C15557349842029E58C9C0D11/E602628EF6D764C2C267810C92906DBA +265 -0
- package/.vs/CopilotSnapshots/C5C3CA4C37B14A47B6BC753D09F69117/state.mpack +1 -0
- package/.vs/CopilotSnapshots/C7190BBC8D95D44F9CF8E65E3E8C9CFD/4B6D07592F8EDC4AA3FF742B1F9531CC/1B80EB15A2FEBEC11C8210C5461F8DB7 +43 -0
- package/.vs/CopilotSnapshots/C7190BBC8D95D44F9CF8E65E3E8C9CFD/state.mpack +1 -0
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/2071ADB146D8F7499419123B2A595A41/03E00441128DC70FFEA043158417AC9A +15 -0
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/6ECBF707FE2A88418EA1649CE46068D5/03E00441128DC70FFEA043158417AC9A +1 -0
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/70BAB1D82B755F47A2351CA905ACC0F1/03E00441128DC70FFEA043158417AC9A +49 -0
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/99DDFADAEC5CA14D92CC470523A11743/03E00441128DC70FFEA043158417AC9A +39 -0
- package/.vs/CopilotSnapshots/C79D12964917E44F9A5BB9D8FA725A0C/state.mpack +1 -0
- package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/2445F4111C26EB4DA5404F930E140F56/840203FFA9CCF5B33DFD5C7CC5B13527 +6 -0
- package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/2445F4111C26EB4DA5404F930E140F56/C27E5C1787B7957BF6F0C3D417890141 +1 -0
- package/.vs/CopilotSnapshots/D533D78C39683A4188A2CEC902BC03CD/state.mpack +1 -0
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/5FC7C36C7769414C80BFF27A07BB5063/BE400B34D9700403D2BA3A1AA6B1EF1D +15 -0
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/A4DD9B92084D8E48A95435EDB2B14545/86848C7099AD75EE4E8F10E066F49671 +15 -0
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/A4DD9B92084D8E48A95435EDB2B14545/BE400B34D9700403D2BA3A1AA6B1EF1D +15 -0
- package/.vs/CopilotSnapshots/DCAA5A718EC8304685D14C52356D80E0/state.mpack +1 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/7C951A8A572EA5C371FDE657AF968B9C +96 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/B692C85119711C76235AA5D78F9F3818 +73 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/5F324CB20D1B5045A13090FA9D177B74/EF71788BE39818EEA3F0164DC15E1BD7 +182 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/C1287B2893D30D40A46C30DC2CE05178/7C951A8A572EA5C371FDE657AF968B9C +96 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/C1287B2893D30D40A46C30DC2CE05178/B692C85119711C76235AA5D78F9F3818 +98 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/7C951A8A572EA5C371FDE657AF968B9C +96 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/B692C85119711C76235AA5D78F9F3818 +21 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/CA6304DFE7764A4C87ACE5816CDB7CD9/EF71788BE39818EEA3F0164DC15E1BD7 +176 -0
- package/.vs/CopilotSnapshots/DCF62F751B748642A0BF5D5125AB6769/state.mpack +1 -0
- package/.vs/VSWorkspaceState.json +6 -0
- 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 +1026 -0
- 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 +425 -0
- package/.vs/ts-sample/v17/DocumentLayout.json +423 -0
- package/.vs/ts-sample/v17/TestStore/0/000.testlog +0 -0
- package/.vs/ts-sample/v17/TestStore/0/testlog.manifest +0 -0
- package/LICENSE +21 -0
- package/README.md +308 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.js +15 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +38 -0
package/README.md
ADDED
@@ -0,0 +1,308 @@
|
|
1
|
+
# rawsql-ts
|
2
|
+
|
3
|
+
A TypeScript SQL parser project that performs AST (Abstract Syntax Tree) analysis.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Install the main project:
|
8
|
+
|
9
|
+
```bash
|
10
|
+
npm install
|
11
|
+
```
|
12
|
+
|
13
|
+
## Usage
|
14
|
+
|
15
|
+
Build the project:
|
16
|
+
|
17
|
+
```bash
|
18
|
+
npm run build
|
19
|
+
```
|
20
|
+
|
21
|
+
Run tests:
|
22
|
+
|
23
|
+
```bash
|
24
|
+
npm test
|
25
|
+
```
|
26
|
+
|
27
|
+
## ✅ Supported Features
|
28
|
+
|
29
|
+
**Main features included in this parser:**
|
30
|
+
|
31
|
+
- **CTE Support**: Full Common Table Expression parsing
|
32
|
+
- PostgreSQL `MATERIALIZED`/`NOT MATERIALIZED` options
|
33
|
+
- Nested and recursive CTEs
|
34
|
+
- **UNION Queries**: Handles UNION, UNION ALL, INTERSECT and EXCEPT
|
35
|
+
- **Complex Subqueries**: Supports subqueries and inline queries
|
36
|
+
- **Window Functions**: Complete WINDOW clause and function support
|
37
|
+
- **PostgreSQL Optimized**: Deep support for PostgreSQL syntax
|
38
|
+
- `DISTINCT ON (columns)` expressions
|
39
|
+
- Array and range operators
|
40
|
+
|
41
|
+
## ⚠️ Important Notes
|
42
|
+
|
43
|
+
**Under development with the following limitations:**
|
44
|
+
|
45
|
+
- **PostgreSQL Only**: Only PostgreSQL syntax is currently supported
|
46
|
+
- **Comments Stripped**: SQL comments are removed during parsing
|
47
|
+
- **SELECT Queries Only**: Currently only handles SELECT queries (no INSERT/UPDATE/DELETE)
|
48
|
+
- **One-line Formatting**: Currently only supports single-line (compact) output formatting
|
49
|
+
- **Beta Status**: API may change without notice until v1.0 release
|
50
|
+
|
51
|
+
## Transformer Utilities
|
52
|
+
|
53
|
+
rawsql-ts includes powerful transformer utilities to analyze and transform SQL ASTs. These utilities let you format, analyze, and extract information from SQL queries in a super flexible way!
|
54
|
+
|
55
|
+
### Formatter
|
56
|
+
|
57
|
+
The Formatter transforms SQL ASTs into clean, standardized SQL text output. It handles all SQL components, ensuring proper escaping and consistent formatting regardless of the complexity of your queries.
|
58
|
+
|
59
|
+
```typescript
|
60
|
+
import { SelectQueryParser } from './parsers/SelectQueryParser';
|
61
|
+
import { Formatter } from './transformers/Formatter';
|
62
|
+
|
63
|
+
// Example complex query with subquery and functions
|
64
|
+
const sql = `
|
65
|
+
SELECT
|
66
|
+
p.product_id
|
67
|
+
, p.name
|
68
|
+
, SUM(o.quantity) AS total_ordered
|
69
|
+
, CASE
|
70
|
+
WHEN SUM(o.quantity) > 1000 THEN 'High Demand'
|
71
|
+
WHEN SUM(o.quantity) > 500 THEN 'Medium Demand'
|
72
|
+
ELSE 'Low Demand'
|
73
|
+
END AS demand_category
|
74
|
+
FROM
|
75
|
+
products AS p
|
76
|
+
JOIN order_items AS o ON p.product_id = o.product_id
|
77
|
+
WHERE
|
78
|
+
p.category IN (
|
79
|
+
SELECT
|
80
|
+
category
|
81
|
+
FROM
|
82
|
+
featured_categories
|
83
|
+
WHERE
|
84
|
+
active = TRUE
|
85
|
+
)
|
86
|
+
GROUP BY
|
87
|
+
p.product_id
|
88
|
+
, p.name
|
89
|
+
HAVING
|
90
|
+
SUM(o.quantity) > 100
|
91
|
+
ORDER BY
|
92
|
+
total_ordered DESC`;
|
93
|
+
|
94
|
+
// Parse the query into an AST
|
95
|
+
const query = SelectQueryParser.parseFromText(sql);
|
96
|
+
|
97
|
+
// Format the AST back to SQL
|
98
|
+
const formatter = new Formatter();
|
99
|
+
const formattedSql = formatter.visit(query);
|
100
|
+
|
101
|
+
console.log(formattedSql);
|
102
|
+
// Outputs clean, consistently formatted SQL with proper identifiers
|
103
|
+
```
|
104
|
+
|
105
|
+
### SelectValueCollector
|
106
|
+
|
107
|
+
The SelectValueCollector extracts all column items from a SELECT clause, including their aliases and expressions. It provides access to both column names and their corresponding value expressions, making it perfect for analyzing the output structure of SQL queries. For information on wildcard resolution (like `*` or `table.*`), see the Wildcard Resolution section below.
|
108
|
+
|
109
|
+
```typescript
|
110
|
+
import { SelectQueryParser } from './parsers/SelectQueryParser';
|
111
|
+
import { SelectValueCollector } from './transformers/SelectValueCollector';
|
112
|
+
import { Formatter } from './transformers/Formatter';
|
113
|
+
|
114
|
+
// Example query with column references and expressions
|
115
|
+
const sql = `
|
116
|
+
SELECT
|
117
|
+
id
|
118
|
+
, name
|
119
|
+
, price * quantity AS total
|
120
|
+
, (
|
121
|
+
SELECT
|
122
|
+
COUNT(*)
|
123
|
+
FROM
|
124
|
+
orders AS o
|
125
|
+
WHERE
|
126
|
+
o.customer_id = c.id
|
127
|
+
) AS order_count
|
128
|
+
FROM
|
129
|
+
customers AS c
|
130
|
+
WHERE
|
131
|
+
status = 'active'`;
|
132
|
+
|
133
|
+
const query = SelectQueryParser.parseFromText(sql);
|
134
|
+
|
135
|
+
// Collect all select values
|
136
|
+
const collector = new SelectValueCollector();
|
137
|
+
const items = collector.collect(query);
|
138
|
+
|
139
|
+
// Format expressions for display
|
140
|
+
const formatter = new Formatter();
|
141
|
+
|
142
|
+
// Output column names
|
143
|
+
console.log(items.map(item => item.name));
|
144
|
+
// ["id", "name", "total", "order_count"]
|
145
|
+
|
146
|
+
// Output column expressions to show full value components
|
147
|
+
console.log(items.map(item => formatter.visit(item.value)));
|
148
|
+
// ["id", "name", "price * quantity", "(SELECT COUNT(*) FROM orders AS o WHERE o.customer_id = c.id)"]
|
149
|
+
```
|
150
|
+
|
151
|
+
### SelectableColumnCollector
|
152
|
+
|
153
|
+
The SelectableColumnCollector identifies all column references throughout a query that could potentially be included in a SELECT clause. It scans the entire query structure and extracts columns with their full context, making it ideal for query builders. For information on wildcard resolution (like `*` or `table.*`), see the Wildcard Resolution section below.
|
154
|
+
|
155
|
+
```typescript
|
156
|
+
import { SelectQueryParser } from './parsers/SelectQueryParser';
|
157
|
+
import { SelectableColumnCollector } from './transformers/SelectableColumnCollector';
|
158
|
+
import { Formatter } from './transformers/Formatter';
|
159
|
+
|
160
|
+
// Example query
|
161
|
+
const sql = `
|
162
|
+
SELECT
|
163
|
+
u.id
|
164
|
+
, u.name
|
165
|
+
FROM
|
166
|
+
users AS u
|
167
|
+
JOIN profiles AS p ON u.id = p.user_id
|
168
|
+
WHERE
|
169
|
+
u.active = TRUE
|
170
|
+
AND p.verified = TRUE`;
|
171
|
+
|
172
|
+
const query = SelectQueryParser.parseFromText(sql);
|
173
|
+
const collector = new SelectableColumnCollector();
|
174
|
+
|
175
|
+
// Collect all column references from data sources
|
176
|
+
collector.visit(query);
|
177
|
+
const columns = collector.collect(query);
|
178
|
+
|
179
|
+
// Format column references for display
|
180
|
+
const formatter = new Formatter();
|
181
|
+
const columnNames = columns.map(item => item.name);
|
182
|
+
console.log(columnNames);
|
183
|
+
// ["id", "name", "active", "user_id", "verified"]
|
184
|
+
|
185
|
+
// Get the original column expressions with their full context
|
186
|
+
const expressions = columns.map(item => formatter.visit(item.value));
|
187
|
+
console.log(expressions);
|
188
|
+
// ["u.id", "u.name", "u.active", "p.user_id", "p.verified"]
|
189
|
+
```
|
190
|
+
|
191
|
+
### Wildcard Resolution
|
192
|
+
|
193
|
+
The wildcard resolution feature enhances both collectors by supporting the expansion of wildcard expressions (`*` and `table.*`). Since SQL AST analysis alone cannot determine actual column names from wildcards, this feature allows you to provide table structure information through a custom resolver.
|
194
|
+
|
195
|
+
To use this feature, simply provide a `TableColumnResolver` function when creating a collector. This resolver maps table names to their column definitions, allowing the collectors to fully expand wildcard expressions into individual columns with proper context.
|
196
|
+
|
197
|
+
```typescript
|
198
|
+
import { SelectQueryParser } from './parsers/SelectQueryParser';
|
199
|
+
import { SelectValueCollector } from './transformers/SelectValueCollector';
|
200
|
+
import { Formatter } from './transformers/Formatter';
|
201
|
+
|
202
|
+
// Define a function to resolve column names from table names
|
203
|
+
const tableColumnResolver = (tableName: string): string[] => {
|
204
|
+
// In real applications, this would fetch from database metadata or schema information
|
205
|
+
const tableColumns: Record<string, string[]> = {
|
206
|
+
'users': ['id', 'name', 'email', 'created_at'],
|
207
|
+
'posts': ['id', 'title', 'content', 'user_id', 'created_at'],
|
208
|
+
'comments': ['id', 'post_id', 'user_id', 'content', 'created_at']
|
209
|
+
};
|
210
|
+
|
211
|
+
return tableColumns[tableName] || [];
|
212
|
+
};
|
213
|
+
|
214
|
+
// Query containing wildcards
|
215
|
+
const sql = `
|
216
|
+
SELECT
|
217
|
+
u.*
|
218
|
+
, p.title
|
219
|
+
, p.content
|
220
|
+
FROM
|
221
|
+
users AS u
|
222
|
+
JOIN posts AS p ON u.id = p.user_id
|
223
|
+
WHERE
|
224
|
+
u.created_at > '2023-01-01'`;
|
225
|
+
|
226
|
+
const query = SelectQueryParser.parseFromText(sql);
|
227
|
+
|
228
|
+
// Pass the TableColumnResolver to resolve wildcards
|
229
|
+
const collector = new SelectValueCollector(tableColumnResolver);
|
230
|
+
const items = collector.collect(query);
|
231
|
+
|
232
|
+
// Display results
|
233
|
+
const formatter = new Formatter();
|
234
|
+
console.log(items.map(item => item.name));
|
235
|
+
// ["id", "name", "email", "created_at", "title", "content"]
|
236
|
+
|
237
|
+
// Show full reference expressions for each column
|
238
|
+
console.log(items.map(item => formatter.visit(item.value)));
|
239
|
+
// ["u.id", "u.name", "u.email", "u.created_at", "p.title", "p.content"]
|
240
|
+
```
|
241
|
+
|
242
|
+
This capability allows you to parse queries containing wildcards and understand exactly which columns are being referenced. It also supports expansion of wildcards from multiple tables and subqueries.
|
243
|
+
|
244
|
+
## Benchmarks
|
245
|
+
|
246
|
+
This project includes benchmarking functionality.
|
247
|
+
To run benchmarks:
|
248
|
+
|
249
|
+
```bash
|
250
|
+
npm run benchmark
|
251
|
+
```
|
252
|
+
|
253
|
+
## Benchmark Details
|
254
|
+
|
255
|
+
This benchmark evaluates the SQL parsing and formatting performance of `rawsql-ts` against popular libraries: `sql-formatter` and `node-sql-parser`. We test queries of varying complexity:
|
256
|
+
|
257
|
+
- **Tokens20**: Simple `SELECT` query with a basic `WHERE` condition (~20 tokens)
|
258
|
+
- **Tokens70**: Medium complexity query with `JOIN`s and multiple conditions (~70 tokens)
|
259
|
+
- **Tokens140**: Complex query with `CTE`s and aggregations (~140 tokens)
|
260
|
+
- **Tokens230**: Very complex query with multiple `CTE`s, subqueries, and window functions (~230 tokens)
|
261
|
+
|
262
|
+
## Benchmark Environment
|
263
|
+
|
264
|
+
```
|
265
|
+
benchmark.js v2.1.4
|
266
|
+
Windows 10.0.26100
|
267
|
+
AMD Ryzen 7 7800X3D (8C/16T)
|
268
|
+
Node.js v22.14.0
|
269
|
+
```
|
270
|
+
|
271
|
+
## Results
|
272
|
+
|
273
|
+
### Tokens20
|
274
|
+
| Method | Mean | Error | StdDev |
|
275
|
+
|---------------------------------- |-----------:|----------:|----------:|
|
276
|
+
| rawsql-ts | 0.021 ms | 0.0044 ms | 0.0023 ms |
|
277
|
+
| node-sql-parser | 0.169 ms | 0.0695 ms | 0.0355 ms |
|
278
|
+
| sql-formatter | 0.208 ms | 0.0556 ms | 0.0284 ms |
|
279
|
+
|
280
|
+
### Tokens70
|
281
|
+
| Method | Mean | Error | StdDev |
|
282
|
+
|---------------------------------- |-----------:|----------:|----------:|
|
283
|
+
| rawsql-ts | 0.057 ms | 0.0143 ms | 0.0073 ms |
|
284
|
+
| node-sql-parser | 0.216 ms | 0.0780 ms | 0.0398 ms |
|
285
|
+
| sql-formatter | 0.512 ms | 0.1251 ms | 0.0638 ms |
|
286
|
+
|
287
|
+
### Tokens140
|
288
|
+
| Method | Mean | Error | StdDev |
|
289
|
+
|---------------------------------- |-----------:|----------:|----------:|
|
290
|
+
| rawsql-ts | 0.112 ms | 0.0236 ms | 0.0120 ms |
|
291
|
+
| node-sql-parser | 0.404 ms | 0.0926 ms | 0.0472 ms |
|
292
|
+
| sql-formatter | 1.004 ms | 0.3027 ms | 0.1545 ms |
|
293
|
+
|
294
|
+
### Tokens230
|
295
|
+
| Method | Mean | Error | StdDev |
|
296
|
+
|---------------------------------- |-----------:|----------:|----------:|
|
297
|
+
| rawsql-ts | 0.182 ms | 0.0371 ms | 0.0189 ms |
|
298
|
+
| node-sql-parser | 0.865 ms | 0.3325 ms | 0.1696 ms |
|
299
|
+
| sql-formatter | 1.696 ms | 0.2754 ms | 0.1405 ms |
|
300
|
+
|
301
|
+
## Performance Summary
|
302
|
+
|
303
|
+
- `rawsql-ts` **consistently outperforms** both `node-sql-parser` and `sql-formatter` in all tested cases.
|
304
|
+
- **4x faster** than `node-sql-parser`.
|
305
|
+
- **9-10x faster** than `sql-formatter`.
|
306
|
+
- Maintains **full SQL parsing capabilities** while significantly improving performance.
|
307
|
+
|
308
|
+
> ⚠️ **Note:** These benchmarks are based on a specific hardware and software environment. Actual performance may vary depending on system configuration and workload.
|
@@ -0,0 +1 @@
|
|
1
|
+
{"root":["../vitest.config.ts","../benchmarks/parse-benchmark.ts","../src/app.ts","../src/models/binaryselectquery.ts","../src/models/clause.ts","../src/models/keywordtrie.ts","../src/models/lexeme.ts","../src/models/selectquery.ts","../src/models/simpleselectquery.ts","../src/models/sqlcomponent.ts","../src/models/valuecomponent.ts","../src/models/valuesquery.ts","../src/parsers/commandexpressionparser.ts","../src/parsers/commontableparser.ts","../src/parsers/forclauseparser.ts","../src/parsers/fromclauseparser.ts","../src/parsers/functionexpressionparser.ts","../src/parsers/groupbyparser.ts","../src/parsers/havingparser.ts","../src/parsers/identifierparser.ts","../src/parsers/joinclauseparser.ts","../src/parsers/keywordparser.ts","../src/parsers/limitclauseparser.ts","../src/parsers/literalparser.ts","../src/parsers/orderbyclauseparser.ts","../src/parsers/overexpressionparser.ts","../src/parsers/parameterexpressionparser.ts","../src/parsers/parenexpressionparser.ts","../src/parsers/partitionbyparser.ts","../src/parsers/selectclauseparser.ts","../src/parsers/selectqueryparser.ts","../src/parsers/sourcealiasexpressionparser.ts","../src/parsers/sourceexpressionparser.ts","../src/parsers/sourceparser.ts","../src/parsers/sqltokenizer.ts","../src/parsers/stringspecifierexpressionparser.ts","../src/parsers/unaryexpressionparser.ts","../src/parsers/valueparser.ts","../src/parsers/valuesqueryparser.ts","../src/parsers/whereclauseparser.ts","../src/parsers/windowclauseparser.ts","../src/parsers/windowexpressionparser.ts","../src/parsers/withclauseparser.ts","../src/tokenreaders/basetokenreader.ts","../src/tokenreaders/commandtokenreader.ts","../src/tokenreaders/functiontokenreader.ts","../src/tokenreaders/identifiertokenreader.ts","../src/tokenreaders/literaltokenreader.ts","../src/tokenreaders/operatortokenreader.ts","../src/tokenreaders/parametertokenreader.ts","../src/tokenreaders/stringspecifiertokenreader.ts","../src/tokenreaders/symboltokenreader.ts","../src/tokenreaders/tokenreadermanager.ts","../src/tokenreaders/typetokenreader.ts","../src/transformers/ctebuilder.ts","../src/transformers/ctecollector.ts","../src/transformers/ctedisabler.ts","../src/transformers/cteinjector.ts","../src/transformers/ctenormalizer.ts","../src/transformers/formatter.ts","../src/transformers/querynormalizer.ts","../src/transformers/selectvaluecollector.ts","../src/transformers/selectablecolumncollector.ts","../src/transformers/tablesourcecollector.ts","../src/transformers/upstreamselectqueryfinder.ts","../src/utils/charlookuptable.ts","../src/utils/stringutils.ts"],"version":"5.8.2"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
/// <reference types="vitest" />
|
4
|
+
const config_1 = require("vitest/config");
|
5
|
+
const path_1 = require("path");
|
6
|
+
exports.default = (0, config_1.defineConfig)({
|
7
|
+
test: {
|
8
|
+
environment: 'node',
|
9
|
+
include: ['tests/**/*.test.[jt]s'],
|
10
|
+
exclude: ['dist/**'],
|
11
|
+
root: (0, path_1.resolve)(__dirname),
|
12
|
+
testTimeout: 3000,
|
13
|
+
},
|
14
|
+
});
|
15
|
+
//# sourceMappingURL=vitest.config.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";;AAAA,gCAAgC;AAChC,0CAA4C;AAC5C,+BAA8B;AAE9B,kBAAe,IAAA,qBAAY,EAAC;IACxB,IAAI,EAAE;QACF,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,uBAAuB,CAAC;QAClC,OAAO,EAAE,CAAC,SAAS,CAAC;QACpB,IAAI,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC;QACxB,WAAW,EAAE,IAAI;KACpB;CACJ,CAAC,CAAA"}
|
package/package.json
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
{
|
2
|
+
"name": "rawsql-ts",
|
3
|
+
"version": "0.1.0-beta.1",
|
4
|
+
"description": "[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.",
|
5
|
+
"main": "dist/index.js",
|
6
|
+
"types": "dist/index.d.ts",
|
7
|
+
"scripts": {
|
8
|
+
"test": "vitest run",
|
9
|
+
"test:watch": "vitest",
|
10
|
+
"coverage": "vitest run --coverage",
|
11
|
+
"build": "tsc --build",
|
12
|
+
"clean": "tsc --build --clean",
|
13
|
+
"lint": "eslint . --ext .ts,.tsx --fix",
|
14
|
+
"benchmark": "ts-node benchmarks/parse-benchmark.ts"
|
15
|
+
},
|
16
|
+
"keywords": [],
|
17
|
+
"author": "",
|
18
|
+
"license": "ISC",
|
19
|
+
"devDependencies": {
|
20
|
+
"@types/benchmark": "^2.1.5",
|
21
|
+
"@types/node": "^22.13.10",
|
22
|
+
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
23
|
+
"@typescript-eslint/parser": "^8.26.1",
|
24
|
+
"benchmark": "^2.1.4",
|
25
|
+
"eslint": "^9.22.0",
|
26
|
+
"eslint-config-prettier": "^10.1.1",
|
27
|
+
"eslint-plugin-filenames": "^1.3.2",
|
28
|
+
"eslint-plugin-prettier": "^5.2.3",
|
29
|
+
"microtime": "^3.1.1",
|
30
|
+
"node-sql-parser": "^5.3.8",
|
31
|
+
"ts-node": "^10.9.2",
|
32
|
+
"typescript": "^5.8.2",
|
33
|
+
"vitest": "^1.5.2"
|
34
|
+
},
|
35
|
+
"dependencies": {
|
36
|
+
"sql-formatter": "^15.5.2"
|
37
|
+
}
|
38
|
+
}
|