4 ms·
The first ever SQL debugger – runs & visualizes your query step-by-step, every clause, condition, expression, incl. GROUP BY, aggregates / windows, DISTINCT (ON
by xarici_ishler 1y ago
The first ever SQL debugger – runs & visualizes your query step-by-step, every clause, condition, expression, incl. GROUP BY, aggregates / windows, DISTINCT (ON), subqueries (even correlated ones!), CTEs, you name it.
You can search for full or partial rows and see the whole query lineage – which intermediate rows from which CTEs/subqueries contributed to the result you're searching for.
Entirely offline & no usage of AI. Free in-browser version (using PGLite WASM), paid desktop version.
No website yet, here's a 5 minute showcase (skip to middle): https://www.loom.com/share/c03b57fa61fc4c509b1e2134e53b70dd https://www.loom.com/share/c03b57fa61fc4c509b1e2134e53b70dd
- anitil 1y agoIs this postgres only? What an interesting idea!
- xarici_ishler 1y agoFor now, yes, but I'll start working on adding support for all other DBs (especially OLAP) as soon as possible. The geberal approach is the same, I just have to handle all the edge cases of the SQL dialects
- parrit 1y agoWas thinking today... not a debugger but even a SQL progess bar, so I know that my add column will take say 7 hours in advance.
- IceDane 1y agoThis seems like it could be extremely useful.
- xarici_ishler 1y agoThanks! Would you mind sharing what would be your use cases? At my job, all of our business logic (4 KLOC of network topology algorithms) is written in a niche query language, which we have been migrating to PostgreSQL. When an inconsistency/error is found, tracking it can take days, manually commenting out parts of query and looking at the results.
- alok-g 1y agoAm not the person you asked, but feel that it could have good value for education and learning as well, besides debugging.
- binary132 1y agoNice one!
- Ni3l55 1y agoCool! We're dealing with many complex CTEs and costly queries. Would be useful to have those visualized one by one.
- xarici_ishler 1y agoWhat database are you using? I'd be happy to hear about your usecases and hopefully help you, shoot me an email (in profile)
- benjaminsky2 1y agoThis is awesome! I’m work with a team of analysts and data engineers who own a pretty big snowflake data warehouse. We write a ton of dbt models and have a range of sql skill levels on the team. This would be the perfect way to allow more junior devs to build their skills quickly and support more complex models. I would recommend you target data warehouses like snowflake and bigquery where the query complexity and thus value prop for a tool like this is potentially much higher.
- xarici_ishler 1y agoThank you, nice to get some idea validation from folks in the industry. For sure data warehouses are the top priority on my TODO list, I picked PG first because that's what I'm familiar with. I can ping you via email when the debugger is ready, if you're interested. My email is in my profile
- jeffhuys 1y agoThis would be incredible to understand why some queries execute slow; most of the time it's one of the steps in between that takes 99% of the execution time at our company. Do you record the time each step takes?
- xarici_ishler 1y agoYou're onto the original idea I started out with! Unfortunately it's very difficult to correlate input SQL to an output query plan – but possible. It's definitely in future plans
- thebytefairy 1y agoCan you not use EXPLAIN ANALYZE to identify steps that had the highest compute time? I think most databases have some form of this.
- noahbp 1y agoI've never heard of this, and I'm pretty sure my coworkers haven't either. Thanks for mentioning it! https://chatgpt.com/share/68104c37-b578-8003-8c4e-b0a46882062d https://chatgpt.com/share/68104c37-b578-8003-8c4e-b0a4688206...
- xzel 1y agoThis is a great command everyone should know. We once had a long running database query that was blocking a pipeline (code was written in a week and of course became integral to operations). Ran it, 15 minutes of thinking, added a new index on an now important column, and cut the run time down from almost 30 minutes to 5 seconds.
- Suppafly 1y agoMSSQL has the execution plan thing that will tell you which steps are involved and how long they take.
- thenaturalist 1y agoPossibly look at https://duckdb.org/community_extensions/extensions/parser_tools.html https://duckdb.org/community_extensions/extensions/parser_to... Even if not for DuckDB, you can use this to validate/ parse queries possibly.
- xarici_ishler 1y agoThanks for the suggestion! I am using https://github.com/tobymao/sqlglot https://github.com/tobymao/sqlglot, which magically supports most SQL dialects. And yes, support for DuckDB is also in future plans
- netcraft 1y agothis is very cool! Where can I follow you to see updates?
- lie07 1y agoFollowing...
- jarek83 1y agoFinish it, shut up, take my money! This looks really good - make a website just to make it possible to sign up for updates.
- xarici_ishler 1y agoThanks for the motivation to finish this as soon as possible :) I'm working on a basic landing page with screenshots/videos and a "get notified" button right now – shoot me an (empty, if you want) email (in profile) and I'll ping you as soon as it's ready
- xarici_ishler 1y agohttps://dequery.io https://dequery.io :) Added a little signup form (with possibility of providing additional feedback)
- jarek83 1y agoThat was quick. I wanted to be quick too, but learned that I was too eager and missed that the are optional fields to pick from. I then re-submitted with the same email (will it go through or you have uniqueness validation?) providing optional stuff this time. Maybe play with positioning of the optional fields so they would be more apparent before submitting email address.
- xarici_ishler 1y agoThanks for the feedback! I updated the form
- xarici_ishler 1y agohttps://dequery.io https://dequery.io This comment is still (surprisingly!) gaining traction, so leaving this here