79 lines
1.6 KiB
PL/PgSQL
79 lines
1.6 KiB
PL/PgSQL
-- gs_xlogdump_lsn
|
|
START TRANSACTION;
|
|
|
|
CREATE OR REPLACE FUNCTION gs_xlogdump_lsn()
|
|
RETURNS table (output text)
|
|
LANGUAGE plpgsql
|
|
AS
|
|
$$
|
|
DECLARE
|
|
param1 text;
|
|
param2 text;
|
|
BEGIN
|
|
SELECT pg_current_xlog_location() into param1;
|
|
CHECKPOINT;
|
|
SELECT pg_current_xlog_location() into param2;
|
|
return query SELECT gs_xlogdump_lsn(''|| param1 || '', ''|| param2 || '');
|
|
END;
|
|
$$
|
|
;
|
|
|
|
SELECT gs_xlogdump_lsn();
|
|
COMMIT;
|
|
|
|
-- gs_xlogdump_xid
|
|
SELECT gs_xlogdump_xid('200');
|
|
|
|
|
|
-- gs_xlogdump_tablepath
|
|
START TRANSACTION;
|
|
|
|
CREATE OR REPLACE FUNCTION gs_xlogdump_tablepath()
|
|
RETURNS table (output text)
|
|
LANGUAGE plpgsql
|
|
AS
|
|
$$
|
|
DECLARE
|
|
param1 text;
|
|
param2 text;
|
|
BEGIN
|
|
DROP TABLE IF EXISTS heap_t;
|
|
CREATE TABLE heap_t (i INT);
|
|
INSERT INTO heap_t SELECT * FROM generate_series(1,10);
|
|
CHECKPOINT;
|
|
SELECT pg_relation_filepath('heap_t') into param1;
|
|
return query SELECT gs_xlogdump_tablepath(''|| param1 || '', 0, 'heap');
|
|
END;
|
|
$$
|
|
;
|
|
|
|
SELECT gs_xlogdump_tablepath();
|
|
DROP TABLE heap_t;
|
|
COMMIT;
|
|
|
|
-- gs_xlogdump_parsepage_tablepath
|
|
START TRANSACTION;
|
|
|
|
CREATE OR REPLACE FUNCTION gs_xlogdump_parsepage_tablepath()
|
|
RETURNS table (output text)
|
|
LANGUAGE plpgsql
|
|
AS
|
|
$$
|
|
DECLARE
|
|
param1 text;
|
|
param2 text;
|
|
BEGIN
|
|
DROP TABLE IF EXISTS heap_t1;
|
|
CREATE TABLE heap_t1 (i INT);
|
|
INSERT INTO heap_t1 SELECT * FROM generate_series(1,10);
|
|
CHECKPOINT;
|
|
SELECT pg_relation_filepath('heap_t1') into param1;
|
|
return query SELECT gs_xlogdump_parsepage_tablepath(''|| param1 || '', 0, 'heap', false);
|
|
END;
|
|
$$
|
|
;
|
|
|
|
SELECT gs_xlogdump_parsepage_tablepath();
|
|
DROP TABLE heap_t1;
|
|
COMMIT;
|