2014-02-19 14:35:23 +01:00
|
|
|
--
|
|
|
|
-- PG_LSN
|
|
|
|
--
|
|
|
|
|
|
|
|
CREATE TABLE PG_LSN_TBL (f1 pg_lsn);
|
|
|
|
|
|
|
|
-- Largest and smallest input
|
|
|
|
INSERT INTO PG_LSN_TBL VALUES ('0/0');
|
|
|
|
INSERT INTO PG_LSN_TBL VALUES ('FFFFFFFF/FFFFFFFF');
|
|
|
|
|
|
|
|
-- Incorrect input
|
|
|
|
INSERT INTO PG_LSN_TBL VALUES ('G/0');
|
|
|
|
INSERT INTO PG_LSN_TBL VALUES ('-1/0');
|
|
|
|
INSERT INTO PG_LSN_TBL VALUES (' 0/12345678');
|
|
|
|
INSERT INTO PG_LSN_TBL VALUES ('ABCD/');
|
|
|
|
INSERT INTO PG_LSN_TBL VALUES ('/ABCD');
|
|
|
|
DROP TABLE PG_LSN_TBL;
|
|
|
|
|
|
|
|
-- Operators
|
|
|
|
SELECT '0/16AE7F8' = '0/16AE7F8'::pg_lsn;
|
|
|
|
SELECT '0/16AE7F8'::pg_lsn != '0/16AE7F7';
|
|
|
|
SELECT '0/16AE7F7' < '0/16AE7F8'::pg_lsn;
|
|
|
|
SELECT '0/16AE7F8' > pg_lsn '0/16AE7F7';
|
2014-02-24 15:32:21 +01:00
|
|
|
SELECT '0/16AE7F7'::pg_lsn - '0/16AE7F8'::pg_lsn;
|
|
|
|
SELECT '0/16AE7F8'::pg_lsn - '0/16AE7F7'::pg_lsn;
|
2014-06-05 02:45:56 +02:00
|
|
|
|
|
|
|
-- Check btree and hash opclasses
|
|
|
|
EXPLAIN (COSTS OFF)
|
|
|
|
SELECT DISTINCT (i || '/' || j)::pg_lsn f
|
|
|
|
FROM generate_series(1, 10) i,
|
|
|
|
generate_series(1, 10) j,
|
|
|
|
generate_series(1, 5) k
|
2014-06-05 03:31:41 +02:00
|
|
|
WHERE i <= 10 AND j > 0 AND j <= 10
|
2014-06-05 02:45:56 +02:00
|
|
|
ORDER BY f;
|
|
|
|
|
|
|
|
SELECT DISTINCT (i || '/' || j)::pg_lsn f
|
|
|
|
FROM generate_series(1, 10) i,
|
|
|
|
generate_series(1, 10) j,
|
|
|
|
generate_series(1, 5) k
|
2014-06-05 03:31:41 +02:00
|
|
|
WHERE i <= 10 AND j > 0 AND j <= 10
|
2014-06-05 02:45:56 +02:00
|
|
|
ORDER BY f;
|