1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
#if PG_VERSION_NUM < 100000
#define IFPARALLEL(...)
#else
#define IFPARALLEL(...) __VA_ARGS__
#endif
CREATE FUNCTION hll_serialize(internal)
RETURNS bytea
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE IFPARALLEL(PARALLEL SAFE);
CREATE FUNCTION hll_deserialize(bytea, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE IFPARALLEL(PARALLEL SAFE);
CREATE FUNCTION hll_union_internal(internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IFPARALLEL(PARALLEL SAFE);
IFPARALLEL(
ALTER FUNCTION hll_in(cstring, oid, integer) PARALLEL SAFE;
ALTER FUNCTION hll_out(hll) PARALLEL SAFE;
ALTER FUNCTION hll_recv(internal) PARALLEL SAFE;
ALTER FUNCTION hll_send(hll) PARALLEL SAFE;
ALTER FUNCTION hll_typmod_in(cstring[]) PARALLEL SAFE;
ALTER FUNCTION hll_typmod_out(integer) PARALLEL SAFE;
ALTER FUNCTION hll(hll, integer, boolean) PARALLEL SAFE;
ALTER FUNCTION hll_hashval_in(cstring, oid, integer) PARALLEL SAFE;
ALTER FUNCTION hll_hashval_out(hll_hashval) PARALLEL SAFE;
ALTER FUNCTION hll_hashval_eq(hll_hashval, hll_hashval) PARALLEL SAFE;
ALTER FUNCTION hll_hashval_ne(hll_hashval, hll_hashval) PARALLEL SAFE;
ALTER FUNCTION hll_hashval(bigint) PARALLEL SAFE;
ALTER FUNCTION hll_hashval_int4(integer) PARALLEL SAFE;
ALTER FUNCTION hll_eq(hll, hll) PARALLEL SAFE;
ALTER FUNCTION hll_ne(hll, hll) PARALLEL SAFE;
ALTER FUNCTION hll_cardinality(hll) PARALLEL SAFE;
ALTER FUNCTION hll_union(hll, hll) PARALLEL SAFE;
ALTER FUNCTION hll_add(hll, hll_hashval) PARALLEL SAFE;
ALTER FUNCTION hll_add_rev(hll_hashval, hll) PARALLEL SAFE;
ALTER FUNCTION hll_print(hll) PARALLEL SAFE;
ALTER FUNCTION hll_empty() PARALLEL SAFE;
ALTER FUNCTION hll_empty(integer) PARALLEL SAFE;
ALTER FUNCTION hll_empty(integer, integer) PARALLEL SAFE;
ALTER FUNCTION hll_empty(integer, integer, bigint) PARALLEL SAFE;
ALTER FUNCTION hll_empty(integer, integer, bigint, integer) PARALLEL SAFE;
ALTER FUNCTION hll_schema_version(hll) PARALLEL SAFE;
ALTER FUNCTION hll_type(hll) PARALLEL SAFE;
ALTER FUNCTION hll_log2m(hll) PARALLEL SAFE;
ALTER FUNCTION hll_regwidth(hll) PARALLEL SAFE;
ALTER FUNCTION hll_expthresh(hll, OUT specified bigint, OUT effective bigint) PARALLEL SAFE;
ALTER FUNCTION hll_sparseon(hll) PARALLEL SAFE;
ALTER FUNCTION hll_hash_boolean(boolean, integer) PARALLEL SAFE;
ALTER FUNCTION hll_hash_smallint(smallint, integer) PARALLEL SAFE;
ALTER FUNCTION hll_hash_integer(integer, integer) PARALLEL SAFE;
ALTER FUNCTION hll_hash_bigint(bigint, integer) PARALLEL SAFE;
ALTER FUNCTION hll_hash_bytea(bytea, integer) PARALLEL SAFE;
ALTER FUNCTION hll_hash_text(text, integer) PARALLEL SAFE;
ALTER FUNCTION hll_hash_any(anyelement, integer) PARALLEL SAFE;
ALTER FUNCTION hll_union_trans(internal, hll) PARALLEL SAFE;
ALTER FUNCTION hll_add_trans4 PARALLEL SAFE;
ALTER FUNCTION hll_add_trans3 PARALLEL SAFE;
ALTER FUNCTION hll_add_trans2 PARALLEL SAFE;
ALTER FUNCTION hll_add_trans1 PARALLEL SAFE;
ALTER FUNCTION hll_add_trans0 PARALLEL SAFE;
ALTER FUNCTION hll_pack(internal) PARALLEL SAFE;
ALTER FUNCTION hll_card_unpacked(internal) PARALLEL SAFE;
ALTER FUNCTION hll_floor_card_unpacked(internal) PARALLEL SAFE;
ALTER FUNCTION hll_ceil_card_unpacked(internal) PARALLEL SAFE;
DROP AGGREGATE hll_union_agg (hll);
DROP AGGREGATE hll_add_agg (hll_hashval);
DROP AGGREGATE hll_add_agg (hll_hashval, integer);
DROP AGGREGATE hll_add_agg (hll_hashval, integer, integer);
DROP AGGREGATE hll_add_agg (hll_hashval, integer, integer, bigint);
DROP AGGREGATE hll_add_agg (hll_hashval, integer, integer, bigint, integer);
CREATE AGGREGATE hll_union_agg (hll) (
SFUNC = hll_union_trans,
STYPE = internal,
FINALFUNC = hll_pack,
COMBINEFUNC = hll_union_internal,
SERIALFUNC = hll_serialize,
DESERIALFUNC = hll_deserialize,
PARALLEL = SAFE
);
CREATE AGGREGATE hll_add_agg (hll_hashval) (
SFUNC = hll_add_trans0,
STYPE = internal,
SSPACE = 131120,
FINALFUNC = hll_pack,
COMBINEFUNC = hll_union_internal,
SERIALFUNC = hll_serialize,
DESERIALFUNC = hll_deserialize,
PARALLEL = SAFE
);
CREATE AGGREGATE hll_add_agg (hll_hashval, integer) (
SFUNC = hll_add_trans1,
STYPE = internal,
SSPACE = 131120,
FINALFUNC = hll_pack,
COMBINEFUNC = hll_union_internal,
SERIALFUNC = hll_serialize,
DESERIALFUNC = hll_deserialize,
PARALLEL = SAFE
);
CREATE AGGREGATE hll_add_agg (hll_hashval, integer, integer) (
SFUNC = hll_add_trans2,
STYPE = internal,
SSPACE = 131120,
FINALFUNC = hll_pack,
COMBINEFUNC = hll_union_internal,
SERIALFUNC = hll_serialize,
DESERIALFUNC = hll_deserialize,
PARALLEL = SAFE
);
CREATE AGGREGATE hll_add_agg (hll_hashval, integer, integer, bigint) (
SFUNC = hll_add_trans3,
STYPE = internal,
SSPACE = 131120,
FINALFUNC = hll_pack,
COMBINEFUNC = hll_union_internal,
SERIALFUNC = hll_serialize,
DESERIALFUNC = hll_deserialize,
PARALLEL = SAFE
);
CREATE AGGREGATE hll_add_agg (hll_hashval, integer, integer, bigint, integer) (
SFUNC = hll_add_trans4,
STYPE = internal,
SSPACE = 131120,
FINALFUNC = hll_pack,
COMBINEFUNC = hll_union_internal,
SERIALFUNC = hll_serialize,
DESERIALFUNC = hll_deserialize,
PARALLEL = SAFE
);
)
|