Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Rename this project to sql-tree or something similar #9

Open
ai-oleynikov opened this issue Dec 28, 2023 · 0 comments
Open

Comments

@ai-oleynikov
Copy link

First of all, I think it's a cool library! Thank you, guys, for releasing it!

There's just this minor problem with it. The README calls it a "data structure query language" and an "SQL constructor." It's referred to as a "DSL" and an "ORM" in the linked talks in Russian. However, I believe it's best described as an abstract syntax tree (AST). In fact, this representation of SQL as a tree composed of maps and vectors is pretty close to the actual parse tree used internally in PostgreSQL: https://github.com/pganalyze/libpg_query

I don't know about others, but it was hard for me at first to appreciate dsql, primarily because I couldn't understand what problem it solves. I thought, why would anyone need a DSL on top of SQL, which is already a DSL? And what's the point of yet another query language that translates to SQL but looks more cryptic than SQL? Turns out, it's just plain old SQL in the form of a syntax tree, and despite it being a bit hard to read, it's the best representation if you need to programmatically construct and modify your queries (or parts of them). It eventually clicked, but it took some effort. I think it could've been much easier if the library had a different name and description.

Another problem with the current name is that it's impossible to find on Google. Try searching "dsql" or even "clojure dsql"; it just doesn't show up.

I believe naming this library something like sql-tree, sql-syntax-tree, or sql-ast would be helpful for both discoverability and clarifying its purpose. What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant