-- -- 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)