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

From Rodrigo Luna
Subject Re: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?
Date
Msg-id 5BB0E817-BF1D-4668-B1DB-D242724999D1@gmail.com
Whole thread Raw
In response to "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?  (Ron <ronljohnsonjr@gmail.com>)
List pgsql-general
SELECT 
   COUNT(*) 
FROM 
   table_name
WHERE
   condition;



Rodrigo Dev
Visite: https://rodrigoluna.net.br
YouTube: YouTube.com/@gamesbrs 

Em 1 de fev. de 2023, à(s) 17:00, Ron <ronljohnsonjr@gmail.com> escreveu:

 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: Ron
Date:
Subject: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?
Next
From: "David G. Johnston"
Date:
Subject: Re: "SELECT FROM foo" acts like "SELECT COUNT(*) FROM foo"?