mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
elog mop-up.
This commit is contained in:
parent
aeea73d4ec
commit
e8db9b26d0
@ -3,10 +3,7 @@
|
|||||||
#include "access/gist.h"
|
#include "access/gist.h"
|
||||||
#include "access/itup.h"
|
#include "access/itup.h"
|
||||||
#include "access/nbtree.h"
|
#include "access/nbtree.h"
|
||||||
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/geo_decls.h"
|
#include "utils/geo_decls.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
|
|
||||||
typedef int (*CMPFUNC) (const void *a, const void *b);
|
typedef int (*CMPFUNC) (const void *a, const void *b);
|
||||||
typedef void (*BINARY_UNION) (Datum *, char *);
|
typedef void (*BINARY_UNION) (Datum *, char *);
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
#include "access/gist.h"
|
#include "access/gist.h"
|
||||||
#include "access/rtree.h"
|
#include "access/rtree.h"
|
||||||
#include "lib/stringinfo.h"
|
#include "lib/stringinfo.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
|
|
||||||
#include "cubedata.h"
|
#include "cubedata.h"
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
#define __LTREE_H__
|
#define __LTREE_H__
|
||||||
|
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/contrib/rtree_gist/Attic/rtree_gist.c,v 1.6 2002/09/04 20:31:08 momjian Exp $
|
* $Header: /cvsroot/pgsql/contrib/rtree_gist/Attic/rtree_gist.c,v 1.7 2003/07/27 17:10:06 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -16,9 +16,7 @@
|
|||||||
#include "access/gist.h"
|
#include "access/gist.h"
|
||||||
#include "access/itup.h"
|
#include "access/itup.h"
|
||||||
#include "access/rtree.h"
|
#include "access/rtree.h"
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/geo_decls.h"
|
#include "utils/geo_decls.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
|
|
||||||
typedef Datum (*RDF) (PG_FUNCTION_ARGS);
|
typedef Datum (*RDF) (PG_FUNCTION_ARGS);
|
||||||
typedef Datum (*BINARY_UNION) (Datum, Datum, int *);
|
typedef Datum (*BINARY_UNION) (Datum, Datum, int *);
|
||||||
|
@ -10,8 +10,6 @@
|
|||||||
#include "access/gist.h"
|
#include "access/gist.h"
|
||||||
#include "access/itup.h"
|
#include "access/itup.h"
|
||||||
#include "access/rtree.h"
|
#include "access/rtree.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/array.h"
|
#include "utils/array.h"
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
#include "storage/bufpage.h"
|
#include "storage/bufpage.h"
|
||||||
@ -283,7 +281,7 @@ clean_fakeval(ITEM * ptr, int4 *len)
|
|||||||
resroot = clean_fakeval_intree(root, &result);
|
resroot = clean_fakeval_intree(root, &result);
|
||||||
if (result != V_UNKNOWN)
|
if (result != V_UNKNOWN)
|
||||||
{
|
{
|
||||||
elog(NOTICE, "Query contains only stopword(s) or doesn't contain lexem(s), ignored");
|
elog(NOTICE, "query contains only stopword(s) or doesn't contain lexeme(s), ignored");
|
||||||
*len = 0;
|
*len = 0;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
#include "access/gist.h"
|
#include "access/gist.h"
|
||||||
#include "access/itup.h"
|
#include "access/itup.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
#include "storage/bufpage.h"
|
#include "storage/bufpage.h"
|
||||||
|
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
|
|
||||||
#include "access/gist.h"
|
#include "access/gist.h"
|
||||||
#include "access/itup.h"
|
#include "access/itup.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
#include "storage/bufpage.h"
|
#include "storage/bufpage.h"
|
||||||
|
|
||||||
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
#include "access/gist.h"
|
#include "access/gist.h"
|
||||||
#include "access/itup.h"
|
#include "access/itup.h"
|
||||||
#include "utils/elog.h"
|
|
||||||
#include "utils/palloc.h"
|
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
#include "storage/bufpage.h"
|
#include "storage/bufpage.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$Header: /cvsroot/pgsql/doc/src/sgml/xtypes.sgml,v 1.17 2003/04/10 01:22:45 petere Exp $
|
$Header: /cvsroot/pgsql/doc/src/sgml/xtypes.sgml,v 1.18 2003/07/27 17:10:06 tgl Exp $
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<sect1 id="xtypes">
|
<sect1 id="xtypes">
|
||||||
@ -70,14 +70,15 @@ typedef struct Complex {
|
|||||||
Complex *
|
Complex *
|
||||||
complex_in(char *str)
|
complex_in(char *str)
|
||||||
{
|
{
|
||||||
double x, y;
|
double x,
|
||||||
|
y;
|
||||||
Complex *result;
|
Complex *result;
|
||||||
|
|
||||||
if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2)
|
if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2)
|
||||||
{
|
ereport(ERROR,
|
||||||
elog(ERROR, "complex_in: error in parsing %s", str);
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
return NULL;
|
errmsg("invalid input syntax for complex: \"%s\"", str)));
|
||||||
}
|
|
||||||
result = (Complex *) palloc(sizeof(Complex));
|
result = (Complex *) palloc(sizeof(Complex));
|
||||||
result->x = x;
|
result->x = x;
|
||||||
result->y = y;
|
result->y = y;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: genam.h,v 1.39 2003/02/24 00:57:17 tgl Exp $
|
* $Id: genam.h,v 1.40 2003/07/27 17:10:06 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -45,7 +45,7 @@ typedef bool (*IndexBulkDeleteCallback) (ItemPointer itemptr, void *state);
|
|||||||
typedef struct IndexVacuumCleanupInfo
|
typedef struct IndexVacuumCleanupInfo
|
||||||
{
|
{
|
||||||
bool vacuum_full; /* VACUUM FULL (we have exclusive lock) */
|
bool vacuum_full; /* VACUUM FULL (we have exclusive lock) */
|
||||||
int message_level; /* elog level for progress messages */
|
int message_level; /* ereport level for progress messages */
|
||||||
} IndexVacuumCleanupInfo;
|
} IndexVacuumCleanupInfo;
|
||||||
|
|
||||||
/* Struct for heap-or-index scans of system tables */
|
/* Struct for heap-or-index scans of system tables */
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: tupmacs.h,v 1.22 2002/08/24 15:00:46 tgl Exp $
|
* $Id: tupmacs.h,v 1.23 2003/07/27 17:10:07 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -155,7 +155,7 @@
|
|||||||
*(Datum *) (T) = (newdatum); \
|
*(Datum *) (T) = (newdatum); \
|
||||||
break; \
|
break; \
|
||||||
default: \
|
default: \
|
||||||
elog(ERROR, "store_att_byval: unsupported byval length %d", \
|
elog(ERROR, "unsupported byval length: %d", \
|
||||||
(int) (attlen)); \
|
(int) (attlen)); \
|
||||||
break; \
|
break; \
|
||||||
} \
|
} \
|
||||||
@ -177,7 +177,7 @@
|
|||||||
*(int32 *) (T) = DatumGetInt32(newdatum); \
|
*(int32 *) (T) = DatumGetInt32(newdatum); \
|
||||||
break; \
|
break; \
|
||||||
default: \
|
default: \
|
||||||
elog(ERROR, "store_att_byval: unsupported byval length %d", \
|
elog(ERROR, "unsupported byval length: %d", \
|
||||||
(int) (attlen)); \
|
(int) (attlen)); \
|
||||||
break; \
|
break; \
|
||||||
} \
|
} \
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: pqcomm.h,v 1.90 2003/07/23 23:30:41 tgl Exp $
|
* $Id: pqcomm.h,v 1.91 2003/07/27 17:10:07 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -21,7 +21,7 @@
|
|||||||
/* workaround for clashing defines of "ERROR" */
|
/* workaround for clashing defines of "ERROR" */
|
||||||
#ifdef ELOG_H
|
#ifdef ELOG_H
|
||||||
#undef ERROR
|
#undef ERROR
|
||||||
#define ERROR (-1)
|
#define ERROR PGERROR
|
||||||
#endif
|
#endif
|
||||||
#else /* not WIN32 */
|
#else /* not WIN32 */
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: miscadmin.h,v 1.126 2003/07/17 00:55:37 tgl Exp $
|
* $Id: miscadmin.h,v 1.127 2003/07/27 17:10:07 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* some of the information in this file should be moved to
|
* some of the information in this file should be moved to
|
||||||
@ -53,10 +53,10 @@
|
|||||||
*
|
*
|
||||||
* A related, but conceptually distinct, mechanism is the "critical section"
|
* A related, but conceptually distinct, mechanism is the "critical section"
|
||||||
* mechanism. A critical section not only holds off cancel/die interrupts,
|
* mechanism. A critical section not only holds off cancel/die interrupts,
|
||||||
* but causes any elog(ERROR) or elog(FATAL) to become elog(PANIC) --- that is,
|
* but causes any ereport(ERROR) or ereport(FATAL) to become ereport(PANIC)
|
||||||
* a system-wide reset is forced. Needless to say, only really *critical*
|
* --- that is, a system-wide reset is forced. Needless to say, only really
|
||||||
* code should be marked as a critical section! Currently, this mechanism
|
* *critical* code should be marked as a critical section! Currently, this
|
||||||
* is only used for XLOG-related code.
|
* mechanism is only used for XLOG-related code.
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: buf_internals.h,v 1.59 2002/09/04 20:31:45 momjian Exp $
|
* $Id: buf_internals.h,v 1.60 2003/07/27 17:10:07 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -111,7 +111,7 @@ typedef struct sbufdesc
|
|||||||
* Each backend has its own BufferLocks[] array holding flag bits
|
* Each backend has its own BufferLocks[] array holding flag bits
|
||||||
* showing what locks it has set on each buffer.
|
* showing what locks it has set on each buffer.
|
||||||
*
|
*
|
||||||
* We have to free these locks in elog(ERROR)...
|
* We have to free these locks during ereport(ERROR)...
|
||||||
*/
|
*/
|
||||||
#define BL_IO_IN_PROGRESS (1 << 0) /* unimplemented */
|
#define BL_IO_IN_PROGRESS (1 << 0) /* unimplemented */
|
||||||
#define BL_PIN_COUNT_LOCK (1 << 1)
|
#define BL_PIN_COUNT_LOCK (1 << 1)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* procedural language
|
* procedural language
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_handler.c,v 1.14 2003/07/25 23:37:29 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_handler.c,v 1.15 2003/07/27 17:10:07 tgl Exp $
|
||||||
*
|
*
|
||||||
* This software is copyrighted by Jan Wieck - Hamburg.
|
* This software is copyrighted by Jan Wieck - Hamburg.
|
||||||
*
|
*
|
||||||
@ -65,7 +65,7 @@ plpgsql_call_handler(PG_FUNCTION_ARGS)
|
|||||||
* Connect to SPI manager
|
* Connect to SPI manager
|
||||||
*/
|
*/
|
||||||
if (SPI_connect() != SPI_OK_CONNECT)
|
if (SPI_connect() != SPI_OK_CONNECT)
|
||||||
elog(ERROR, "could not connect to SPI manager");
|
elog(ERROR, "SPI_connect failed");
|
||||||
|
|
||||||
/* Find or compile the function */
|
/* Find or compile the function */
|
||||||
func = plpgsql_compile(fcinfo);
|
func = plpgsql_compile(fcinfo);
|
||||||
@ -84,7 +84,7 @@ plpgsql_call_handler(PG_FUNCTION_ARGS)
|
|||||||
* Disconnect from SPI manager
|
* Disconnect from SPI manager
|
||||||
*/
|
*/
|
||||||
if (SPI_finish() != SPI_OK_FINISH)
|
if (SPI_finish() != SPI_OK_FINISH)
|
||||||
elog(ERROR, "SPI_finish() failed");
|
elog(ERROR, "SPI_finish failed");
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#undef mkdir /* no reason to use that macro because we ignore the 2nd arg */
|
#undef mkdir /* no reason to use that macro because we ignore the 2nd arg */
|
||||||
|
|
||||||
#include "dirent.h"
|
#include <dirent.h>
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -21,14 +21,17 @@ copydir(char *fromdir,char *todir)
|
|||||||
|
|
||||||
if (mkdir(todir) != 0)
|
if (mkdir(todir) != 0)
|
||||||
{
|
{
|
||||||
elog(ERROR, "could not make directory '%s'",todir);
|
ereport(ERROR,
|
||||||
|
(errcode_for_file_access(),
|
||||||
|
errmsg("could not create directory \"%s\": %m", todir)));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
xldir = opendir(fromdir);
|
xldir = opendir(fromdir);
|
||||||
if (xldir == NULL)
|
if (xldir == NULL)
|
||||||
{
|
{
|
||||||
closedir(xldir);
|
ereport(ERROR,
|
||||||
elog(ERROR, "could not open directory '%s'",fromdir);
|
(errcode_for_file_access(),
|
||||||
|
errmsg("could not open directory \"%s\": %m", fromdir)));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,8 +41,13 @@ copydir(char *fromdir,char *todir)
|
|||||||
snprintf(tofl, MAXPGPATH, "%s/%s", todir, xlde->d_name);
|
snprintf(tofl, MAXPGPATH, "%s/%s", todir, xlde->d_name);
|
||||||
if (CopyFile(fromfl,tofl,TRUE) < 0)
|
if (CopyFile(fromfl,tofl,TRUE) < 0)
|
||||||
{
|
{
|
||||||
|
int save_errno = errno;
|
||||||
|
|
||||||
closedir(xldir);
|
closedir(xldir);
|
||||||
elog(ERROR,"could not create file %s\n",todir);
|
errno = save_errno;
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode_for_file_access(),
|
||||||
|
errmsg("could not copy file \"%s\": %m", fromfl)));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* These are replacement versions of unlink and rename that work on
|
* These are replacement versions of unlink and rename that work on
|
||||||
* Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me.
|
* Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TEST_VERSION
|
#ifndef TEST_VERSION
|
||||||
@ -11,7 +10,8 @@
|
|||||||
#undef rename
|
#undef rename
|
||||||
#undef unlink
|
#undef unlink
|
||||||
|
|
||||||
int pgrename(const char *from, const char *to)
|
int
|
||||||
|
pgrename(const char *from, const char *to)
|
||||||
{
|
{
|
||||||
int loops = 0;
|
int loops = 0;
|
||||||
|
|
||||||
@ -23,24 +23,27 @@ int pgrename(const char *from, const char *to)
|
|||||||
Sleep(100); /* ms */
|
Sleep(100); /* ms */
|
||||||
if (loops == 10)
|
if (loops == 10)
|
||||||
#ifndef FRONTEND
|
#ifndef FRONTEND
|
||||||
elog(LOG, "Unable to rename %s to %s, continuing to try", from, to);
|
elog(LOG, "could not rename \"%s\" to \"%s\", continuing to try",
|
||||||
|
from, to);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "Unable to rename %s to %s, continuing to try\n", from, to);
|
fprintf(stderr, "could not rename \"%s\" to \"%s\", continuing to try\n",
|
||||||
|
from, to);
|
||||||
#endif
|
#endif
|
||||||
loops++;
|
loops++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loops > 10)
|
if (loops > 10)
|
||||||
#ifndef FRONTEND
|
#ifndef FRONTEND
|
||||||
elog(LOG, "Completed rename of %s to %s", from, to);
|
elog(LOG, "completed rename of \"%s\" to \"%s\"", from, to);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "Completed rename of %s to %s\n", from, to);
|
fprintf(stderr, "completed rename of \"%s\" to \"%s\"\n", from, to);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int pgunlink(const char *path)
|
int
|
||||||
|
pgunlink(const char *path)
|
||||||
{
|
{
|
||||||
int loops = 0;
|
int loops = 0;
|
||||||
|
|
||||||
@ -52,18 +55,20 @@ int pgunlink(const char *path)
|
|||||||
Sleep(100); /* ms */
|
Sleep(100); /* ms */
|
||||||
if (loops == 10)
|
if (loops == 10)
|
||||||
#ifndef FRONTEND
|
#ifndef FRONTEND
|
||||||
elog(LOG, "Unable to unlink %s, continuing to try", path);
|
elog(LOG, "could not unlink \"%s\", continuing to try",
|
||||||
|
path);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "Unable to unlink %s, continuing to try\n", path);
|
fprintf(stderr, "could not unlink \"%s\", continuing to try\n",
|
||||||
|
path);
|
||||||
#endif
|
#endif
|
||||||
loops++;
|
loops++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loops > 10)
|
if (loops > 10)
|
||||||
#ifndef FRONTEND
|
#ifndef FRONTEND
|
||||||
elog(LOG, "Completed unlink of %s", path);
|
elog(LOG, "completed unlink of \"%s\"", path);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "Completed unlink of %s\n", path);
|
fprintf(stderr, "completed unlink of \"%s\"\n", path);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -143,4 +148,5 @@ main(int argc, char* argv[])
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -38,10 +38,10 @@ complex_in(char *str)
|
|||||||
Complex *result;
|
Complex *result;
|
||||||
|
|
||||||
if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2)
|
if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2)
|
||||||
{
|
ereport(ERROR,
|
||||||
elog(ERROR, "complex_in: error in parsing \"%s\"", str);
|
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
|
||||||
return NULL;
|
errmsg("invalid input syntax for complex: \"%s\"", str)));
|
||||||
}
|
|
||||||
result = (Complex *) palloc(sizeof(Complex));
|
result = (Complex *) palloc(sizeof(Complex));
|
||||||
result->x = x;
|
result->x = x;
|
||||||
result->y = y;
|
result->y = y;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user