Hi Marek, Thank you very much for your interest in using jOOQ's parser for your product. What you're planning to do sounds exactly like what we want to be able to do, and offer as a library, with the parser / translator.
However, there is still much work to do on our side. In order to be able to associate parser artefacts, such as a mapping between the position in an input string and a QueryPart, we'll have to re-design our QueryPart internals and make them a public API. This will be a priority for the next few jOOQ releases, but we're not quite there yet. Right now, you would have to look into jOOQ's internals (possibly open them up using reflection) to get access to this kind of information. Do note that there's a related discussion on GitHub where Scott McKinney plans to use jOOQ as a SQL parser for Manifold: https://github.com/jOOQ/jOOQ/issues/8720 If you're interested in continuing your jOOQ evaluation, we'd be very keen on learning what kinds of requirements you may have from a future jOOQ. Best Regards, Lukas On Wed, Jul 17, 2019 at 2:36 PM marekgregor <[email protected]> wrote: > Hi, > > I am seriously considering implementation of Jupyter Notebook Kernel for > SQL (+Java) language utilizing JOOQ. > > The Kernel will be capable to: > - simultaneously connect to various databases for multiple users utilizing > connection pooling, > - provide database metadata to client (tables, columns, foreign keys, > views, stored procs,...) utilizing JOOQ implementation > <https://www.jooq.org/doc/3.11/manual/code-generation/codegen-advanced/codegen-config-database/codegen-database-name/> > , > - execute database native SQL or standardized SQL translated to native SQL > by JOOQ parser functionality > <https://www.jooq.org/doc/3.11/manual/sql-building/sql-parser/sql-parser-api/> > and > return it's results to client > > Kernel could also support autocomplete and introspection for SQL code > written in editor on client side of Jupyter Notebook. The API implemented > by kernel > <https://jupyter-client.readthedocs.io/en/stable/messaging.html#completion> > for > autocomplete is pretty simple: client sends code (SQL) string and cursor > position, kernel response contains list of autocomplete recommendation > strings etc. > > I am curious if it is possible to use JOOQ for parsing SQL to > QueryPart(s), identify which QueryPart > <https://www.jooq.org/javadoc/3.11.x/org/jooq/QueryPart.html>corresponds > to defined SQL string cursor position and return corresponding autocomplete > strings (e.g. with names of available tables in FROM clause, or names of > columns in SELECT clause). I don't know if it is suitable to use JOOQ for > this task and how. > > thanks for response > > -- > You received this message because you are subscribed to the Google Groups > "jOOQ User Group" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jooq-user/eab246d8-2947-4686-9d29-1be0e1ca6182%40googlegroups.com > <https://groups.google.com/d/msgid/jooq-user/eab246d8-2947-4686-9d29-1be0e1ca6182%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "jOOQ User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jooq-user/CAB4ELO4D6uPUQdciBiWPeCQ%2BK%3DXuCsqJCQyZr0aUeqhfQV9k3w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
