OSDN Git Service

Update copyright to 2004.
[pg-rex/syncrep.git] / src / backend / utils / error / assert.c
index 5f3312d..c0696ea 100644 (file)
@@ -1,76 +1,53 @@
 /*-------------------------------------------------------------------------
  *
- * assert.c--
+ * assert.c
  *       Assert code.
  *
- * Copyright (c) 1994, Regents of the University of California
+ * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/error/assert.c,v 1.12 1998/09/01 04:33:05 momjian Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/error/assert.c,v 1.28 2004/08/29 04:12:53 momjian Exp $
  *
  * NOTE
- *       This should eventually work with elog(), dlog(), etc.
+ *       This should eventually work with elog()
  *
  *-------------------------------------------------------------------------
  */
-#include <stdio.h>
-#include <unistd.h>
-
-#include "postgres.h"                  /* where the declaration goes */
-#include "utils/module.h"
+#include "postgres.h"
 
-#include "utils/exc.h"
-#include "utils/trace.h"
+#include <unistd.h>
 
+/*
+ * ExceptionalCondition - Handles the failure of an Assert()
+ */
 int
 ExceptionalCondition(char *conditionName,
-                                        Exception *exceptionP,
-                                        char *detail,
+                                        char *errorType,
                                         char *fileName,
                                         int lineNumber)
 {
-       extern char *ExcFileName;       /* XXX */
-       extern Index ExcLineNumber; /* XXX */
-
-       ExcFileName = fileName;
-       ExcLineNumber = lineNumber;
-
        if (!PointerIsValid(conditionName)
                || !PointerIsValid(fileName)
-               || !PointerIsValid(exceptionP))
-       {
-               EPRINTF("TRAP: ExceptionalCondition: bad arguments\n");
-
-               ExcAbort(exceptionP,
-                                (ExcDetail) detail,
-                                (ExcData) NULL,
-                                (ExcMessage) NULL);
-       }
+               || !PointerIsValid(errorType))
+               write_stderr("TRAP: ExceptionalCondition: bad arguments\n");
        else
        {
-               EPRINTF("TRAP: %s(\"%s:%s\", File: \"%s\", Line: %d)\n",
-                               exceptionP->message, conditionName,
-                               (detail == NULL ? "" : detail),
+               write_stderr("TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n",
+                               errorType, conditionName,
                                fileName, lineNumber);
        }
 
-#ifdef ABORT_ON_ASSERT
-       abort();
-#endif
 #ifdef SLEEP_ON_ASSERT
-       sleep(1000000);
-#endif
-
        /*
-        * XXX Depending on the Exception and tracing conditions, you will XXX
-        * want to stop here immediately and maybe dump core. XXX This may be
-        * especially true for Assert(), etc.
-        */
+        *      It would be nice to use pg_usleep() here, but only does 2000 sec
+        *      or 33 minutes, which seems too short.
+        */      
+       sleep(1000000); 
+#endif
 
-       /* TraceDump();         dump the trace stack */
+       abort();
 
-       /* XXX FIXME: detail is lost */
-       ExcRaise(exceptionP, (ExcDetail) 0, (ExcData) NULL, conditionName);
        return 0;
 }