postgresql/src/test/regress/expected/amutils.out

255 lines
9.6 KiB
Plaintext

--
-- Test index AM property-reporting functions
--
select prop,
pg_indexam_has_property(a.oid, prop) as "AM",
pg_index_has_property('onek_hundred'::regclass, prop) as "Index",
pg_index_column_has_property('onek_hundred'::regclass, 1, prop) as "Column"
from pg_am a,
unnest(array['asc', 'desc', 'nulls_first', 'nulls_last',
'orderable', 'distance_orderable', 'returnable',
'search_array', 'search_nulls',
'clusterable', 'index_scan', 'bitmap_scan',
'backward_scan',
'can_order', 'can_unique', 'can_multi_col',
'can_exclude', 'can_include',
'bogus']::text[])
with ordinality as u(prop,ord)
where a.amname = 'btree'
order by ord;
prop | AM | Index | Column
--------------------+----+-------+--------
asc | | | t
desc | | | f
nulls_first | | | f
nulls_last | | | t
orderable | | | t
distance_orderable | | | f
returnable | | | t
search_array | | | t
search_nulls | | | t
clusterable | | t |
index_scan | | t |
bitmap_scan | | t |
backward_scan | | t |
can_order | t | |
can_unique | t | |
can_multi_col | t | |
can_exclude | t | |
can_include | t | |
bogus | | |
(19 rows)
select prop,
pg_indexam_has_property(a.oid, prop) as "AM",
pg_index_has_property('gcircleind'::regclass, prop) as "Index",
pg_index_column_has_property('gcircleind'::regclass, 1, prop) as "Column"
from pg_am a,
unnest(array['asc', 'desc', 'nulls_first', 'nulls_last',
'orderable', 'distance_orderable', 'returnable',
'search_array', 'search_nulls',
'clusterable', 'index_scan', 'bitmap_scan',
'backward_scan',
'can_order', 'can_unique', 'can_multi_col',
'can_exclude', 'can_include',
'bogus']::text[])
with ordinality as u(prop,ord)
where a.amname = 'gist'
order by ord;
prop | AM | Index | Column
--------------------+----+-------+--------
asc | | | f
desc | | | f
nulls_first | | | f
nulls_last | | | f
orderable | | | f
distance_orderable | | | t
returnable | | | f
search_array | | | f
search_nulls | | | t
clusterable | | t |
index_scan | | t |
bitmap_scan | | t |
backward_scan | | f |
can_order | f | |
can_unique | f | |
can_multi_col | t | |
can_exclude | t | |
can_include | t | |
bogus | | |
(19 rows)
select prop,
pg_index_column_has_property('onek_hundred'::regclass, 1, prop) as btree,
pg_index_column_has_property('hash_i4_index'::regclass, 1, prop) as hash,
pg_index_column_has_property('gcircleind'::regclass, 1, prop) as gist,
pg_index_column_has_property('sp_radix_ind'::regclass, 1, prop) as spgist_radix,
pg_index_column_has_property('sp_quad_ind'::regclass, 1, prop) as spgist_quad,
pg_index_column_has_property('botharrayidx'::regclass, 1, prop) as gin,
pg_index_column_has_property('brinidx'::regclass, 1, prop) as brin
from unnest(array['asc', 'desc', 'nulls_first', 'nulls_last',
'orderable', 'distance_orderable', 'returnable',
'search_array', 'search_nulls',
'bogus']::text[])
with ordinality as u(prop,ord)
order by ord;
prop | btree | hash | gist | spgist_radix | spgist_quad | gin | brin
--------------------+-------+------+------+--------------+-------------+-----+------
asc | t | f | f | f | f | f | f
desc | f | f | f | f | f | f | f
nulls_first | f | f | f | f | f | f | f
nulls_last | t | f | f | f | f | f | f
orderable | t | f | f | f | f | f | f
distance_orderable | f | f | t | f | t | f | f
returnable | t | f | f | t | t | f | f
search_array | t | f | f | f | f | f | f
search_nulls | t | f | t | t | t | f | t
bogus | | | | | | |
(10 rows)
select prop,
pg_index_has_property('onek_hundred'::regclass, prop) as btree,
pg_index_has_property('hash_i4_index'::regclass, prop) as hash,
pg_index_has_property('gcircleind'::regclass, prop) as gist,
pg_index_has_property('sp_radix_ind'::regclass, prop) as spgist,
pg_index_has_property('botharrayidx'::regclass, prop) as gin,
pg_index_has_property('brinidx'::regclass, prop) as brin
from unnest(array['clusterable', 'index_scan', 'bitmap_scan',
'backward_scan',
'bogus']::text[])
with ordinality as u(prop,ord)
order by ord;
prop | btree | hash | gist | spgist | gin | brin
---------------+-------+------+------+--------+-----+------
clusterable | t | f | t | f | f | f
index_scan | t | t | t | t | f | f
bitmap_scan | t | t | t | t | t | t
backward_scan | t | t | f | f | f | f
bogus | | | | | |
(5 rows)
select amname, prop, pg_indexam_has_property(a.oid, prop) as p
from pg_am a,
unnest(array['can_order', 'can_unique', 'can_multi_col',
'can_exclude', 'can_include', 'bogus']::text[])
with ordinality as u(prop,ord)
where amtype = 'i'
order by amname, ord;
amname | prop | p
--------+---------------+---
brin | can_order | f
brin | can_unique | f
brin | can_multi_col | t
brin | can_exclude | f
brin | can_include | f
brin | bogus |
btree | can_order | t
btree | can_unique | t
btree | can_multi_col | t
btree | can_exclude | t
btree | can_include | t
btree | bogus |
gin | can_order | f
gin | can_unique | f
gin | can_multi_col | t
gin | can_exclude | f
gin | can_include | f
gin | bogus |
gist | can_order | f
gist | can_unique | f
gist | can_multi_col | t
gist | can_exclude | t
gist | can_include | t
gist | bogus |
hash | can_order | f
hash | can_unique | f
hash | can_multi_col | f
hash | can_exclude | t
hash | can_include | f
hash | bogus |
spgist | can_order | f
spgist | can_unique | f
spgist | can_multi_col | f
spgist | can_exclude | t
spgist | can_include | t
spgist | bogus |
(36 rows)
--
-- additional checks for pg_index_column_has_property
--
CREATE TEMP TABLE foo (f1 int, f2 int, f3 int, f4 int);
CREATE INDEX fooindex ON foo (f1 desc, f2 asc, f3 nulls first, f4 nulls last);
select col, prop, pg_index_column_has_property(o, col, prop)
from (values ('fooindex'::regclass)) v1(o),
(values (1,'orderable'),(2,'asc'),(3,'desc'),
(4,'nulls_first'),(5,'nulls_last'),
(6, 'bogus')) v2(idx,prop),
generate_series(1,4) col
order by col, idx;
col | prop | pg_index_column_has_property
-----+-------------+------------------------------
1 | orderable | t
1 | asc | f
1 | desc | t
1 | nulls_first | t
1 | nulls_last | f
1 | bogus |
2 | orderable | t
2 | asc | t
2 | desc | f
2 | nulls_first | f
2 | nulls_last | t
2 | bogus |
3 | orderable | t
3 | asc | t
3 | desc | f
3 | nulls_first | t
3 | nulls_last | f
3 | bogus |
4 | orderable | t
4 | asc | t
4 | desc | f
4 | nulls_first | f
4 | nulls_last | t
4 | bogus |
(24 rows)
CREATE INDEX foocover ON foo (f1) INCLUDE (f2,f3);
select col, prop, pg_index_column_has_property(o, col, prop)
from (values ('foocover'::regclass)) v1(o),
(values (1,'orderable'),(2,'asc'),(3,'desc'),
(4,'nulls_first'),(5,'nulls_last'),
(6,'distance_orderable'),(7,'returnable'),
(8, 'bogus')) v2(idx,prop),
generate_series(1,3) col
order by col, idx;
col | prop | pg_index_column_has_property
-----+--------------------+------------------------------
1 | orderable | t
1 | asc | t
1 | desc | f
1 | nulls_first | f
1 | nulls_last | t
1 | distance_orderable | f
1 | returnable | t
1 | bogus |
2 | orderable | f
2 | asc |
2 | desc |
2 | nulls_first |
2 | nulls_last |
2 | distance_orderable | f
2 | returnable | t
2 | bogus |
3 | orderable | f
3 | asc |
3 | desc |
3 | nulls_first |
3 | nulls_last |
3 | distance_orderable | f
3 | returnable | t
3 | bogus |
(24 rows)