mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
289 lines
4.7 KiB
Plaintext
289 lines
4.7 KiB
Plaintext
---------------------------------------------------------------------------
|
|
--
|
|
-- int8.sql-
|
|
-- This file defines operators for 64-bit integers.
|
|
--
|
|
---------------------------------------------------------------------------
|
|
|
|
LOAD '_OBJWD_/int8.so';
|
|
|
|
CREATE FUNCTION int8in(opaque)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE FUNCTION int8out(opaque)
|
|
RETURNS opaque
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE TYPE int8 (
|
|
internallength = 8,
|
|
input = int8in,
|
|
output = int8out
|
|
);
|
|
|
|
|
|
-----------------------------
|
|
-- Create operators
|
|
-----------------------------
|
|
|
|
CREATE FUNCTION int8um(int8)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR - (
|
|
rightarg = int8,
|
|
procedure = int8um
|
|
);
|
|
|
|
CREATE FUNCTION int8pl(int8,int8)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR + (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8pl,
|
|
commutator = +
|
|
);
|
|
|
|
CREATE FUNCTION int8mi(int8,int8)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR - (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8mi
|
|
);
|
|
|
|
CREATE FUNCTION int8mul(int8,int8)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR * (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8mul,
|
|
commutator = *
|
|
);
|
|
|
|
CREATE FUNCTION int8div(int8,int8)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR / (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8div
|
|
);
|
|
|
|
--
|
|
-- 64-bit comparison operators
|
|
--
|
|
|
|
CREATE FUNCTION int8eq(int8,int8)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR = (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8eq,
|
|
commutator = =
|
|
);
|
|
|
|
CREATE FUNCTION int8ne(int8,int8)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR <> (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8ne,
|
|
commutator = <>
|
|
);
|
|
|
|
CREATE FUNCTION int8lt(int8,int8)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR < (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8lt
|
|
);
|
|
|
|
CREATE FUNCTION int8gt(int8,int8)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR > (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8gt
|
|
);
|
|
|
|
CREATE FUNCTION int8le(int8,int8)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR <= (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8le
|
|
);
|
|
|
|
CREATE FUNCTION int8ge(int8,int8)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR >= (
|
|
leftarg = int8,
|
|
rightarg = int8,
|
|
procedure = int8ge
|
|
);
|
|
|
|
--
|
|
-- 64-bit/32-bit comparison operators
|
|
--
|
|
|
|
CREATE FUNCTION int84eq(int8,int4)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR = (
|
|
leftarg = int8,
|
|
rightarg = int4,
|
|
procedure = int84eq,
|
|
commutator = =
|
|
);
|
|
|
|
CREATE FUNCTION int84ne(int8,int4)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR <> (
|
|
leftarg = int8,
|
|
rightarg = int4,
|
|
procedure = int84ne,
|
|
commutator = <>
|
|
);
|
|
|
|
CREATE FUNCTION int84lt(int8,int4)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR < (
|
|
leftarg = int8,
|
|
rightarg = int4,
|
|
procedure = int84lt
|
|
);
|
|
|
|
CREATE FUNCTION int84gt(int8,int4)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR > (
|
|
leftarg = int8,
|
|
rightarg = int4,
|
|
procedure = int84gt
|
|
);
|
|
|
|
CREATE FUNCTION int84le(int8,int4)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR <= (
|
|
leftarg = int8,
|
|
rightarg = int4,
|
|
procedure = int84le
|
|
);
|
|
|
|
CREATE FUNCTION int84ge(int8,int4)
|
|
RETURNS bool
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE OPERATOR >= (
|
|
leftarg = int8,
|
|
rightarg = int4,
|
|
procedure = int84ge
|
|
);
|
|
|
|
--
|
|
-- Conversion functions
|
|
--
|
|
|
|
CREATE FUNCTION int48(int4)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE FUNCTION int84(int8)
|
|
RETURNS int4
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
--CREATE FUNCTION int28(int2)
|
|
-- RETURNS int8
|
|
-- AS '_OBJWD_/int8.so'
|
|
-- LANGUAGE 'c';
|
|
--
|
|
--CREATE FUNCTION int82(int8)
|
|
-- RETURNS int2
|
|
-- AS '_OBJWD_/int8.so'
|
|
-- LANGUAGE 'c';
|
|
|
|
CREATE FUNCTION i8tod(int8)
|
|
RETURNS float8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
CREATE FUNCTION dtoi8(float8)
|
|
RETURNS int8
|
|
AS '_OBJWD_/int8.so'
|
|
LANGUAGE 'c';
|
|
|
|
--
|
|
-- Generic conversion routines
|
|
--
|
|
|
|
CREATE FUNCTION int8(int4)
|
|
RETURNS int8
|
|
AS 'select int48($1)'
|
|
LANGUAGE 'sql';
|
|
|
|
CREATE FUNCTION int8(float8)
|
|
RETURNS int8
|
|
AS 'select dtoi8($1)'
|
|
LANGUAGE 'sql';
|
|
|
|
CREATE FUNCTION float8(int8)
|
|
RETURNS float8
|
|
AS 'select i8tod($1)'
|
|
LANGUAGE 'sql';
|
|
|
|
CREATE FUNCTION int4(int8)
|
|
RETURNS int4
|
|
AS 'select int84($1)'
|
|
LANGUAGE 'sql';
|
|
|