-- ---------- -- txid.sql -- -- SQL script for loading the transaction ID compatible datatype -- -- Copyright (c) 2003-2004, PostgreSQL Global Development Group -- Author: Jan Wieck, Afilias USA INC. -- -- ---------- set client_min_messages = 'warning'; CREATE DOMAIN txid AS bigint CHECK (value > 0); -- -- A special transaction snapshot data type for faster visibility checks -- CREATE OR REPLACE FUNCTION txid_snapshot_in(cstring) RETURNS txid_snapshot AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION txid_snapshot_out(txid_snapshot) RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; -- -- The data type itself -- CREATE TYPE txid_snapshot ( INPUT = txid_snapshot_in, OUTPUT = txid_snapshot_out, INTERNALLENGTH = variable, STORAGE = extended, ALIGNMENT = double ); CREATE OR REPLACE FUNCTION get_current_txid() RETURNS bigint AS 'MODULE_PATHNAME', 'txid_current' LANGUAGE C SECURITY DEFINER; CREATE OR REPLACE FUNCTION get_current_snapshot() RETURNS txid_snapshot AS 'MODULE_PATHNAME', 'txid_current_snapshot' LANGUAGE C SECURITY DEFINER; CREATE OR REPLACE FUNCTION get_snapshot_xmin(txid_snapshot) RETURNS bigint AS 'MODULE_PATHNAME', 'txid_snapshot_xmin' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION get_snapshot_xmax(txid_snapshot) RETURNS bigint AS 'MODULE_PATHNAME', 'txid_snapshot_xmax' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION get_snapshot_active(txid_snapshot) RETURNS setof bigint AS 'MODULE_PATHNAME', 'txid_snapshot_active' LANGUAGE C IMMUTABLE STRICT; -- -- Special comparision functions used by the remote worker -- for sync chunk selection -- CREATE OR REPLACE FUNCTION txid_in_snapshot(bigint, txid_snapshot) RETURNS boolean AS 'MODULE_PATHNAME', 'txid_in_snapshot' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION txid_not_in_snapshot(bigint, txid_snapshot) RETURNS boolean AS 'MODULE_PATHNAME', 'txid_not_in_snapshot' LANGUAGE C IMMUTABLE STRICT;