mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03: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';
 | |
| 
 |