Hacker Newsnew | past | comments | ask | show | jobs | submit | xarici_ishler's commentslogin

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


Was 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.


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?


Can you not use EXPLAIN ANALYZE to identify steps that had the highest compute time? I think most databases have some form of this.


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.


I'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-b0a4688206...


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


MSSQL has the execution plan thing that will tell you which steps are involved and how long they take.


Possibly look at https://duckdb.org/community_extensions/extensions/parser_to...

Even if not for DuckDB, you can use this to validate/ parse queries possibly.


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


This seems like it could be extremely useful.


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.


Am not the person you asked, but feel that it could have good value for education and learning as well, besides debugging.


Finish it, shut up, take my money! This looks really good - make a website just to make it possible to sign up for updates.


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


https://dequery.io :) Added a little signup form (with possibility of providing additional feedback)


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.


Thanks for the feedback! I updated the form


Cool! We're dealing with many complex CTEs and costly queries. Would be useful to have those visualized one by one.


What database are you using? I'd be happy to hear about your usecases and hopefully help you, shoot me an email (in profile)


this is very cool! Where can I follow you to see updates?


Is this postgres only? What an interesting idea!


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


https://dequery.io

This comment is still (surprisingly!) gaining traction, so leaving this here


Nice one!


Following...


It's probably better if you provide a bit more context: "boar" is "kabanchik" in Russian


https://www.youtube.com/watch?v=oX9aPNF6_h8

This is a great video explaining Brouwer's theorem and its (theoretical) application to stirring a cup of water.


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)?


That's a common misconception. Telegram private chats are by default not e2e encrypted (but you can create a separate "secret chat", which will be).


And that secret chat only works on mobile and only for 1 on 1 conversations.


Really? What does it mean in practical terms? Anyone can see my chats?

Is it worst than Whatsapp in that sense? I understand (again) that WA is e2e encrypted by default?

Thanks!


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."

[1] https://www.wired.com/story/brazil-hacker-bolsonaro-car-wash...

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.


> Also at least in android, WhatsApp automatically stores all received/sent pics, videos etc in a folder named WhatsApp

Note that this is true even for unread messages, including messages in group chats.


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.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: