Re: [patch] Proposal for \crosstabview in psql - Mailing list pgsql-hackers
From | Alvaro Herrera |
---|---|
Subject | Re: [patch] Proposal for \crosstabview in psql |
Date | |
Msg-id | 20160407202656.GA582580@alvherre.pgsql Whole thread Raw |
In response to | Re: [patch] Proposal for \crosstabview in psql ("Daniel Verite" <daniel@manitou-mail.org>) |
Responses |
Re: [patch] Proposal for \crosstabview in psql
Re: [patch] Proposal for \crosstabview in psql |
List | pgsql-hackers |
I wonder if the business of appending values of multiple columns separated with spaces is doing us any good. Why not require that there's a single column in the cell? If the user wants to put things together, they can use format() or just || the fields together. What benefit is there to the ' '? When I ran my first test queries over pg_class I was surprised about this behavior: alvherre=# select * from pg_class alvherre=# \crosstabview relnatts relkind relnatts | r | t | i | v ----------+------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------- 26 | pg_statistic 11 11397 0 10 0 2619 0 15 380 15 2840 t f p 0 f f f f f f f t n 540 1 {alvherre=arwdDxt/alvherre} (null) | | | 30 | pg_type 11 71 0 10 0 0 0 9 358 9 0 t f p 0 t f f f f f f t n 540 1 {=r/alvherre} (null) | | | 3 | pg_user_mapping 11 11633 0 10 0 1418 0 0 0 0 0 t f p 0 t f f f f f f t n 540 1 {alvherre=arwdDxt/alvherre}(null) +| pg_toast_2604 99 11642 0 10 0 2830 0 0 0 0 0 t f p 0 f ff f f f f t n 540 1 (null) (null) +| pg_amop_opr_fam_index 11 0 0 10 403 2654 0 5 688 0 0 f f p 0 f f f f f f f t n 00 (null) (null) +| pg_group 11 11661 0 10 0 11660 0 0 0 0 0 f f p 0 f f t f f f f t n 0 0 {=r/alvherre} (null) + I'm tempted to rip that out, unless you have a reason not to. In fact, I think even the grouping of values of multiple rows with \n is not terribly great either. Why not just require people to group the values beforehand? You can use "string_agg(column, E'\n')" to get the same behavior, plus you can do other things such as sum() etc. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
pgsql-hackers by date: