create or replace package typetest as type myint4 ( internallength = 4, input = myint4in, output = typetest.myint4out, passedbyvalue, externallength = 10) function myint4in (opaque) returns myint4 as 'int4in' language 'internal' function myint4out (opaque) returns opaque as 'int4out' language 'internal' function myint4(int8) returns myint4 as 'int84' language 'internal' function myint4(int2) returns myint4 as 'i2toi4' language 'internal' function myint4(int4) returns myint4 as 'select myint4in(int4out($1))' language 'sql' function myint4(float4) returns myint4 as 'ftoi4' language 'internal' function myint4(float8) returns myint4 as 'dtoi4' language 'internal' function myint4(numeric) returns myint4 as 'numeric_int4' language 'internal' function myint42div(myint4, int2) returns myint4 as 'int42div' language 'internal' function myint42eq(myint4, int2) returns bool as 'int42eq' language 'internal' function myint42ge(myint4, int2) returns bool as 'int42ge' language 'internal' function myint42gt(myint4, int2) returns bool as 'int42gt' language 'internal' function myint42le(myint4, int2) returns bool as 'int42le' language 'internal' function myint42lt(myint4, int2) returns bool as 'int42lt' language 'internal' function myint42mi(myint4, int2) returns myint4 as 'int42mi' language 'internal' function myint42mod(myint4, int2) returns myint4 as 'int42mod' language 'internal' function myint42mul(myint4, int2) returns myint4 as 'int42mul' language 'internal' function myint42ne(myint4, int2) returns bool as 'int42ne' language 'internal' function myint42pl(myint4, int2) returns myint4 as 'int42pl' language 'internal' function myint48div(myint4, int8) returns int8 as 'int48div' language 'internal' function myint48eq(myint4, int8) returns bool as 'int48eq' language 'internal' function myint48ge(myint4, int8) returns bool as 'int48ge' language 'internal' function myint48gt(myint4, int8) returns bool as 'int48gt' language 'internal' function myint48le(myint4, int8) returns bool as 'int48le' language 'internal' function myint48lt(myint4, int8) returns bool as 'int48lt' language 'internal' function myint48mi(myint4, int8) returns int8 as 'int48mi' language 'internal' function myint48mul(myint4, int8) returns int8 as 'int48mul' language 'internal' function myint48ne(myint4, int8) returns bool as 'int48ne' language 'internal' function myint48pl(myint4, int8) returns int8 as 'int48pl' language 'internal' function myint44div(myint4, int4) returns myint4 as 'int4div' language 'internal' function myint44div(int4, myint4) returns myint4 as 'int4div' language 'internal' function myint44eq(myint4, int4) returns bool as 'int4eq' language 'internal' function myint44eq(int4, myint4) returns bool as 'int4eq' language 'internal' function myint44ge(myint4, int4) returns bool as 'int4ge' language 'internal' function myint44ge(int4, myint4) returns bool as 'int4ge' language 'internal' function myint44gt(myint4, int4) returns bool as 'int4gt' language 'internal' function myint44gt(int4, myint4) returns bool as 'int4gt' language 'internal' function myint44le(myint4, int4) returns bool as 'int4le' language 'internal' function myint44le(int4, myint4) returns bool as 'int4le' language 'internal' function myint44lt(myint4, int4) returns bool as 'int4lt' language 'internal' function myint44lt(int4, myint4) returns bool as 'int4lt' language 'internal' function myint44mi(myint4, int4) returns myint4 as 'int4mi' language 'internal' function myint44mi(int4, myint4) returns myint4 as 'int4mi' language 'internal' function myint44mod(myint4, int4) returns myint4 as 'int4mod' language 'internal' function myint44mod(int4, myint4) returns myint4 as 'int4mod' language 'internal' function myint44mul(myint4, int4) returns myint4 as 'int4mul' language 'internal' function myint44mul(int4, myint4) returns myint4 as 'int4mul' language 'internal' function myint44ne(myint4, int4) returns bool as 'int4ne' language 'internal' function myint44ne(int4, myint4) returns bool as 'int4ne' language 'internal' function myint44pl(myint4, int4) returns myint4 as 'int4pl' language 'internal' function myint44pl(int4, myint4) returns myint4 as 'int4pl' language 'internal' function myint4abs(myint4) returns myint4 as 'int4abs' language 'internal' function myint4div(myint4, myint4) returns myint4 as 'int4div' language 'internal' function myint4eq(myint4, myint4) returns bool as 'int4eq' language 'internal' function myint4eqoid(myint4, oid) returns bool as 'int4eq' language 'internal' function myint4fac(myint4) returns myint4 as 'int4fac' language 'internal' function myint4ge(myint4, myint4) returns bool as 'int4ge' language 'internal' function myint4gt(myint4, myint4) returns bool as 'int4gt' language 'internal' function myint4inc(myint4) returns myint4 as 'int4inc' language 'internal' function myint4larger(myint4, myint4) returns myint4 as 'int4larger' language 'internal' function myint4le(myint4, myint4) returns bool as 'int4le' language 'internal' function myint4lt(myint4, myint4) returns bool as 'int4lt' language 'internal' function myint4mi(myint4, myint4) returns myint4 as 'int4mi' language 'internal' function myint4mod(myint4, myint4) returns myint4 as 'int4mod' language 'internal' function myint4mul(myint4, myint4) returns myint4 as 'int4mul' language 'internal' function myint4ne(myint4, myint4) returns bool as 'int4ne' language 'internal' function myint4pl(myint4, myint4) returns myint4 as 'int4pl' language 'internal' function myint4smaller(myint4, myint4) returns myint4 as 'int4smaller' language 'internal' function myint4um(myint4) returns myint4 as 'int4um' language 'internal' function myint4_accum(_numeric, myint4) returns _numeric as 'int4_accum' language 'internal' operator ! (procedure = typetest.myint4fac , leftarg = myint4) operator !! (procedure = typetest.myint4fac, rightarg = myint4) operator % (procedure = myint4mod, leftarg = myint4, rightarg = myint4) operator % (procedure = myint44mod, leftarg = myint4, rightarg = int4) operator % (procedure = myint44mod, leftarg = int4, rightarg = myint4) operator * (procedure = myint4mul, leftarg = myint4, rightarg = myint4, commutator = * ) operator * (procedure = myint44mul, leftarg = myint4, rightarg = int4, commutator = * ) operator * (procedure = myint44mul, leftarg = int4, rightarg = myint4, commutator = * ) operator + (procedure = myint4pl, leftarg = myint4, rightarg = myint4, commutator = + ) operator + (procedure = myint44pl, leftarg = myint4, rightarg = int4, commutator = + ) operator + (procedure = myint44pl, leftarg = int4, rightarg = myint4, commutator = + ) operator - (procedure = myint4mi, leftarg = myint4, rightarg = myint4) operator - (procedure = myint44mi, leftarg = myint4, rightarg = int4) operator - (procedure = myint44mi, leftarg = int4, rightarg = myint4) operator / (procedure = myint4div, leftarg = myint4, rightarg = myint4) operator / (procedure = myint44div, leftarg = myint4, rightarg = int4) operator / (procedure = myint44div, leftarg = int4, rightarg = myint4) operator < (procedure = myint4lt, leftarg = myint4, rightarg = myint4, commutator = > , negator = >= , restrict = scalarltsel, join = scalarltjoinsel) operator < (procedure = myint44lt, leftarg = myint4, rightarg = int4, commutator = > , negator = >= , restrict = scalarltsel, join = scalarltjoinsel ) operator < (procedure = myint44lt, leftarg = int4, rightarg = myint4, commutator = > , negator = >= , restrict = scalarltsel, join = scalarltjoinsel ) operator <= (procedure = myint4le, leftarg = myint4, rightarg = myint4, commutator = >= , negator = > , restrict = scalarltsel, join = scalarltjoinsel) operator <= (procedure = myint44le, leftarg = myint4, rightarg = int4, commutator = >= , negator = > , restrict = scalarltsel, join = scalarltjoinsel ) operator <= (procedure = myint44le, leftarg = int4, rightarg = myint4, commutator = >= , negator = > , restrict = scalarltsel, join = scalarltjoinsel ) operator > (procedure = myint4gt, leftarg = myint4, rightarg = myint4, commutator = < , negator = <= , restrict = scalargtsel, join = scalargtjoinsel) operator > (procedure = myint44gt, leftarg = myint4, rightarg = int4, commutator = < , negator = <= , restrict = scalargtsel, join = scalargtjoinsel ) operator > (procedure = myint44gt, leftarg = int4, rightarg = myint4, commutator = < , negator = <= , restrict = scalargtsel, join = scalargtjoinsel ) operator >= (procedure = myint4ge, leftarg = myint4, rightarg = myint4, commutator = <= , negator = < , restrict = scalargtsel, join = scalargtjoinsel) operator >= (procedure = myint44ge, leftarg = myint4, rightarg = int4, commutator = <= , negator = < , restrict = scalargtsel, join = scalargtjoinsel ) operator >= (procedure = myint44ge, leftarg = int4, rightarg = myint4, commutator = <= , negator = < , restrict = scalargtsel, join = scalargtjoinsel ) operator = (procedure = myint4lt, leftarg = myint4, rightarg = myint4, commutator = = , negator = <> , restrict = eqsel, join = eqjoinsel) operator = (procedure = myint44lt, leftarg = myint4, rightarg = int4, commutator = = , negator = <> , restrict = eqsel, join = eqjoinsel ) operator = (procedure = myint44lt, leftarg = int4, rightarg = myint4, commutator = = , negator = <> , restrict = eqsel, join = eqjoinsel ) operator <> (procedure = myint4lt, leftarg = myint4, rightarg = myint4, commutator = > , negator = = , restrict = neqsel, join = neqjoinsel) operator <> (procedure = myint44lt, leftarg = myint4, rightarg = int4, commutator = > , negator = = , restrict = neqsel, join = neqjoinsel ) operator <> (procedure = myint44lt, leftarg = int4, rightarg = myint4, commutator = > , negator = = , restrict = neqsel, join = neqjoinsel ) aggregate max (basetype = myint4, sfunc1 = myint4larger, stype1 = myint4) aggregate min (basetype = myint4, sfunc1 = myint4smaller, stype1 = myint4) aggregate sum (basetype = myint4, sfunc1 = myint4pl, stype1 = myint4) aggregate avg (basetype = myint4, sfunc = myint4_accum, stype = _numeric, finalfunc = numeric_avg, initcond = '{0,0,0}');