1--
2-- PG_LSN
3--
4
5CREATE TABLE PG_LSN_TBL (f1 pg_lsn);
6
7-- Largest and smallest input
8INSERT INTO PG_LSN_TBL VALUES ('0/0');
9INSERT INTO PG_LSN_TBL VALUES ('FFFFFFFF/FFFFFFFF');
10
11-- Incorrect input
12INSERT INTO PG_LSN_TBL VALUES ('G/0');
13INSERT INTO PG_LSN_TBL VALUES ('-1/0');
14INSERT INTO PG_LSN_TBL VALUES (' 0/12345678');
15INSERT INTO PG_LSN_TBL VALUES ('ABCD/');
16INSERT INTO PG_LSN_TBL VALUES ('/ABCD');
17DROP TABLE PG_LSN_TBL;
18
19-- Operators
20SELECT '0/16AE7F8' = '0/16AE7F8'::pg_lsn;
21SELECT '0/16AE7F8'::pg_lsn != '0/16AE7F7';
22SELECT '0/16AE7F7' < '0/16AE7F8'::pg_lsn;
23SELECT '0/16AE7F8' > pg_lsn '0/16AE7F7';
24SELECT '0/16AE7F7'::pg_lsn - '0/16AE7F8'::pg_lsn;
25SELECT '0/16AE7F8'::pg_lsn - '0/16AE7F7'::pg_lsn;
26
27-- Check btree and hash opclasses
28EXPLAIN (COSTS OFF)
29SELECT DISTINCT (i || '/' || j)::pg_lsn f
30  FROM generate_series(1, 10) i,
31       generate_series(1, 10) j,
32       generate_series(1, 5) k
33  WHERE i <= 10 AND j > 0 AND j <= 10
34  ORDER BY f;
35
36SELECT DISTINCT (i || '/' || j)::pg_lsn f
37  FROM generate_series(1, 10) i,
38       generate_series(1, 10) j,
39       generate_series(1, 5) k
40  WHERE i <= 10 AND j > 0 AND j <= 10
41  ORDER BY f;
42