OSDN Git Service

Makeover for Unixware 7.1.1
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 22 Oct 2000 22:15:13 +0000 (22:15 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 22 Oct 2000 22:15:13 +0000 (22:15 +0000)
* Makefile: Add more standard targets.  Improve shell redirection in GNU
make detection.
* src/backend/access/transam/rmgr.c: Fix incorrect(?) C.
* src/backend/libpq/pqcomm.c (StreamConnection): Work around accept() bug.
* src/include/port/unixware.h: ...with help from here.
* src/backend/nodes/print.c (plannode_type): Remove some "break"s after
"return"s.
* src/backend/tcop/dest.c (DestToFunction): ditto.
* src/backend/nodes/readfuncs.c: Add proper prototypes.
* src/backend/utils/adt/numutils.c (pg_atoi): Cope specially with strtol()
setting EINVAL. This saves us from creating an extra set of regression test
output for the affected systems.
* src/include/storage/s_lock.h (tas): Correct prototype.
* src/interfaces/libpq/fe-connect.c (parseServiceInfo): Don't use variable
as dimension in array definition.
* src/makefiles/Makefile.unixware: Add support for GCC.
* src/template/unixware: same here
* src/test/regress/expected/abstime-solaris-1947.out: Adjust whitespace.
* src/test/regress/expected/horology-solaris-1947.out: Part of this file
was evidently missing.
* src/test/regress/pg_regress.sh: Fix shell.  mkdir -p returns non-zero if
the directory exists.
* src/test/regress/resultmap: Add entries for Unixware.

16 files changed:
Makefile
src/backend/access/transam/rmgr.c
src/backend/libpq/pqcomm.c
src/backend/nodes/print.c
src/backend/nodes/readfuncs.c
src/backend/tcop/dest.c
src/backend/utils/adt/numutils.c
src/include/port/unixware.h
src/include/storage/s_lock.h
src/interfaces/libpq/fe-connect.c
src/makefiles/Makefile.unixware
src/template/unixware
src/test/regress/expected/abstime-solaris-1947.out
src/test/regress/expected/horology-solaris-1947.out
src/test/regress/pg_regress.sh
src/test/regress/resultmap

index c5eca7a..ba03d24 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@
 # GNUmakefile won't exist yet, so we catch that case as well.
 
 
-all install clean dep depend distclean maintainer-clean:
+all check install installdirs installcheck uninstall dep depend clean distclean maintainer-clean:
        @if ! [ -f GNUmakefile ] ; then \
           echo "You need to run the \`configure' program first. See the file"; \
           echo "\`INSTALL' for installation instructions." ; \
@@ -20,7 +20,7 @@ all install clean dep depend distclean maintainer-clean:
        @IFS=':' ; \
         for dir in $$PATH; do \
           for prog in gmake gnumake make; do \
-            if [ -f $$dir/$$prog ] && ( $$dir/$$prog --version | grep GNU >/dev/null 2>&1 ) ; then \
+            if [ -f $$dir/$$prog ] && ( $$dir/$$prog --version 2>/dev/null | grep GNU >/dev/null 2>&1 ) ; then \
               GMAKE=$$dir/$$prog; \
               break 2; \
             fi; \
index 1472566..5a1b250 100644 (file)
@@ -52,8 +52,12 @@ RmgrData   RmgrTable[] = {
 {"Gist", gist_redo, gist_undo, gist_desc}
 };
 
-#else
+#else /* not XLOG */
 
-RmgrData   RmgrTable[] = {};
+/*
+ * This is a dummy, but don't write RmgrTable[] = {} here,
+ * that's not accepted by some compilers. -- petere
+ */
+RmgrData   RmgrTable[1];
 
-#endif
+#endif /* not XLOG */
index 5cae5b6..1a051db 100644 (file)
@@ -29,7 +29,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *     $Id: pqcomm.c,v 1.106 2000/10/14 23:56:58 momjian Exp $
+ *     $Id: pqcomm.c,v 1.107 2000/10/22 22:14:54 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -332,6 +332,15 @@ StreamConnection(int server_fd, Port *port)
                return STATUS_ERROR;
        }
 
