Live data from Hacker News

Instant SQL for results as you type in DuckDB UI

motherduck.com

21–30 of 124 posts

Re: Instant SQL for results as you type in DuckDB UI

#23

Will this be available in duckdb -ui ? Is mother duck editor features available on-prem? My understanding is that mother duck is a data warehouse sass.

It is already available in the local DuckDB UI! Let us know what you think! -Customer software engineer at MotherDuck

Does local DuckDB UI work without an internet connection?

Re: Instant SQL for results as you type in DuckDB UI

#24

a fun function in duckdb (which I think they're using here) is `json_serialize_sql`. It returns a JSON AST of the SQL SELECT json_serialize_sql('SELECT 2'); [ { "json_serialize_sql('SELECT 2')": { "error": false, "statements": [ { "node": { "type": "SELECT_NODE", "modifiers": [], "cte_map": { "map": [] }, "select_list": [ { "class": "CONSTANT", "type": "VALUE_CONSTANT", "alias": "", "query_location": 7, "value": { "t…

Indeed, we are! We worked with DuckDB Labs to add the query_location information, which we're also enriching with the tokenizer to draw a path through the AST to the cursor location. I've been wanting to do this since forever, and now that we have it, there's actually a long tail of inspection / debugging / enrichment features we can add to our SQL editor.

Re: Instant SQL for results as you type in DuckDB UI

#25
post #22

First time seeing the from at the top of the query and I am not sure how I feel about it. It seems useful but I am so used to select...from. I'm assuming it's more of a user preference like commas in front of the field instead of after field?

You can use any variation of DuckDB valid syntax that you want! I prefer to put from first just because I think it's better, but Instant SQL works with traditional select __ from __ queries.

Re: Instant SQL for results as you type in DuckDB UI

#26

Delete From dbo.users w... (129304 rows affected)

The blog specifically says that they're getting the SQL AST so presumably they would not execute something like a DELETE.

Correct. We only enable fast previews for SELECT statements, which is the actual hard problem. This said, at some point we're likely to also add support for previewing a CTAS before you actually run it.

Re: Instant SQL for results as you type in DuckDB UI

#27

CTE inspection is amazing. I spend too much time doing that manually.

Me too (author of the post here). In fact, I was watching a seasoned data engineer at MotherDuck show me how they would attempt to debug a regex in a CTE. As a longtime SQL user, I felt the pain immediately; haven't we all been there before? Instant SQL followed from that.

Re: Instant SQL for results as you type in DuckDB UI

#30
post #22

First time seeing the from at the top of the query and I am not sure how I feel about it. It seems useful but I am so used to select...from. I'm assuming it's more of a user preference like commas in front of the field instead of after field?

Yes it comes from a desire to impose intuition from other contexts onto something instead of building intuition with that thing.

SQL is a declarative language. The ordering of the statements was carefully thought through.

I will say it's harmless though, the clauses don't have any dependency in terms of meaning so it's fine to just allow them to be reordered in terms of the meaning of the query, but that's true of lots and lots of things in programming and just having a convention is usually better than allowing anything.

For example, you could totally allow this to be legal:

  def
      for x in whatever:
          print(x)
  print_whatever(whatever):
There's nothing ambiguous about it, but why? Like if you are used to seeing it one way it just makes it more confusing to read, and if you aren't used to seeing it the normal way you should at least somewhat master something before you try to improve it through cosmetic tweaks.

I think you see this all the time, people try to impose their own comfort onto things for no actual improvement.

Post reply on HN