aboutsummaryrefslogtreecommitdiff
path: root/src/backend/include/postgres.h
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1996-07-09 06:22:35 +0000
committerMarc G. Fournier <scrappy@hub.org>1996-07-09 06:22:35 +0000
commitd31084e9d1118b25fd16580d9d8c2924b5740dff (patch)
tree3179e66307d54df9c7b966543550e601eb55e668 /src/backend/include/postgres.h
downloadpostgresql-d31084e9d1118b25fd16580d9d8c2924b5740dff.tar.gz
postgresql-d31084e9d1118b25fd16580d9d8c2924b5740dff.zip
Postgres95 1.01 Distribution - Virgin SourcesPG95-1_01
Diffstat (limited to 'src/backend/include/postgres.h')
-rw-r--r--src/backend/include/postgres.h224
1 files changed, 224 insertions, 0 deletions
diff --git a/src/backend/include/postgres.h b/src/backend/include/postgres.h
new file mode 100644
index 00000000000..429a25e4ff4
--- /dev/null
+++ b/src/backend/include/postgres.h
@@ -0,0 +1,224 @@
+/*-------------------------------------------------------------------------
+ *
+ * postgres.h--
+ * definition of (and support for) postgres system types.
+ * this file is included by almost every .c in the system
+ *
+ * Copyright (c) 1995, Regents of the University of California
+ *
+ * $Id: postgres.h,v 1.1.1.1 1996/07/09 06:21:28 scrappy Exp $
+ *
+ *-------------------------------------------------------------------------
+ */
+/*
+ * NOTES
+ * this file will eventually contain the definitions for the
+ * following (and perhaps other) system types:
+ *
+ * int2 int4 float4 float8
+ * Oid regproc RegProcedure
+ * aclitem
+ * struct varlena
+ * char8 char16 int28 oid8
+ * bytea text
+ * NameData Name
+ * oidint4 oidint2 oidname
+ *
+ * TABLE OF CONTENTS
+ * 1) simple type definitions
+ * 2) varlena and array types
+ * 3) TransactionId and CommandId
+ * 4) genbki macros used by catalog/pg_xxx.h files
+ * 5) random SIGNBIT, MAXPGPATH, STATUS macros
+ *
+ * ----------------------------------------------------------------
+ */
+#ifndef POSTGRES_H
+#define POSTGRES_H
+
+#include "c.h"
+
+/* ----------------------------------------------------------------
+ * Section 1: simple type definitions
+ * ----------------------------------------------------------------
+ */
+
+typedef int16 int2;
+typedef int32 int4;
+typedef float float4;
+typedef double float8;
+
+typedef int4 aclitem;
+
+
+typedef uint32 Oid;
+#define InvalidOid 0
+#define OidIsValid(objectId) ((bool) (objectId != InvalidOid))
+
+/* unfortunately, both regproc and RegProcedure are used */
+typedef Oid regproc;
+typedef Oid RegProcedure;
+
+/* ptr to func returning (char *) */
+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 struct char8 {
+ char data[8];
+} char8;
+
+/* ----------------
+ * char16
+ * ----------------
+ */
+typedef struct char16 {
+ char data[16];
+} char16;
+
+typedef char16 *Char16;
+
+typedef int2 int28[8];
+typedef Oid oid8[8];
+
+/* char16 is distinct from Name.
+ now, you can truly change the max length of system names
+ by altering the NAMEDATALEN define below.
+ don't set the value too high because tuples are still constrained
+ to be less than 8K
+*/
+
+ /* NAMEDATALEN is the maximum string length (counting terminating null)
+ of a Name */
+/* defined in Makefile.global */
+/* if you change the value of NAMEDATALEN, you may need to change the
+ alignment of the 'name' type in pg_type.h */
+#ifndef NAMEDATALEN
+#define NAMEDATALEN 16
+#endif /* NAMEDATALEN */
+/* OIDNAMELEN should be NAMEDATALEN + sizeof(Oid) */
+#ifndef OIDNAMELEN
+#define OIDNAMELEN 20
+#endif /* OIDNAMELEN */
+
+typedef struct nameData {
+ char data[NAMEDATALEN];
+} NameData;
+typedef NameData *Name;
+
+/* ----------------
+ * oidint4
+ *
+ * this is a new system type used by the file interface.
+ * ----------------
+ */
+typedef struct OidInt4Data {
+ Oid oi_oid;
+ int32 oi_int4;
+} OidInt4Data;
+
+typedef struct OidInt4Data *OidInt4;
+
+/* ----------------
+ * oidint2
+ *
+ * this is a new system type used to define indices on two attrs.
+ * ----------------
+ */
+typedef struct OidInt2Data {
+ Oid oi_oid;
+ int16 oi_int2;
+} OidInt2Data;
+
+typedef struct OidInt2Data *OidInt2;
+
+/* ----------------
+ * oidname
+ *
+ * this is a new system type used to define indices on two attrs.
+ * ----------------
+ */
+typedef struct OidNameData {
+ Oid id;
+ NameData name;
+} OidNameData;
+
+typedef struct OidNameData *OidName;
+
+/* ----------------------------------------------------------------
+ * Section 3: TransactionId and CommandId
+ * ----------------------------------------------------------------
+ */
+
+typedef uint32 TransactionId;
+#define InvalidTransactionId 0
+typedef uint16 CommandId;
+#define FirstCommandId 0
+
+/* ----------------------------------------------------------------
+ * Section 4: genbki macros used by the
+ * catalog/pg_xxx.h files
+ * ----------------------------------------------------------------
+ */
+#define CATALOG(x) \
+ typedef struct CppConcat(FormData_,x)
+
+#define DATA(x) extern int errno
+#define DECLARE_INDEX(x) extern int errno
+
+#define BUILD_INDICES
+#define BOOTSTRAP
+
+#define BKI_BEGIN
+#define BKI_END
+
+/* ----------------------------------------------------------------
+ * Section 5: random stuff
+ * SIGNBIT, MAXPGPATH, STATUS...
+ * ----------------------------------------------------------------
+ */
+
+/* msb for int/unsigned */
+#define SIGNBIT (0x8000)
+
+/* msb for char */
+#define CSIGNBIT (1 << 7)
+
+/* ----------------
+ * global variables which should probably go someplace else.
+ * ----------------
+ */
+#define MAXPGPATH 128
+
+#define STATUS_OK (0)
+#define STATUS_ERROR (-1)
+#define STATUS_NOT_FOUND (-2)
+#define STATUS_INVALID (-3)
+#define STATUS_UNCATALOGUED (-4)
+#define STATUS_REPLACED (-5)
+#define STATUS_NOT_DONE (-6)
+#define STATUS_BAD_PACKET (-7)
+#define STATUS_FOUND (1)
+
+#endif /* POSTGRES_H */