On 2022-02-13 01:11:16 +0100, Andreas 'ads' Scherbaum wrote: > On 12/02/2022 22:34, Peter J. Holzer wrote: > > On 2022-02-12 22:09:25 +0100, Andreas 'ads' Scherbaum wrote: > > > On 12/02/2022 20:50, Peter J. Holzer wrote: > > > > On 2022-02-12 01:18:04 +0100, Andreas 'ads' Scherbaum wrote: > > > > > On 10/02/2022 18:22, Peter J. Holzer wrote: > > > > > > On 2022-02-09 21:14:39 -0800, Guyren Howe wrote: > > > > > > > Examples of small things Postgres could have: > > > > > > > > > > > > > > • SELECT * - b.a_id from a natural join b > > [...] > > > > > Maybe for this specific use case it's easier to teach psql how to do that, > > [...] > > > > I think the easiest way to get the columns would be to EXPLAIN(verbose) > > > > the query. Otherwise psql (or whatever your shell is) would have to > > > > completely parse the SQL statement to find the columns. [...] > > > I was thinking about this problem for a while, and it's not easy to solve. > > > Hence I came up with the idea that psql could - once the table is known > > > and very specific psql syntax is there (\- as example) replace the * with > > > the actual columns. All of this before the query is run, and as a user you > > > can edit the column list further. > > Yeah, but the problem is that it isn't that easy for psql to figure out > > which table is involved. > > The complaint is not about complex queries, or CTEs, or Joins. This is > about simple queries where a user wants to discover - surf - the database > and look into specific tables, but exclude certain columns. If you look back through this thread you will notice that it was me who brought up that specific scenario. You might trust me to know what I was thinking about when I wrote it ;-). > More specifically, this is when the user types in interactive queries. I do write quite complex queries interactively. Even when "surfing", joins are common because in a normalized schema many columns just contain meaningless foreign keys. But I also do some data analysis interactively (which is where CTEs usually come in) and I like to develop queries interactively before putting them into (Python) programs. But even if I didn't do that - if you add a feature like that to psql, it should work for all queries, not just a tiny subset. > Today psql tries to do autocomplete for certain scenarios, this too does > not work in complex queries, but nevertheless is a useful help if someone > tries to run simple, interactive queries. Autocomplete doesn't even work well for simple queries. It's better than nothing, but I don't think that it should serve as a model for new features. hp -- _ | Peter J. Holzer | Story must make more sense than reality. |_|_) | | | | | hjp@xxxxxx | -- Charles Stross, "Creative writing __/ | http://www.hjp.at/ | challenge!"
Attachment:
signature.asc
Description: PGP signature