Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
Hi @ahmad-moussawi
As mentioned in #738, I broke the test improvements and benchmarks into two separate PR.
We used SqlKata in our project, and I’ve started exploring its internals.
I thought the compiler part could be improved significantly, both for speed and memory usage.
However, to rewrite it safely, I first wanted to improve the tests and add some benchmarks.
This PR shows what I did in this regard. Please review this PR, and let me know if you are interested in any part of my work.
Summary of Changes:
It was my goal to make the compiler easily replaceable in the tests and be able to test with an improved compiler. Although I don't pursue this goal anymore, I still offer this work to you. The reason is that we are slowly replacing it with an in-house built framework, which is a better fit for our needs.
Originally, my idea regarding the compiler was to instead of concatenating strings, use a string builder as output. It consumes a lot less memory and is more performant.
Another idea was to replace the reflection parts. That is also known for slower performance.