postgresql/contrib/seg/expected/partition.out
Fujii Masao 7bff9f106a psql: Make \d+ partition list formatting consistent with other objects
Previously, \d+ <table> displayed partitions differently from other object
lists: the first partition appeared on the same line as the "Partitions"
header. For example:

    Partitions: pt12 FOR VALUES IN (1, 2),
                pt34 FOR VALUES IN (3, 4)

This commit updates the output so that partitions are listed consistently
with other objects, with each entry on its own line starting below the header:

    Partitions:
        pt12 FOR VALUES IN (1, 2)
        pt34 FOR VALUES IN (3, 4)

Author: Peter Smith <smithpb2250@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Neil Chen <carpenter.nail.cz@gmail.com>
Reviewed-by: Greg Sabino Mullane <htamfids@gmail.com>
Reviewed-by: Soumya S Murali <soumyamurali.work@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CAHut+Pu1puO00C-OhgLnAcECzww8MB3Q8DCsvx0cZWHRfs4gBQ@mail.gmail.com
2026-03-30 11:06:42 +09:00

55 lines
2.6 KiB
Text

--
-- Test that partitioned-index operations cope with objects that are
-- not in the secure search path. (This has little to do with seg,
-- but we need an opclass that isn't in pg_catalog, and the base system
-- has no such opclass.) Note that we need to test propagation of the
-- partitioned index's properties both to partitions that pre-date it
-- and to partitions created later.
--
create function mydouble(int) returns int strict immutable parallel safe
begin atomic select $1 * 2; end;
create collation mycollation from "POSIX";
create table pt (category int, sdata seg, tdata text)
partition by list (category);
-- pre-existing partition
create table pt12 partition of pt for values in (1,2);
insert into pt values(1, '0 .. 1'::seg, 'zed');
-- expression references object in public schema
create index pti1 on pt ((mydouble(category) + 1));
-- opclass in public schema
create index pti2 on pt (sdata seg_ops);
-- collation in public schema
create index pti3 on pt (tdata collate mycollation);
-- new partition
create table pt34 partition of pt for values in (3,4);
insert into pt values(4, '-1 .. 1'::seg, 'foo');
\d+ pt
Partitioned table "public.pt"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
----------+---------+-----------+----------+---------+----------+--------------+-------------
category | integer | | | | plain | |
sdata | seg | | | | plain | |
tdata | text | | | | extended | |
Partition key: LIST (category)
Indexes:
"pti1" btree ((mydouble(category) + 1))
"pti2" btree (sdata)
"pti3" btree (tdata COLLATE mycollation)
Partitions:
pt12 FOR VALUES IN (1, 2)
pt34 FOR VALUES IN (3, 4)
\d+ pt12
Table "public.pt12"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
----------+---------+-----------+----------+---------+----------+--------------+-------------
category | integer | | | | plain | |
sdata | seg | | | | plain | |
tdata | text | | | | extended | |
Partition of: pt FOR VALUES IN (1, 2)
Partition constraint: ((category IS NOT NULL) AND (category = ANY (ARRAY[1, 2])))
Indexes:
"pt12_expr_idx" btree ((mydouble(category) + 1))
"pt12_sdata_idx" btree (sdata)
"pt12_tdata_idx" btree (tdata COLLATE mycollation)