aboutsummaryrefslogtreecommitdiff
path: root/contrib/seg/sql/partition.sql
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/seg/sql/partition.sql')
-rw-r--r--contrib/seg/sql/partition.sql36
1 files changed, 36 insertions, 0 deletions
diff --git a/contrib/seg/sql/partition.sql b/contrib/seg/sql/partition.sql
new file mode 100644
index 00000000000..e1febdea873
--- /dev/null
+++ b/contrib/seg/sql/partition.sql
@@ -0,0 +1,36 @@
+--
+-- 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
+\d+ pt12