psql 扩展显示 - 避免破折号

psql expanded display - avoid dashes

当我有一个非常宽的列(如 json 文档)并且我使用扩展显示使内容至少部分可读时,我仍然看到非常难看的记录分隔符,这似乎想要与最宽的列一样宽,像这样:

有没有办法避免"Sea of Dashes"?

-[ RECORD 1 ]--+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

id | 18

description | {json data xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}

parameter | {json data xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}

name | Foo

-[ RECORD 2 ]--+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

id | 19

description | {}

parameter | {json data xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}

name | CustomerRequestEventType

为了避免破折号,使用\pset format unaligned,例如:

t=# \x
Expanded display is on.
t=# \pset format unaligned
Output format is unaligned.
t=# with ts as (select generate_series('2010-01-01'::timestamp,'2010-01-10'::timestamp,'1 day'::interval) s) select array_agg(s) from ts;                 array_agg|{"2010-01-01 00:00:00","2010-01-02 00:00:00","2010-01-03 00:00:00","2010-01-04 00:00:00","2010-01-05 00:00:00","2010-01-06 00:00:00","2010-01-07 00:00:00","2010-01-08 00:00:00","2010-01-09 00:00:00","2010-01-10 00:00:00"}
Time: 0.250 ms

如您所见,没有破折号,但长字符串仍按 window 的长度(或根本不换行)换行。如果是未格式化的字符串,这是解决方案,但您提到了 json - 它可以用一种漂亮的方式进行划分。为此,不要在 psql 中使用未对齐格式,而是使用 jsonb_pretty 函数或其他函数的 pretty 标志,例如(使用 array_to_json(..., true):

t=# with ts as (select generate_series('2010-01-01'::timestamp,'2010-01-31'::timestamp,'1 day'::interval) s) select array_to_json(array_agg(s),true) from ts;
array_to_json|["2010-01-01T00:00:00",
 "2010-01-02T00:00:00",
 "2010-01-03T00:00:00",
 "2010-01-04T00:00:00",
 "2010-01-05T00:00:00",
 "2010-01-06T00:00:00",
 "2010-01-07T00:00:00",
 "2010-01-08T00:00:00",
 "2010-01-09T00:00:00",
 "2010-01-10T00:00:00",
 "2010-01-11T00:00:00",
 "2010-01-12T00:00:00",
 "2010-01-13T00:00:00",
 "2010-01-14T00:00:00",
 "2010-01-15T00:00:00",
 "2010-01-16T00:00:00",
 "2010-01-17T00:00:00",
 "2010-01-18T00:00:00",
 "2010-01-19T00:00:00",
 "2010-01-20T00:00:00",
 "2010-01-21T00:00:00",
 "2010-01-22T00:00:00",
 "2010-01-23T00:00:00",
 "2010-01-24T00:00:00",
 "2010-01-25T00:00:00",
 "2010-01-26T00:00:00",
 "2010-01-27T00:00:00",
 "2010-01-28T00:00:00",
 "2010-01-29T00:00:00",
 "2010-01-30T00:00:00",
 "2010-01-31T00:00:00"]
Time: 0.291 ms

注意我仍然使用未对齐的格式来避免“+”...