summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1998-03-01 04:47:38 +0000
committerMarc G. Fournier <scrappy@hub.org>1998-03-01 04:47:38 +0000
commit56b3182241347aacb7b4c47519f009ffa2b57aa8 (patch)
treebd6f3caf19abe173617ca8632828f8e0faf4d04f /src/include
parent5b3e78afe3b207e5db91853f03a90f37e0fdb35f (diff)
downloadpostgresql-56b3182241347aacb7b4c47519f009ffa2b57aa8.tar.gz
From: "Billy G. Allie" <Bill.Allie@mug.org>
The following patches will allow postgreSQL 6.3 to compile and run on a UNIXWARE 2.1.2 system with the native C compiler with the following library change: The alloca function must be copied from the libucb.a archive and added to the libgen.a archive. Also, the GNU flex program is needed to successfully build postgreSQL.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/access/heapam.h54
-rw-r--r--src/include/port/univel.h7
-rw-r--r--src/include/storage/s_lock.h20
3 files changed, 67 insertions, 14 deletions
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 7dc2533735..8e322b1d91 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: heapam.h,v 1.30 1998/02/26 04:40:05 momjian Exp $
+ * $Id: heapam.h,v 1.31 1998/03/01 04:46:56 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -88,6 +88,8 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics;
*
* ----------------
*/
+#if !defined(USE_UNIVEL_CC)
+
#define fastgetattr(tup, attnum, tupleDesc, isnull) \
( \
AssertMacro((attnum) > 0) ? \
@@ -130,7 +132,57 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics;
) \
)
+#else /* !defined(USE_UNIVEL_CC) */
+
+extern Datum nocachegetattr(HeapTuple tup, int attnum,
+ TupleDesc att, bool *isnull);
+
+static Datum fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
+ bool *isnull)
+{
+ return (
+ (attnum) > 0 ?
+ (
+ ((isnull) ? (*(isnull) = false) : (dummyret)NULL),
+ HeapTupleNoNulls(tup) ?
+ (
+ ((tupleDesc)->attrs[(attnum)-1]->attcacheoff != -1 ||
+ (attnum) == 1) ?
+ (
+ (Datum)fetchatt(&((tupleDesc)->attrs[(attnum)-1]),
+ (char *) (tup) + (tup)->t_hoff +
+ (
+ ((attnum) != 1) ?
+ (tupleDesc)->attrs[(attnum)-1]->attcacheoff
+ :
+ 0
+ )
+ )
+ )
+ :
+ nocachegetattr((tup), (attnum), (tupleDesc), (isnull))
+ )
+ :
+ (
+ att_isnull((attnum)-1, (tup)->t_bits) ?
+ (
+ ((isnull) ? (*(isnull) = true) : (dummyret)NULL),
+ (Datum)NULL
+ )
+ :
+ (
+ nocachegetattr((tup), (attnum), (tupleDesc), (isnull))
+ )
+ )
+ )
+ :
+ (
+ (Datum)NULL
+ )
+ );
+}
+#endif
/* ----------------
* heap_getattr
diff --git a/src/include/port/univel.h b/src/include/port/univel.h
index a7daf59460..cd52bd7687 100644
--- a/src/include/port/univel.h
+++ b/src/include/port/univel.h
@@ -9,13 +9,14 @@
* Define this if you are compiling with
* the native UNIXWARE C compiler.
***************************************/
-#define USE_UNIVEL_CC_ASM
+#define USE_UNIVEL_CC
typedef unsigned char slock_t;
/***************************************************************
- * strcasecmp() is in c89, but is not in any include file :-(
+ * strcasecmp() is in c89.a. The following include will get the
+ * needed prototype.
***************************************************************/
-int strcasecmp(char *, char *);
+#include <strings.h>
#ifndef BIG_ENDIAN
#define BIG_ENDIAN 4321
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index f63a37193c..89612c1b71 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.27 1998/02/26 04:43:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.28 1998/03/01 04:47:24 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -305,21 +305,21 @@ tas_dummy()
#if defined(NEED_I386_TAS_ASM)
-#if defined(USE_UNIVEL_CC_ASM)
+#if defined(USE_UNIVEL_CC)
asm void
S_LOCK(char *lval)
{
- %lab again;
+% lab again;
/* Upon entry, %eax will contain the pointer to the lock byte */
- pushl % ebx
- xchgl % eax, %ebx
- movb $ - 1, %al
+ pushl %ebx
+ xchgl %eax, %ebx
+ movb $255, %al
again:
lock
- xchgb % al, (%ebx)
- cmpb $0, %al
- jne again
- popl % ebx
+ xchgb %al, (%ebx)
+ cmpb $0, %al
+ jne again
+ popl %ebx
}
#else