mirror of https://github.com/postgres/postgres
Note that there is some trouble with inconsistant input/output formats.REL7_0_PATCHES
parent
71b4790b6d
commit
b2096a5512
@ -1,74 +0,0 @@ |
|||||||
#ifndef POSTGRES_H |
|
||||||
#define POSTGRES_H |
|
||||||
|
|
||||||
#include <stdio.h> |
|
||||||
|
|
||||||
typedef char bool; |
|
||||||
typedef signed char int8; |
|
||||||
typedef signed short int16; |
|
||||||
typedef signed int int32; |
|
||||||
|
|
||||||
/*#define NULL ((void *) 0)*/ |
|
||||||
#define Min(x, y) ((x) < (y) ? (x) : (y)) |
|
||||||
#define Max(x, y) ((x) > (y) ? (x) : (y)) |
|
||||||
#define PointerIsValid(pointer) (bool)((void*)(pointer) != NULL) |
|
||||||
|
|
||||||
|
|
||||||
typedef unsigned int Oid; |
|
||||||
typedef int16 int2; |
|
||||||
typedef int32 int4; |
|
||||||
typedef float float4; |
|
||||||
typedef double float8; |
|
||||||
typedef unsigned char uint8; /* == 8 bits */ |
|
||||||
typedef unsigned short uint16; /* == 16 bits */ |
|
||||||
typedef unsigned int uint32; /* == 32 bits */ |
|
||||||
typedef uint8 bits8; /* >= 8 bits */ |
|
||||||
typedef uint16 bits16; /* >= 16 bits */ |
|
||||||
typedef uint32 bits32; /* >= 32 bits */ |
|
||||||
|
|
||||||
|
|
||||||
typedef int4 aclitem; |
|
||||||
|
|
||||||
#define InvalidOid 0 |
|
||||||
#define OidIsValid(objectId) ((bool) (objectId != InvalidOid)) |
|
||||||
|
|
||||||
/* unfortunately, both regproc and RegProcedure are used */ |
|
||||||
typedef Oid regproc; |
|
||||||
typedef Oid RegProcedure; |
|
||||||
|
|
||||||
typedef char *((*func_ptr) ()); |
|
||||||
|
|
||||||
|
|
||||||
#define RegProcedureIsValid(p) OidIsValid(p) |
|
||||||
|
|
||||||
/* ----------------------------------------------------------------
|
|
||||||
* Section 2: variable length and array types |
|
||||||
* ---------------------------------------------------------------- |
|
||||||
*/ |
|
||||||
/* ----------------
|
|
||||||
* struct varlena |
|
||||||
* ---------------- |
|
||||||
*/ |
|
||||||
struct varlena |
|
||||||
{ |
|
||||||
int32 vl_len; |
|
||||||
char vl_dat[1]; |
|
||||||
}; |
|
||||||
|
|
||||||
#define VARSIZE(PTR) (((struct varlena *)(PTR))->vl_len) |
|
||||||
#define VARDATA(PTR) (((struct varlena *)(PTR))->vl_dat) |
|
||||||
#define VARHDRSZ sizeof(int32) |
|
||||||
|
|
||||||
typedef struct varlena bytea; |
|
||||||
typedef struct varlena text; |
|
||||||
|
|
||||||
typedef int2 int28[8]; |
|
||||||
typedef Oid oid8[8]; |
|
||||||
|
|
||||||
#define ERROR stderr |
|
||||||
#define elog fprintf |
|
||||||
|
|
||||||
#define MaxAttrSize 10000 |
|
||||||
|
|
||||||
#define palloc malloc |
|
||||||
#endif |
|
||||||
@ -1,171 +1,171 @@ |
|||||||
LOAD '_OBJWD_/varbit.so'; |
LOAD '_OBJWD_/varbit.so'; |
||||||
|
|
||||||
CREATE FUNCTION varbit_in(opaque) |
CREATE FUNCTION varbitin(opaque) |
||||||
RETURNS bit |
RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'c'; |
LANGUAGE 'c'; |
||||||
|
|
||||||
CREATE FUNCTION varbit_out(opaque) |
CREATE FUNCTION zpbitout(opaque) |
||||||
RETURNS opaque |
RETURNS opaque |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'c'; |
LANGUAGE 'c'; |
||||||
|
|
||||||
CREATE TYPE bits ( |
CREATE TYPE bit ( |
||||||
internallength = -1, |
internallength = -1, |
||||||
input = varbit_in, |
input = varbitin, |
||||||
output = varbit_out |
output = zpbitout |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitcat(bits,bits) RETURNS bits |
CREATE FUNCTION bitcat(bit,bit) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR || ( |
CREATE OPERATOR || ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitcat |
procedure = bitcat |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitsubstr(bits,integer,integer) RETURNS bits |
CREATE FUNCTION bitsubstr(bit,integer,integer) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE FUNCTION biteq(bits,bits) RETURNS bool |
CREATE FUNCTION biteq(bit,bit) RETURNS bool |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR = ( |
CREATE OPERATOR = ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = biteq, |
procedure = biteq, |
||||||
negator = <>, |
negator = <>, |
||||||
commutator = = |
commutator = = |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitne(bits,bits) RETURNS bool |
CREATE FUNCTION bitne(bit,bit) RETURNS bool |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR <> ( |
CREATE OPERATOR <> ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitne, |
procedure = bitne, |
||||||
negator = =, |
negator = =, |
||||||
commutator = <> |
commutator = <> |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitlt(bits,bits) RETURNS bool |
CREATE FUNCTION bitlt(bit,bit) RETURNS bool |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR < ( |
CREATE OPERATOR < ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitlt |
procedure = bitlt |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitle(bits,bits) RETURNS bool |
CREATE FUNCTION bitle(bit,bit) RETURNS bool |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR <= ( |
CREATE OPERATOR <= ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitle |
procedure = bitle |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitgt(bits,bits) RETURNS bool |
CREATE FUNCTION bitgt(bit,bit) RETURNS bool |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR > ( |
CREATE OPERATOR > ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitgt, |
procedure = bitgt, |
||||||
negator = <=, |
negator = <=, |
||||||
commutator = < |
commutator = < |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitge(bits,bits) RETURNS bool |
CREATE FUNCTION bitge(bit,bit) RETURNS bool |
||||||
as '_OBJWD_/varbit.so' |
as '_OBJWD_/varbit.so' |
||||||
language 'C'; |
language 'C'; |
||||||
|
|
||||||
CREATE OPERATOR >= ( |
CREATE OPERATOR >= ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitge, |
procedure = bitge, |
||||||
negator = <, |
negator = <, |
||||||
commutator = <= |
commutator = <= |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitcmp(bits,bits) RETURNS int4 |
CREATE FUNCTION bitcmp(bit,bit) RETURNS integer |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR <=> ( |
CREATE OPERATOR <=> ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitcmp |
procedure = bitcmp |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitor(bits,bits) RETURNS bits |
CREATE FUNCTION bitor(bit,bit) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR | ( |
CREATE OPERATOR | ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitor, |
procedure = bitor, |
||||||
commutator = | |
commutator = | |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitand(bits,bits) RETURNS bits |
CREATE FUNCTION bitand(bit,bit) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR & ( |
CREATE OPERATOR & ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitand, |
procedure = bitand, |
||||||
commutator = & |
commutator = & |
||||||
); |
); |
||||||
|
|
||||||
|
|
||||||
CREATE FUNCTION bitxor(bits,bits) RETURNS bits |
CREATE FUNCTION bitxor(bit,bit) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR ^ ( |
CREATE OPERATOR ^ ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitxor |
procedure = bitxor |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitnot(bits) RETURNS bits |
CREATE FUNCTION bitnot(bit) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR ~ ( |
CREATE OPERATOR ~ ( |
||||||
rightarg = bits, |
rightarg = bit, |
||||||
procedure = bitnot |
procedure = bitnot |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitshiftleft(bits,int4) RETURNS bits |
CREATE FUNCTION bitshiftleft(bit,integer) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR << ( |
CREATE OPERATOR << ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = int4, |
rightarg = integer, |
||||||
procedure = bitshiftleft |
procedure = bitshiftleft |
||||||
); |
); |
||||||
|
|
||||||
CREATE FUNCTION bitshiftright(bits,int4) RETURNS bits |
CREATE FUNCTION bitshiftright(bit,integer) RETURNS bit |
||||||
AS '_OBJWD_/varbit.so' |
AS '_OBJWD_/varbit.so' |
||||||
LANGUAGE 'C'; |
LANGUAGE 'C'; |
||||||
|
|
||||||
CREATE OPERATOR >> ( |
CREATE OPERATOR >> ( |
||||||
leftarg = bits, |
leftarg = bit, |
||||||
rightarg = int4, |
rightarg = integer, |
||||||
procedure = bitshiftright |
procedure = bitshiftright |
||||||
); |
); |
||||||
|
|||||||
Loading…
Reference in new issue