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.
This 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.
Thank 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
This 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?
This 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.
You'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
Thanks for the suggestion! I am using https://github.com/tobymao/sqlglot, which magically supports most SQL dialects. And yes, support for DuckDB is also in future plans
Thanks! 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.
Thanks 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
That 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.
For 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
I'm from a CIS country (Azerbaijan) and I applaud you for taking on the challenge of empowering the local workforce and exposing them to foreign markets. There's a lot of untapped talent in ex-USSR countries that can produce outstanding work for a fraction of the cost of their western colleagues, while earning a pretty high (relative to local) income. I for one am working for a foreign startup for $23/h and am living a quite comfortable, even luxurious life, while saving a good chunk of my income.
One question in my head was left unanswered while I read through your post and website: who is responsible for finding and connecting with clients? How do you do that (or how are you planning to scale your current approach)?
Quoted from article [1] on how someone 'hacked' some Brazil politicians:
"A hacker with little technical skill and no specialized equipment could, it turned out, do quite a bit of damage with access to someone's voicemail. Delgatti, for instance, figured out he could use this VoIP spoofing technique to target Telegram accounts. At the time, when a Telegram user wanted to attach their account to a new device, they had the option of requesting a verification code via an automated voice call from Telegram. Delgatti realized that he could spoof a victim's phone to request that code. Then, if Telegram's automated voice call didn't get through—because Delgatti initiated the hack late at night while his victim slept, or kept the line busy by calling his victim at the same time—the code would be sent to the person's voicemail. He could then spoof the target's phone once again to gain access to their voicemail, retrieve the verification code, and then add the victim's Telegram to his own device. After that, he could download their entire chat history from the cloud."
I think the least everyone who wanna continue using telegram must do is enable 'two-step verification' in Telegram settings.
Or use Signal. Or Wire if you don't wanna expose phone number. But Wire stores metadata.
Edit: Yeah WA is e2e by default. But if you or your friend has enabled backing up chats to Google account, everything will be backed up in plain/weak encryption. Also at least in android, WhatsApp automatically stores all received/sent pics, videos etc in a folder named WhatsApp which is available to any app with storage permission.
In practical terms, non secret chats messages are stored, more or less cleartext, on Telegram servers. In this sense, yes, it is much less secure than Whatsapp. Though I don't know if, in whatsapp, the metadata is also e2e encrypted
Yes, it is much worse than WhatsApp.
I use it because it has global searchable groups.
Also you can make it such at other people who chat with you will not be able to see your phone number.
Whatsapp has a nag screen about backups on like every other startup and the backups are plaintext in Google Drive (not sure about the iOS version). So if your contacts just use the defaults you are not better off.
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