PolarDB-for-PostgreSQL
26 строк · 875.0 Байт
1set enable_seqscan=off;
2
3CREATE TYPE rainbow AS ENUM ('r','o','y','g','b','i','v');
4
5CREATE TABLE test_enum (
6i rainbow
7);
8
9INSERT INTO test_enum VALUES ('v'),('y'),('r'),('g'),('o'),('i'),('b');
10
11CREATE INDEX idx_enum ON test_enum USING gin (i);
12
13SELECT * FROM test_enum WHERE i<'g'::rainbow ORDER BY i;
14SELECT * FROM test_enum WHERE i<='g'::rainbow ORDER BY i;
15SELECT * FROM test_enum WHERE i='g'::rainbow ORDER BY i;
16SELECT * FROM test_enum WHERE i>='g'::rainbow ORDER BY i;
17SELECT * FROM test_enum WHERE i>'g'::rainbow ORDER BY i;
18
19explain (costs off) SELECT * FROM test_enum WHERE i>='g'::rainbow ORDER BY i;
20
21
22-- make sure we handle the non-evenly-numbered oid case for enums
23create type e as enum ('0', '2', '3');
24alter type e add value '1' after '0';
25create table t as select (i % 4)::text::e from generate_series(0, 100000) as i;
26create index on t using gin (e);
27