"SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"? - Mailing list pgsql-general

From Ron
Subject "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?
Date
Msg-id 3833b34a-a4c1-14ee-fcdc-0fa74baa2cd8@gmail.com
Whole thread Raw
Responses Re: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?  (Rodrigo Luna <rodrigomrluna78@gmail.com>)
Re: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-general
v12.13

https://www.postgresql.org/docs/12/sql-select.html

The docs say that one of these are required in the SELECT list.
[ * | expression [ [ AS ] output_name ] [, ...] ]
However, not mentioning anything also works, though acts like COUNT(*).

test=# select * from sales_detail;
 cust_id |        order_ts         | seq_no | inventory_id | quantity | price  | tax_rate
---------+-------------------------+--------+--------------+----------+--------+----------
       1 | 2020-01-05 13:05:42.567 |      1 |        12345 |     5.80 |  28.40 |    0.092
       1 | 2020-01-05 13:05:42.567 |      2 |        23456 |     6.00 |  98.40 |    0.092
       1 | 2020-01-05 13:05:42.567 |      3 |        34567 |     1.80 |  67.00 |    0.092
       1 | 2020-01-05 13:05:42.567 |      4 |        45678 |   450.00 |   2.00 |    0.092
       1 | 2020-02-05 13:05:42.567 |      1 |         6575 |     5.20 | 567.00 |    0.045
       1 | 2020-02-05 13:05:42.567 |      2 |         4565 |   456.00 | 545.00 |    0.045
       1 | 2020-02-05 13:05:42.567 |      3 |         7899 |   768.00 | 432.00 |    0.045
       1 | 2020-02-05 13:05:42.567 |      4 |         2354 |   556.00 | 890.00 |    0.045
       1 | 2020-03-05 13:05:42.567 |      1 |         6575 |     5.20 | 567.00 |    0.045
       1 | 2020-03-05 13:05:42.567 |      2 |         4565 |   456.00 | 545.00 |    0.045
       1 | 2020-03-05 13:05:42.567 |      3 |         7899 |   768.00 | 432.00 |    0.045
(11 rows)

test=#
test=# select  from sales_detail;
--
(11 rows)

Is it interpreting the lack of column names, expressions or "*" as a null expression?

We only noticed this when someone forgot to put an asterisk in a psql query and thought something was broken.  We expected psql to throw a syntax error...

--
Born in Arizona, moved to Babylonia.

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: VACUUM vs VACUUM FULL (was: SELECT * FROM huge_table LIMIT 10; Why does it take more than 10 min to complete, with cold caches)
Next
From: Rodrigo Luna
Date:
Subject: Re: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?