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'; |
||||
|
||||
CREATE FUNCTION varbit_in(opaque) |
||||
CREATE FUNCTION varbitin(opaque) |
||||
RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'c'; |
||||
|
||||
CREATE FUNCTION varbit_out(opaque) |
||||
CREATE FUNCTION zpbitout(opaque) |
||||
RETURNS opaque |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'c'; |
||||
|
||||
CREATE TYPE bits ( |
||||
CREATE TYPE bit ( |
||||
internallength = -1, |
||||
input = varbit_in, |
||||
output = varbit_out |
||||
input = varbitin, |
||||
output = zpbitout |
||||
); |
||||
|
||||
CREATE FUNCTION bitcat(bits,bits) RETURNS bits |
||||
CREATE FUNCTION bitcat(bit,bit) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR || ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitcat |
||||
); |
||||
|
||||
CREATE FUNCTION bitsubstr(bits,integer,integer) RETURNS bits |
||||
CREATE FUNCTION bitsubstr(bit,integer,integer) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE FUNCTION biteq(bits,bits) RETURNS bool |
||||
CREATE FUNCTION biteq(bit,bit) RETURNS bool |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR = ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = biteq, |
||||
negator = <>, |
||||
commutator = = |
||||
); |
||||
|
||||
CREATE FUNCTION bitne(bits,bits) RETURNS bool |
||||
CREATE FUNCTION bitne(bit,bit) RETURNS bool |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR <> ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitne, |
||||
negator = =, |
||||
commutator = <> |
||||
); |
||||
|
||||
CREATE FUNCTION bitlt(bits,bits) RETURNS bool |
||||
CREATE FUNCTION bitlt(bit,bit) RETURNS bool |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR < ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitlt |
||||
); |
||||
|
||||
CREATE FUNCTION bitle(bits,bits) RETURNS bool |
||||
CREATE FUNCTION bitle(bit,bit) RETURNS bool |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR <= ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitle |
||||
); |
||||
|
||||
CREATE FUNCTION bitgt(bits,bits) RETURNS bool |
||||
CREATE FUNCTION bitgt(bit,bit) RETURNS bool |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR > ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitgt, |
||||
negator = <=, |
||||
commutator = < |
||||
); |
||||
|
||||
CREATE FUNCTION bitge(bits,bits) RETURNS bool |
||||
CREATE FUNCTION bitge(bit,bit) RETURNS bool |
||||
as '_OBJWD_/varbit.so' |
||||
language 'C'; |
||||
|
||||
CREATE OPERATOR >= ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitge, |
||||
negator = <, |
||||
commutator = <= |
||||
); |
||||
|
||||
CREATE FUNCTION bitcmp(bits,bits) RETURNS int4 |
||||
CREATE FUNCTION bitcmp(bit,bit) RETURNS integer |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR <=> ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitcmp |
||||
); |
||||
|
||||
CREATE FUNCTION bitor(bits,bits) RETURNS bits |
||||
CREATE FUNCTION bitor(bit,bit) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR | ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitor, |
||||
commutator = | |
||||
); |
||||
|
||||
CREATE FUNCTION bitand(bits,bits) RETURNS bits |
||||
CREATE FUNCTION bitand(bit,bit) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR & ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitand, |
||||
commutator = & |
||||
); |
||||
|
||||
|
||||
CREATE FUNCTION bitxor(bits,bits) RETURNS bits |
||||
CREATE FUNCTION bitxor(bit,bit) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR ^ ( |
||||
leftarg = bits, |
||||
rightarg = bits, |
||||
leftarg = bit, |
||||
rightarg = bit, |
||||
procedure = bitxor |
||||
); |
||||
|
||||
CREATE FUNCTION bitnot(bits) RETURNS bits |
||||
CREATE FUNCTION bitnot(bit) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR ~ ( |
||||
rightarg = bits, |
||||
rightarg = bit, |
||||
procedure = bitnot |
||||
); |
||||
|
||||
CREATE FUNCTION bitshiftleft(bits,int4) RETURNS bits |
||||
CREATE FUNCTION bitshiftleft(bit,integer) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR << ( |
||||
leftarg = bits, |
||||
rightarg = int4, |
||||
leftarg = bit, |
||||
rightarg = integer, |
||||
procedure = bitshiftleft |
||||
); |
||||
|
||||
CREATE FUNCTION bitshiftright(bits,int4) RETURNS bits |
||||
CREATE FUNCTION bitshiftright(bit,integer) RETURNS bit |
||||
AS '_OBJWD_/varbit.so' |
||||
LANGUAGE 'C'; |
||||
|
||||
CREATE OPERATOR >> ( |
||||
leftarg = bits, |
||||
rightarg = int4, |
||||
leftarg = bit, |
||||
rightarg = integer, |
||||
procedure = bitshiftright |
||||
); |
||||
|
||||
Loading…
Reference in new issue