I see those problems too.

A major problem is that when you start a new dialect, there are no tests. And 
that’s because our dialect test does not execute queries, only compares 
generated SQL (and those SQL fragments need to be entered by hand). There’s a 
good reason that our dialect test does not execute queries: connections to 
external databases are expensive (you need a license, and cloud resources) and 
flaky (valid tests will fail from time to time).

The moonshot to address this is 
https://issues.apache.org/jira/browse/CALCITE-5529.

I have reached the point where I can execute all queries in 
RelToSqlConverterTest against any connection you provide (and I plan to run 
them against a reference connection - say Postgres - so that I know that the 
results from your connection are valid). The problem is that I don’t have a 
means to initialize a connection (create tables and populate data) and that 
there are a huge number of errors.

I would appreciate help working on this. It’s a lot of work, but it will 
improve the quality of our dialect system.

Julian


> On Jul 11, 2023, at 6:54 AM, Joeri van Ruth 
> <joeri.van.r...@monetdbsolutions.com.INVALID> wrote:
> 
> Hi all,
> 
> MonetDB is an open source columnar main-memory SQL database that has
> been around for quite a while.  I am a MonetDB developer and I would
> like to add support for MonetDB's SQL dialect to Calcite and
> contribute it to the Calcite project.
> 
> Looking at some of the existing Dialect classes I don't expect the
> end result to be a lot of code but I'm a bit concerned that the
> process of getting there will be an endless treadmill of users
> finding yet another deviation and me fixing it.
> 
> I'm hoping to ask you here for some guidance on how to develop a new
> dialect in a more systematic way and how to ensure it will not
> immediately fail when someone other than the developer tries to use
> it.
> 
> For example, I know you have an extensive test suite, will I be able
> to use that to determine if my implementation is ready, and to
> pinpoint the things I still need to do?  Are there particular parts
> of the rest of the code base I should first try to familiarize myself
> with to make the implementation go more smoothly?
> 
> Also, what would you expect to be a reasonable time frame for this
> project considering I have good knowledge fo MonetDB but I'm new to
> Calcite?  A week?  A month?
> 
> Any tips and pointers would be appreciated.
> 
> Joeri

Reply via email to