CREATE EXTENSION IF NOT EXISTS "pgcrypto"; create or replace function uuid_generate_v7() returns uuid as $$ select encode( set_bit( set_bit( overlay(uuid_send(gen_random_uuid()) placing substring(int8send(floor(extract(epoch from clock_timestamp()) * 1000)::bigint) from 3) from 1 for 6 ), 52, 1 ), 53, 1 ), 'hex')::uuid; $$ language SQL volatile; CREATE FUNCTION isInVersion( _version int, _addedVersion int, _removedVersion int ) RETURNS boolean as $$ BEGIN RETURN _version is null OR ( _version >= _addedVersion AND (_removedVersion is null OR _version < _removedVersion) ); END; $$ LANGUAGE plpgsql; CREATE DOMAIN unsignedsmallint AS SMALLINT CHECK (VALUE >= 0);