+#ifdef PG_ON_UNIXWARE
+       /*
+        * Only UnixWare 7+ are known to have this bug, but it shouldn't
+        * hurt it catch if for all of them.
+        */
+       if (port->raddr.sa.sa_family == 0)
+               port->raddr.sa.sa_family = AF_UNIX;
+#endif
+
        /* fill in the server (local) address */
        addrlen = sizeof(port->laddr);
        if (getsockname(port->sock, (struct sockaddr *) & port->laddr,
index c507cea..44de7fc 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.43 2000/10/05 19:11:27 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.44 2000/10/22 22:14:54 petere Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -292,64 +292,44 @@ plannode_type(Plan *p)
        {
                case T_Plan:
                        return "PLAN";
-                       break;
                case T_Result:
                        return "RESULT";
-                       break;
                case T_Append:
                        return "APPEND";
-                       break;
                case T_Scan:
                        return "SCAN";
-                       break;
                case T_SeqScan:
                        return "SEQSCAN";
-                       break;
                case T_IndexScan:
                        return "INDEXSCAN";
-                       break;
                case T_TidScan:
                        return "TIDSCAN";
-                       break;
                case T_SubqueryScan:
                        return "SUBQUERYSCAN";
-                       break;
                case T_Join:
                        return "JOIN";
-                       break;
                case T_NestLoop:
                        return "NESTLOOP";
-                       break;
                case T_MergeJoin:
                        return "MERGEJOIN";
-                       break;
                case T_HashJoin:
                        return "HASHJOIN";
-                       break;
                case T_Material:
                        return "MATERIAL";
-                       break;
                case T_Sort:
                        return "SORT";
-                       break;
                case T_Agg:
                        return "AGG";
-                       break;
                case T_Unique:
                        return "UNIQUE";
-                       break;
                case T_SetOp:
                        return "SETOP";
-                       break;
                case T_Hash:
                        return "HASH";
-                       break;
                case T_Group:
                        return "GROUP";
-                       break;
                default:
                        return "UNKNOWN";
-                       break;
        }
 }
 
index 57174bf..354ac8d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.98 2000/10/05 19:11:27 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.99 2000/10/22 22:14:54 petere Exp $
  *
  * NOTES
  *       Most of the read functions for plan nodes are tested. (In fact, they
@@ -57,7 +57,7 @@ toIntList(List *list)
  * ----------------
  */
 static Query *
-_readQuery()
+_readQuery(void)
 {
        Query      *local_node;
        char       *token;
@@ -158,7 +158,7 @@ _readQuery()
  * ----------------
  */
 static SortClause *
-_readSortClause()
+_readSortClause(void)
 {
        SortClause *local_node;
        char       *token;
@@ -182,7 +182,7 @@ _readSortClause()
  * ----------------
  */
 static GroupClause *
-_readGroupClause()
+_readGroupClause(void)
 {
        GroupClause *local_node;
        char       *token;
@@ -206,7 +206,7 @@ _readGroupClause()
  * ----------------
  */
 static SetOperationStmt *
-_readSetOperationStmt()
+_readSetOperationStmt(void)
 {
        SetOperationStmt *local_node;
        char       *token;
@@ -295,7 +295,7 @@ _getPlan(Plan *node)
  * ----------------
  */
 static Plan *
-_readPlan()
+_readPlan(void)
 {
        Plan       *local_node;
 
@@ -311,7 +311,7 @@ _readPlan()
  * ----------------
  */
 static Result *
-_readResult()
+_readResult(void)
 {
        Result     *local_node;
        char       *token;
@@ -335,7 +335,7 @@ _readResult()
  */
 
 static Append *
-_readAppend()
+_readAppend(void)
 {
        Append     *local_node;
        char       *token;
@@ -386,7 +386,7 @@ _getJoin(Join *node)
  * ----------------
  */
 static Join *
-_readJoin()
+_readJoin(void)
 {
        Join       *local_node;
 
@@ -405,7 +405,7 @@ _readJoin()
  */
 
 static NestLoop *
-_readNestLoop()
+_readNestLoop(void)
 {
        NestLoop   *local_node;
 
@@ -423,7 +423,7 @@ _readNestLoop()
  * ----------------
  */
 static MergeJoin *
-_readMergeJoin()
+_readMergeJoin(void)
 {
        MergeJoin  *local_node;
        char       *token;
@@ -446,7 +446,7 @@ _readMergeJoin()
  * ----------------
  */
 static HashJoin *
-_readHashJoin()
+_readHashJoin(void)
 {
        HashJoin   *local_node;
        char       *token;
@@ -494,7 +494,7 @@ _getScan(Scan *node)
  * ----------------
  */
 static Scan *
-_readScan()
+_readScan(void)
 {
        Scan       *local_node;
 
@@ -512,7 +512,7 @@ _readScan()
  * ----------------
  */
 static SeqScan *
-_readSeqScan()
+_readSeqScan(void)
 {
        SeqScan    *local_node;
 
@@ -530,7 +530,7 @@ _readSeqScan()
  * ----------------
  */
 static IndexScan *
-_readIndexScan()
+_readIndexScan(void)
 {
        IndexScan  *local_node;
        char       *token;
@@ -563,7 +563,7 @@ _readIndexScan()
  * ----------------
  */
 static TidScan *
-_readTidScan()
+_readTidScan(void)
 {
        TidScan    *local_node;
        char       *token;
@@ -590,7 +590,7 @@ _readTidScan()
  * ----------------
  */
 static SubqueryScan *
-_readSubqueryScan()
+_readSubqueryScan(void)
 {
        SubqueryScan  *local_node;
        char       *token;
@@ -613,7 +613,7 @@ _readSubqueryScan()
  * ----------------
  */
 static Sort *
-_readSort()
+_readSort(void)
 {
        Sort       *local_node;
        char       *token;
@@ -631,7 +631,7 @@ _readSort()
 }
 
 static Agg *
-_readAgg()
+_readAgg(void)
 {
        Agg                *local_node;
 
@@ -648,7 +648,7 @@ _readAgg()
  * ----------------
  */
 static Hash *
-_readHash()
+_readHash(void)
 {
        Hash       *local_node;
        char       *token;
@@ -675,7 +675,7 @@ _readHash()
  * ----------------
  */
 static Resdom *
-_readResdom()
+_readResdom(void)
 {
        Resdom     *local_node;
        char       *token;
@@ -728,7 +728,7 @@ _readResdom()
  * ----------------
  */
 static Expr *
-_readExpr()
+_readExpr(void)
 {
        Expr       *local_node;
        char       *token;
@@ -773,7 +773,7 @@ _readExpr()
  * ----------------
  */
 static CaseExpr *
-_readCaseExpr()
+_readCaseExpr(void)
 {
        CaseExpr   *local_node;
        char       *token;
@@ -804,7 +804,7 @@ _readCaseExpr()
  * ----------------
  */
 static CaseWhen *
-_readCaseWhen()
+_readCaseWhen(void)
 {
        CaseWhen   *local_node;
        char       *token;
@@ -826,7 +826,7 @@ _readCaseWhen()
  * ----------------
  */
 static Var *
-_readVar()
+_readVar(void)
 {
        Var                *local_node;
        char       *token;
@@ -872,7 +872,7 @@ _readVar()
  * ----------------
  */
 static ArrayRef *
-_readArrayRef()
+_readArrayRef(void)
 {
        ArrayRef   *local_node;
        char       *token;
@@ -918,7 +918,7 @@ _readArrayRef()
  * ----------------
  */
 static Const *
-_readConst()
+_readConst(void)
 {
        Const      *local_node;
        char       *token;
@@ -977,7 +977,7 @@ _readConst()
  * ----------------
  */
 static Func *
-_readFunc()
+_readFunc(void)
 {
        Func       *local_node;
        char       *token;
@@ -1005,7 +1005,7 @@ _readFunc()
  * ----------------
  */
 static Oper *
-_readOper()
+_readOper(void)
 {
        Oper       *local_node;
        char       *token;
@@ -1037,7 +1037,7 @@ _readOper()
  * ----------------
  */
 static Param *
-_readParam()
+_readParam(void)
 {
        Param      *local_node;
        char       *token;
@@ -1074,7 +1074,7 @@ _readParam()
  * ----------------
  */
 static Aggref *
-_readAggref()
+_readAggref(void)
 {
        Aggref     *local_node;
        char       *token;
@@ -1115,7 +1115,7 @@ _readAggref()
  * ----------------
  */
 static SubLink *
-_readSubLink()
+_readSubLink(void)
 {
        SubLink    *local_node;
        char       *token;
@@ -1150,7 +1150,7 @@ _readSubLink()
  * ----------------
  */
 static FieldSelect *
-_readFieldSelect()
+_readFieldSelect(void)
 {
        FieldSelect *local_node;
        char       *token;
@@ -1183,7 +1183,7 @@ _readFieldSelect()
  * ----------------
  */
 static RelabelType *
-_readRelabelType()
+_readRelabelType(void)
 {
        RelabelType *local_node;
        char       *token;
@@ -1212,7 +1212,7 @@ _readRelabelType()
  * ----------------
  */
 static RangeTblRef *
-_readRangeTblRef()
+_readRangeTblRef(void)
 {
        RangeTblRef *local_node;
        char       *token;
@@ -1233,7 +1233,7 @@ _readRangeTblRef()
  * ----------------
  */
 static FromExpr *
-_readFromExpr()
+_readFromExpr(void)
 {
        FromExpr   *local_node;
        char       *token;
@@ -1257,7 +1257,7 @@ _readFromExpr()
  * ----------------
  */
 static JoinExpr *
-_readJoinExpr()
+_readJoinExpr(void)
 {
        JoinExpr   *local_node;
        char       *token;
@@ -1308,7 +1308,7 @@ _readJoinExpr()
  * ----------------
  */
 static EState *
-_readEState()
+_readEState(void)
 {
        EState     *local_node;
        char       *token;
@@ -1343,7 +1343,7 @@ _readEState()
  * ----------------
  */
 static RelOptInfo *
-_readRelOptInfo()
+_readRelOptInfo(void)
 {
        RelOptInfo *local_node;
        char       *token;
@@ -1421,7 +1421,7 @@ _readRelOptInfo()
  * ----------------
  */
 static TargetEntry *
-_readTargetEntry()
+_readTargetEntry(void)
 {
        TargetEntry *local_node;
        char       *token;
@@ -1439,7 +1439,7 @@ _readTargetEntry()
 }
 
 static Attr *
-_readAttr()
+_readAttr(void)
 {
        Attr       *local_node;
        char       *token;
@@ -1462,7 +1462,7 @@ _readAttr()
  * ----------------
  */
 static RangeTblEntry *
-_readRangeTblEntry()
+_readRangeTblEntry(void)
 {
        RangeTblEntry *local_node;
        char       *token;
@@ -1520,7 +1520,7 @@ _readRangeTblEntry()
  * ----------------
  */
 static Path *
-_readPath()
+_readPath(void)
 {
        Path       *local_node;
        char       *token;
@@ -1553,7 +1553,7 @@ _readPath()
  * ----------------
  */
 static IndexPath *
-_readIndexPath()
+_readIndexPath(void)
 {
        IndexPath  *local_node;
        char       *token;
@@ -1607,7 +1607,7 @@ _readIndexPath()
  * ----------------
  */
 static TidPath *
-_readTidPath()
+_readTidPath(void)
 {
        TidPath    *local_node;
        char       *token;
@@ -1646,7 +1646,7 @@ _readTidPath()
  * ----------------
  */
 static NestPath *
-_readNestPath()
+_readNestPath(void)
 {
        NestPath   *local_node;
        char       *token;
@@ -1692,7 +1692,7 @@ _readNestPath()
  * ----------------
  */
 static MergePath *
-_readMergePath()
+_readMergePath(void)
 {
        MergePath  *local_node;
        char       *token;
@@ -1747,7 +1747,7 @@ _readMergePath()
  * ----------------
  */
 static HashPath *
-_readHashPath()
+_readHashPath(void)
 {
        HashPath   *local_node;
        char       *token;
@@ -1796,7 +1796,7 @@ _readHashPath()
  * ----------------
  */
 static PathKeyItem *
-_readPathKeyItem()
+_readPathKeyItem(void)
 {
        PathKeyItem *local_node;
        char       *token;
@@ -1822,7 +1822,7 @@ _readPathKeyItem()
  * ----------------
  */
 static RestrictInfo *
-_readRestrictInfo()
+_readRestrictInfo(void)
 {
        RestrictInfo *local_node;
        char       *token;
@@ -1866,7 +1866,7 @@ _readRestrictInfo()
  * ----------------
  */
 static JoinInfo *
-_readJoinInfo()
+_readJoinInfo(void)
 {
        JoinInfo   *local_node;
        char       *token;
@@ -1889,7 +1889,7 @@ _readJoinInfo()
  * ----------------
  */
 static Iter *
-_readIter()
+_readIter(void)
 {
        Iter       *local_node;
        char       *token;
index 0505c4c..ad3475b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/dest.c,v 1.39 2000/07/08 03:04:15 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/dest.c,v 1.40 2000/10/22 22:14:55 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -179,27 +179,22 @@ DestToFunction(CommandDest dest)
 {
        switch (dest)
        {
-                       case Remote:
-                       /* printtup wants a dynamically allocated DestReceiver */
+               case Remote:
+               /* printtup wants a dynamically allocated DestReceiver */
                        return printtup_create_DR();
-                       break;
 
                case RemoteInternal:
                        return &printtup_internalDR;
-                       break;
 
                case Debug:
                        return &debugtupDR;
-                       break;
 
                case SPI:
                        return &spi_printtupDR;
-                       break;
 
                case None:
                default:
                        return &donothingDR;
-                       break;
        }
 
        /*
index ea188e7..9291439 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.42 2000/08/01 18:29:35 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.43 2000/10/22 22:14:56 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -63,7 +63,13 @@ pg_atoi(char *s, int size, int c)
                l = (long) 0;
        else
                l = strtol(s, &badp, 10);
-       if (errno)                                      /* strtol must set ERANGE */
+       /*
+        * strtol() normally only sets ERANGE.  On some systems it also
+        * may set EINVAL, which simply means it couldn't parse the
+        * input string.  This is handled by the second "if" consistent
+        * across platforms.
+        */
+       if (errno && errno != EINVAL)
                elog(ERROR, "pg_atoi: error reading \"%s\": %m", s);
        if (badp && *badp && (*badp != c))
                elog(ERROR, "pg_atoi: error in \"%s\": can\'t parse \"%s\"", s, badp);
index 10fe592..06ee4e4 100644 (file)
@@ -1,10 +1,12 @@
 #define USE_POSIX_TIME
-#define NO_EMPTY_STMTS
 #define SYSV_DIRENT
 
 #define HAS_TEST_AND_SET
 #define NEED_I386_TAS_ASM
 
+/* see src/backend/libpq/pqcomm.c */
+#define PG_ON_UNIXWARE
+
 /***************************************
  * Define this if you are compiling with
  * the native UNIXWARE C compiler.
index 86acb8b..9f0fd7c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.72 2000/10/08 04:38:21 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.73 2000/10/22 22:15:03 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -236,7 +236,7 @@ tas(volatile slock_t *lock)
 #define TAS(lock)      tas(lock)
 
 asm int
-tas(slock_t *s_lock)
+tas(volatile slock_t *s_lock)
 {
 /* UNIVEL wants %mem in column 1, so we don't pg_indent this file */
 %mem s_lock
index e6ecfe1..751980d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.140 2000/10/17 17:43:13 petere Exp $
+ *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.141 2000/10/22 22:15:04 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2101,10 +2101,11 @@ pqPacketSend(PGconn *conn, const char *buf, size_t len)
 # error "You must compile this file with SYSCONFDIR defined."
 #endif
 
+#define MAXBUFSIZE 256
+
 int parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage) {
   char *service = conninfo_getval(options, "service");
   char *serviceFile = SYSCONFDIR "/pg_service.conf";
-  int  MAXBUFSIZE = 256;
   int  group_found = 0;
   int  linenr=0, i;
 
index f91cf35..7e007ad 100644 (file)
@@ -1,9 +1,11 @@
 AROPT = crs
 export_dynamic = -Wl,-Bexport
 DLSUFFIX = .so
+ifeq ($(GCC), yes)
+CFLAGS_SL = -fpic
+else
 CFLAGS_SL = -K PIC
+endif
 
 %.so: %.o
        $(LD) -G -Bdynamic -o $@ $<
-
-INSTALL= /usr/ucb/install
index a7e715b..3dc4507 100644 (file)
@@ -1,3 +1,5 @@
-CFLAGS='-O -K host,inline,loop_unroll,alloca -Dsvr4'
-SRCH_INC='/opt/include'
-SRCH_LIB='/opt/lib'
+if test "$GCC" = yes; then
+  CFLAGS=-O2
+else
+  CFLAGS='-O -K inline'
+fi
index efe3339..f5b78a1 100644 (file)
@@ -126,3 +126,4 @@ SELECT '' AS four, f1 AS abstime,
       | Sun Jan 14 03:14:21 1973 PST | 1973 |     1 |  14 |    3 |     14 |     21
       | Mon May 01 00:30:30 1995 PDT | 1995 |     5 |   1 |    0 |     30 |     30
 (4 rows)
+
index 0097d38..44aa90d 100644 (file)
@@ -2,6 +2,48 @@
 -- HOROLOGY
 --
 --
+-- date, time arithmetic
+--
+SELECT date '1981-02-03' + time '04:05:06' AS "Date + Time";
+         Date + Time          
+------------------------------
+ Tue Feb 03 04:05:06 1981 PST
+(1 row)
+
+SELECT date '1991-02-03' + time with time zone '04:05:06 PST' AS "Date + Time PST";
+       Date + Time PST        
+------------------------------
+ Sun Feb 03 04:05:06 1991 PST
+(1 row)
+
+SELECT date '2001-02-03' + time with time zone '04:05:06 UTC' AS "Date + Time UTC";
+       Date + Time UTC        
+------------------------------
+ Fri Feb 02 20:05:06 2001 PST
+(1 row)
+
+SELECT date '1991-02-03' + interval '2 years' AS "Add Two Years";
+        Add Two Years         
+------------------------------
+ Wed Feb 03 00:00:00 1993 PST
+(1 row)
+
+SELECT date '2001-12-13' - interval '2 years' AS "Subtract Two Years";
+      Subtract Two Years      
+------------------------------
+ Mon Dec 13 00:00:00 1999 PST
+(1 row)
+
+SELECT date '1991-02-03' - time '04:05:06' AS "Subtract Time";
+        Subtract Time         
+------------------------------
+ Sat Feb 02 19:54:54 1991 PST
+(1 row)
+
+SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
+ERROR:  Unable to identify an operator '-' for types 'date' and 'timetz'
+       You will have to retype this query using an explicit cast
+--
 -- timestamp, interval arithmetic
 --
 SELECT timestamp '1996-03-01' - interval '1 second' AS "Feb 29";
index 34584a6..01cc436 100644 (file)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.7 2000/10/07 20:23:03 petere Exp $
+# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.8 2000/10/22 22:15:09 petere Exp $
 
 me=`basename $0`
 : ${TMPDIR=/tmp}
@@ -85,7 +85,7 @@ export PGHOST
 export PGPORT
 
 dbname=regression
-hostname=`hostname` || hostname=localhost
+hostname=localhost
 
 : ${GMAKE='@GMAKE@'}
 
@@ -287,7 +287,9 @@ then
     fi
 
     message "creating temporary installation"
-    mkdir -p "$LOGDIR" || { (exit 2); exit; }
+    if [ ! -d "$LOGDIR" ]; then
+        mkdir -p "$LOGDIR" || { (exit 2); exit; }
+    fi
     $GMAKE -C "$top_builddir" DESTDIR="$temp_install" install >"$LOGDIR/install.log" 2>&1
 
     if [ $? -ne 0 ]
@@ -423,7 +425,9 @@ esac
 
 message "running regression test queries"
 
-mkdir -p "$outputdir/results" || { (exit 2); exit; }
+if [ ! -d "$outputdir/results" ]; then
+    mkdir -p "$outputdir/results" || { (exit 2); exit; }
+fi
 result_summary_file=$outputdir/regression.out
 diff_file=$outputdir/regression.diffs
 
@@ -469,9 +473,9 @@ do
     else
         # Start a parallel group
         $ECHO_N "parallel group ($# tests): " $ECHO_C
-        for name; do
+        for name do
             ( $PSQL -d $dbname <"$inputdir/sql/$name.sql" >"$outputdir/results/$name.out" 2>&1
-              $ECHO_N " $name $ECHO_C"
+              $ECHO_N " $name$ECHO_C"
             ) &
         done
         wait
@@ -485,7 +489,7 @@ do
     # subshells.)
     # ----------
 
-    for name; do
+    for name do
         if [ $# -ne 1 ]; then
             formatted=`echo "$name" | awk '{printf "%-20.20s", $1;}'`
             $ECHO_N "     $formatted ... $ECHO_C"
index 98b064a..2c80aec 100644 (file)
@@ -3,6 +3,7 @@ abstime/.*-irix6=abstime-1947-PDT
 abstime/alpha.*-dec-osf=abstime-solaris-1947
 abstime/i.86-pc-solaris=abstime-solaris-1947
 abstime/sparc-sun-solaris=abstime-solaris-1947
+abstime/.*-sysv5uw=abstime-solaris-1947
 float4/.*-qnx=float4-exp-three-digits
 float8/.*-bsdi=float8-small-is-zero
 float8/.*-freebsd*=float8-small-is-zero
@@ -27,10 +28,11 @@ geometry/.*beos=geometry-intel-beos
 horology/.*aix4=horology-1947-PDT
 horology/.*-irix6=horology-1947-PDT
 horology/alpha.*-dec-osf=horology-solaris-1947
-horology/*-*-cygwin*=horology-no-DST-before-1970
+horology/.*-cygwin=horology-no-DST-before-1970
 horology/hppa=horology-no-DST-before-1970
 horology/i.86-pc-solaris=horology-solaris-1947
 horology/sparc-sun-solaris=horology-solaris-1947
+horology/.*-sysv5uw=horology-solaris-1947
 int2/.*-aix4=int2-too-large
 int2/.*-bsdi=int2-too-large
 int2/.*-freebsd=int2-too-large
@@ -44,6 +46,7 @@ int2/i.86-pc-linux-gnulibc=int2-not-representable
 int2/i.86-pc-solaris=int2-too-large
 int2/powerpc-unknown-linux-gnulibc1=int2-not-representable
 int2/sparc-sun-solaris=int2-too-large
+int2/.*-sysv5uw=int2-too-large
 int2/.*beos=int2-range-error
 int4/.*-aix4=int4-too-large
 int4/.*-bsdi=int4-too-large
@@ -58,6 +61,7 @@ int4/i.86-pc-linux-gnulibc=int4-not-representable
 int4/i.86-pc-solaris=int4-too-large
 int4/powerpc-unknown-linux-gnulibc1=int4-not-representable
 int4/sparc-sun-solaris=int4-too-large
+int4/.*-sysv5uw=int4-too-large
 int4/.*beos=int4-range-error
 int8/.*-qnx=int8-exp-three-digits
 tinterval/.*aix4=tinterval-1947-PDT
@@ -65,3 +69,4 @@ tinterval/.*-irix6=tinterval-1947-PDT
 tinterval/alpha.*-dec-osf=tinterval-solaris-1947
 tinterval/i.86-pc-solaris=tinterval-solaris-1947
 tinterval/sparc-sun-solaris=tinterval-solaris-1947
+tinterval/.*-sysv5uw=tinterval-solaris-1947