X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/66b5e85845547e6f3c6dba59952217f5882b0271..2e34b62fac7d0a9a7b03e92bdf26f691736e2954:/db/functions/functions.sql?ds=sidebyside diff --git a/db/functions/functions.sql b/db/functions/functions.sql index 5e3d4bcb3..97e44f0ce 100644 --- a/db/functions/functions.sql +++ b/db/functions/functions.sql @@ -40,34 +40,3 @@ BEGIN RETURN (x << 1) | y; END; $$ LANGUAGE plpgsql IMMUTABLE; - - --- xid_to_int4 converts a PostgreSQL transaction ID (xid) to a 32-bit integer --- which can then be used to efficiently find rows which have changed between --- two given transactions. This is currently used by Osmosis to extract a --- stream of edits for "diff replication" **HOWEVER** this is a pain point, as --- (ab)using the xid in this way is _not_ supported or recommended by Postgres --- devs. It is preventing us upgrading to PostgreSQL version 10+, and will --- hopefully be replaced Real Soon Now. --- --- From the Osmosis distribution by Brett Henderson: --- https://github.com/openstreetmap/osmosis/blob/master/package/script/contrib/apidb_0.6_osmosis_xid_indexing.sql -CREATE OR REPLACE FUNCTION xid_to_int4(t xid) - RETURNS integer - AS -$$ -DECLARE - tl bigint; - ti int; -BEGIN - tl := t; - - IF tl >= 2147483648 THEN - tl := tl - 4294967296; - END IF; - - ti := tl; - - RETURN ti; -END; -$$ LANGUAGE 'plpgsql' IMMUTABLE STRICT;