Thank you Julian for your answer, very good vision. If you need help with testing later, I will be happy to help.
On 2025/03/17 18:39:11 Julian Hyde wrote: > I agree that this is a problem. Assuming that a database dialect improves > over time, if someone is connecting to version 5 of a database, they would > like Calcite to generate the best SQL for version 5, but not use features > that were added in version 6 or later. To minimize the amount of code, we > would probably like a single adapter for all versions of that database, > possibly even sharing code with other databases that have similar dialects. > > The solution starts with the test suite. If someone wants the adapter to > generate different SQL for versions 4, 5, and 6, then they should write tests > to ensure that. To make those tests pass, they will need to change the > dialect implementation so that it runs in different modes for different > versions. > > I don’t think we need a high-level policy for how modes, or versions, are > represented in various dialects. If the maintainers follow the tenets of > agile (write tests, refactor to improve reuse and reduce tech debt) then we > will have an acceptable solution. Following those tenets will sometimes cause > people to merge dialects of similar databases (e.g. MySQL and MariaDB). > > Julian > > > > On Mar 17, 2025, at 7:52 AM, Cancai Cai <[email protected]> wrote: > > > > Hello, everyone in the Calcite community. > > > > Calcite currently does not emphasize the version or even the adapter > > adaptation for the adaptation of various database dialects, but as more and > > more dialects are adapted, this may become a hidden danger. For example, a > > database modifies a certain syntax in a certain version, but Calcite has > > already adapted the previous syntax, then do we still need to be compatible > > with the modified syntax? There are many similar examples, such as > > adaptation functions, etc. > > > > I think we can find a way to determine a standard, describe it in the > > document and tell users, such as determining it according to the latest > > version, or do you have better suggestions? > > > > Best wishes, > > Cancai Cai > >
