aboutsummaryrefslogtreecommitdiff
path: root/contrib/seg/expected/partition.out
blob: 90d8397d5d461302504581d4726a343519cfdc95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
--
-- 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)