aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/array/Makefile8
-rw-r--r--contrib/array/array_iterator.c18
-rw-r--r--contrib/datetime/Makefile8
-rw-r--r--contrib/datetime/datetime_functions.c14
-rw-r--r--contrib/miscutil/Makefile8
-rw-r--r--contrib/miscutil/misc_utils.c2
-rw-r--r--contrib/miscutil/misc_utils.h6
-rw-r--r--contrib/string/Makefile8
-rw-r--r--contrib/string/string_io.c37
-rw-r--r--contrib/string/string_io.h19
-rw-r--r--contrib/userlock/Makefile8
-rw-r--r--src/backend/commands/copy.c9
-rw-r--r--src/backend/utils/error/elog.c13
-rw-r--r--src/backend/utils/misc/trace.c4
-rw-r--r--src/include/commands/copy.h3
-rw-r--r--src/include/utils/trace.h2
-rw-r--r--src/pl/plperl/Makefile.PL2
17 files changed, 102 insertions, 67 deletions
diff --git a/contrib/array/Makefile b/contrib/array/Makefile
index 85e8d42ade4..951250a29dd 100644
--- a/contrib/array/Makefile
+++ b/contrib/array/Makefile
@@ -11,10 +11,10 @@ SRCDIR = $(PGDIR)/src
include $(SRCDIR)/Makefile.global
-INCLUDE_OPT = -I ./ \
- -I $(SRCDIR)/ \
- -I $(SRCDIR)/include \
- -I $(SRCDIR)/port/$(PORTNAME)
+INCLUDE_OPT = -I./ \
+ -I$(SRCDIR)/ \
+ -I$(SRCDIR)/include \
+ -I$(SRCDIR)/port/$(PORTNAME)
CFLAGS += $(INCLUDE_OPT) $(CFLAGS_SL)
diff --git a/contrib/array/array_iterator.c b/contrib/array/array_iterator.c
index 5417d2da52f..cadda58a8f4 100644
--- a/contrib/array/array_iterator.c
+++ b/contrib/array/array_iterator.c
@@ -66,7 +66,7 @@ array_iterator(Oid elemtype, Oid proc, int and, ArrayType *array, Datum value)
}
/* Lookup element type information */
- typ_tuple = SearchSysCacheTuple(TYPOID, ObjectIdGetDatum(elemtype), 0, 0, 0);
+ typ_tuple = SearchSysCacheTuple(TYPEOID, ObjectIdGetDatum(elemtype), 0, 0, 0);
if (!HeapTupleIsValid(typ_tuple))
{
elog(ERROR, "array_iterator: cache lookup failed for type %d", elemtype);
@@ -183,7 +183,7 @@ array_all_textregexeq(ArrayType *array, char *value)
int32
array_varchareq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* varchar */
+ return array_iterator((Oid) 1043, /* varchar */
(Oid) 1070, /* varchareq */
0, /* logical or */
array, (Datum) value);
@@ -192,7 +192,7 @@ array_varchareq(ArrayType *array, char *value)
int32
array_all_varchareq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* varchar */
+ return array_iterator((Oid) 1043, /* varchar */
(Oid) 1070, /* varchareq */
1, /* logical and */
array, (Datum) value);
@@ -201,7 +201,7 @@ array_all_varchareq(ArrayType *array, char *value)
int32
array_varcharregexeq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* varchar */
+ return array_iterator((Oid) 1043, /* varchar */
(Oid) 1254, /* textregexeq */
0, /* logical or */
array, (Datum) value);
@@ -210,7 +210,7 @@ array_varcharregexeq(ArrayType *array, char *value)
int32
array_all_varcharregexeq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* varchar */
+ return array_iterator((Oid) 1043, /* varchar */
(Oid) 1254, /* textregexeq */
1, /* logical and */
array, (Datum) value);
@@ -224,7 +224,7 @@ array_all_varcharregexeq(ArrayType *array, char *value)
int32
array_bpchareq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* bpchar */
+ return array_iterator((Oid) 1042, /* bpchar */
(Oid) 1048, /* bpchareq */
0, /* logical or */
array, (Datum) value);
@@ -233,7 +233,7 @@ array_bpchareq(ArrayType *array, char *value)
int32
array_all_bpchareq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* bpchar */
+ return array_iterator((Oid) 1042, /* bpchar */
(Oid) 1048, /* bpchareq */
1, /* logical and */
array, (Datum) value);
@@ -242,7 +242,7 @@ array_all_bpchareq(ArrayType *array, char *value)
int32
array_bpcharregexeq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* bpchar */
+ return array_iterator((Oid) 1042, /* bpchar */
(Oid) 1254, /* textregexeq */
0, /* logical or */
array, (Datum) value);
@@ -251,7 +251,7 @@ array_bpcharregexeq(ArrayType *array, char *value)
int32
array_all_bpcharregexeq(ArrayType *array, char *value)
{
- return array_iterator((Oid) 20, /* bpchar */
+ return array_iterator((Oid) 1042, /* bpchar */
(Oid) 1254, /* textregexeq */
1, /* logical and */
array, (Datum) value);
diff --git a/contrib/datetime/Makefile b/contrib/datetime/Makefile
index b53293e1722..195c0f8d689 100644
--- a/contrib/datetime/Makefile
+++ b/contrib/datetime/Makefile
@@ -11,10 +11,10 @@ SRCDIR = $(PGDIR)/src
include $(SRCDIR)/Makefile.global
-INCLUDE_OPT = -I ./ \
- -I $(SRCDIR)/ \
- -I $(SRCDIR)/include \
- -I $(SRCDIR)/port/$(PORTNAME)
+INCLUDE_OPT = -I./ \
+ -I$(SRCDIR)/ \
+ -I$(SRCDIR)/include \
+ -I$(SRCDIR)/port/$(PORTNAME)
CFLAGS += $(INCLUDE_OPT) $(CFLAGS_SL)
diff --git a/contrib/datetime/datetime_functions.c b/contrib/datetime/datetime_functions.c
index 910647118aa..c5b8bc25e9d 100644
--- a/contrib/datetime/datetime_functions.c
+++ b/contrib/datetime/datetime_functions.c
@@ -5,6 +5,8 @@
*
* Copyright (C) 1999, Massimo Dal Zotto <dz@cs.unitn.it>
*
+ * Date2mjd code contributed by Reiner Dassing <dassing@wettzell.ifag.de>
+ *
* This software is distributed under the GNU General Public License
* either version 2, or (at your option) any later version.
*/
@@ -73,7 +75,7 @@ decode_24h_time(char *str, struct tm *tm, double *fsec)
if ( (tm->tm_hour < 0) || (tm->tm_hour > 24)
|| (tm->tm_min < 0) || (tm->tm_min > 59)
|| (tm->tm_sec < 0) || (tm->tm_sec > 59)
- || (fsec < 0) )
+ || (*fsec < 0) )
return -1;
return 0;
@@ -260,6 +262,16 @@ currentdate()
return (date);
}
+int4
+date2mjd(DateADT val)
+{
+ int result;
+
+ result = val + JDATE_2000 - 2400000.5;
+
+ return result;
+}
+
/* end of file */
/*
diff --git a/contrib/miscutil/Makefile b/contrib/miscutil/Makefile
index fa3c99fa1db..fd0065b86ef 100644
--- a/contrib/miscutil/Makefile
+++ b/contrib/miscutil/Makefile
@@ -11,10 +11,10 @@ SRCDIR = $(PGDIR)/src
include $(SRCDIR)/Makefile.global
-INCLUDE_OPT = -I ./ \
- -I $(SRCDIR)/ \
- -I $(SRCDIR)/include \
- -I $(SRCDIR)/port/$(PORTNAME)
+INCLUDE_OPT = -I./ \
+ -I$(SRCDIR)/ \
+ -I$(SRCDIR)/include \
+ -I$(SRCDIR)/port/$(PORTNAME)
CFLAGS += $(INCLUDE_OPT) $(CFLAGS_SL)
diff --git a/contrib/miscutil/misc_utils.c b/contrib/miscutil/misc_utils.c
index 21341dc73c9..6745b5b8bb9 100644
--- a/contrib/miscutil/misc_utils.c
+++ b/contrib/miscutil/misc_utils.c
@@ -121,6 +121,7 @@ active_listeners(text *relname)
return count;
}
+#ifdef USE_ASSERT_CHECKING
int
assert_enable(int val)
{
@@ -134,6 +135,7 @@ assert_test(int val)
return assertTest(val);
}
#endif
+#endif
/* end of file */
diff --git a/contrib/miscutil/misc_utils.h b/contrib/miscutil/misc_utils.h
index 61217244a2d..139df3bc775 100644
--- a/contrib/miscutil/misc_utils.h
+++ b/contrib/miscutil/misc_utils.h
@@ -6,13 +6,15 @@ int backend_pid(void);
int unlisten(char *relname);
int max(int x, int y);
int min(int x, int y);
-int assert_enable(int val);
+int active_listeners(text *relname);
+#ifdef USE_ASSERT_CHECKING
+int assert_enable(int val);
#ifdef ASSERT_CHECKING_TEST
int assert_test(int val);
#endif
+#endif
-int active_listeners(text *relname);
#endif
/*
diff --git a/contrib/string/Makefile b/contrib/string/Makefile
index b77ace937cf..dd8f0e6f2a6 100644
--- a/contrib/string/Makefile
+++ b/contrib/string/Makefile
@@ -11,10 +11,10 @@ SRCDIR = $(PGDIR)/src
include $(SRCDIR)/Makefile.global
-INCLUDE_OPT = -I ./ \
- -I $(SRCDIR)/ \
- -I $(SRCDIR)/include \
- -I $(SRCDIR)/port/$(PORTNAME)
+INCLUDE_OPT = -I./ \
+ -I$(SRCDIR)/ \
+ -I$(SRCDIR)/include \
+ -I$(SRCDIR)/port/$(PORTNAME)
CFLAGS += $(INCLUDE_OPT) $(CFLAGS_SL)
diff --git a/contrib/string/string_io.c b/contrib/string/string_io.c
index e1fc867497f..9407e6a21b3 100644
--- a/contrib/string/string_io.c
+++ b/contrib/string/string_io.c
@@ -50,8 +50,8 @@
* representation of data.
*/
-char *
-string_output(char *data, int size)
+unsigned char *
+string_output(unsigned char *data, int size)
{
register unsigned char c,
*p,
@@ -79,8 +79,6 @@ string_output(char *data, int size)
{
case '\\':
case '"':
- case '{':
- case '}':
case '\b':
case '\f':
case '\n':
@@ -89,6 +87,12 @@ string_output(char *data, int size)
case '\v':
len++;
break;
+ case '{':
+ /* Escape beginning of string, to distinguish from arrays */
+ if (p == data) {
+ len++;
+ }
+ break;
default:
if (NOTPRINTABLE(*p))
len += 3;
@@ -104,8 +108,6 @@ string_output(char *data, int size)
{
case '\\':
case '"':
- case '{':
- case '}':
*r++ = '\\';
*r++ = c;
break;
@@ -133,6 +135,13 @@ string_output(char *data, int size)
*r++ = '\\';
*r++ = 'v';
break;
+ case '{':
+ /* Escape beginning of string, to distinguish from arrays */
+ if (p == data) {
+ *r++ = '\\';
+ }
+ *r++ = c;
+ break;
default:
if (NOTPRINTABLE(c))
{
@@ -180,8 +189,8 @@ string_output(char *data, int size)
* a pointer to the new string or the header.
*/
-char *
-string_input(char *str, int size, int hdrsize, int *rtn_size)
+unsigned char *
+string_input(unsigned char *str, int size, int hdrsize, int *rtn_size)
{
register unsigned char *p,
*r;
@@ -285,7 +294,7 @@ string_input(char *str, int size, int hdrsize, int *rtn_size)
return ((char *) result);
}
-char *
+unsigned char *
c_charout(int32 c)
{
char str[2];
@@ -300,7 +309,7 @@ c_charout(int32 c)
* This can be used for SET, bytea, text and unknown data types
*/
-char *
+unsigned char *
c_textout(struct varlena * vlena)
{
int len = 0;
@@ -318,8 +327,8 @@ c_textout(struct varlena * vlena)
* This can be used for varchar and bpchar strings
*/
-char *
-c_varcharout(char *s)
+unsigned char *
+c_varcharout(unsigned char *s)
{
int len = 0;
@@ -333,7 +342,7 @@ c_varcharout(char *s)
#if 0
struct varlena *
-c_textin(char *str)
+c_textin(unsigned char *str)
{
struct varlena *result;
int len;
@@ -348,7 +357,7 @@ c_textin(char *str)
}
int32 *
-c_charin(char *str)
+c_charin(unsigned char *str)
{
return (string_input(str, 1, 0, NULL));
}
diff --git a/contrib/string/string_io.h b/contrib/string/string_io.h
index b1d2b7e2c28..e79d7fd28fe 100644
--- a/contrib/string/string_io.h
+++ b/contrib/string/string_io.h
@@ -1,19 +1,16 @@
#ifndef STRING_IO_H
#define STRING_IO_H
-char *string_output(char *data, int size);
-char *string_input(char *str, int size, int hdrsize, int *rtn_size);
-char *c_charout(int32 c);
-char *c_char2out(uint16 s);
-char *c_char4out(uint32 s);
-char *c_char8out(char *s);
-char *c_char16out(char *s);
-char *c_textout(struct varlena * vlena);
-char *c_varcharout(char *s);
+unsigned char* string_output(unsigned char *data, int size);
+unsigned char* string_input(unsigned char *str, int size, int hdrsize,
+ int *rtn_size);
+unsigned char* c_charout(int32 c);
+unsigned char* c_textout(struct varlena * vlena);
+unsigned char* c_varcharout(unsigned char *s);
#if 0
-struct varlena *c_textin(char *str);
-char *c_char16in(char *str);
+struct varlena* c_textin(unsigned char *str);
+int32* c_charin(unsigned char *str)
#endif
#endif
diff --git a/contrib/userlock/Makefile b/contrib/userlock/Makefile
index 391956ad7e7..23975185b2a 100644
--- a/contrib/userlock/Makefile
+++ b/contrib/userlock/Makefile
@@ -11,10 +11,10 @@ SRCDIR = $(PGDIR)/src
include $(SRCDIR)/Makefile.global
-INCLUDE_OPT = -I ./ \
- -I $(SRCDIR)/ \
- -I $(SRCDIR)/include \
- -I $(SRCDIR)/port/$(PORTNAME)
+INCLUDE_OPT = -I./ \
+ -I$(SRCDIR)/ \
+ -I$(SRCDIR)/include \
+ -I$(SRCDIR)/port/$(PORTNAME)
CFLAGS += $(INCLUDE_OPT) $(CFLAGS_SL)
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 7a23a063aaf..85a50c10398 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.100 2000/02/09 00:10:11 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.101 2000/02/13 18:59:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,7 +64,7 @@ static int CountTuples(Relation relation);
* Static communication variables ... pretty grotty, but COPY has
* never been reentrant...
*/
-static int lineno;
+int lineno = 0; /* used by elog() -- dz */
static bool fe_eof;
/*
@@ -726,8 +726,10 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
while (!done)
{
- if (QueryCancel)
+ if (QueryCancel) {
+ lineno = 0;
CancelQuery();
+ }
if (!binary)
{
@@ -931,6 +933,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
if (!reading_to_eof && ntuples == tuples_read)
done = true;
}
+ lineno = 0;
pfree(values);
pfree(nulls);
pfree(index_nulls);
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 71fd9c8354f..1a61d7e6d17 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.54 2000/01/26 05:57:20 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.55 2000/02/13 18:59:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,6 +35,7 @@
#include "storage/proc.h"
#include "tcop/tcopprot.h"
#include "utils/trace.h"
+#include "commands/copy.h"
extern int errno;
extern int sys_nerr;
@@ -164,7 +165,7 @@ elog(int lev, const char *fmt, ...)
* (since vsnprintf won't know what to do with %m). To keep
* space calculation simple, we only allow one %m.
*/
- space_needed = TIMESTAMP_SIZE + strlen(prefix) + indent
+ space_needed = TIMESTAMP_SIZE + strlen(prefix) + indent + (lineno ? 24 : 0)
+ strlen(fmt) + strlen(errorstr) + 1;
if (space_needed > (int) sizeof(fmt_fixedbuf))
{
@@ -186,6 +187,14 @@ elog(int lev, const char *fmt, ...)
bp = fmt_buf + strlen(fmt_buf);
while (indent-- > 0)
*bp++ = ' ';
+
+ /* If error was in CopyFrom() print the offending line number -- dz */
+ if (lineno) {
+ sprintf(bp, "copy: line %d, ", lineno);
+ bp = fmt_buf + strlen(fmt_buf);
+ lineno = 0;
+ }
+
for (cp = fmt; *cp; cp++)
{
if (cp[0] == '%' && cp[1] != '\0')
diff --git a/src/backend/utils/misc/trace.c b/src/backend/utils/misc/trace.c
index 044afe16519..33ca0ce0a6b 100644
--- a/src/backend/utils/misc/trace.c
+++ b/src/backend/utils/misc/trace.c
@@ -233,8 +233,8 @@ tprintf_timestamp()
time = localtime(&tm);
sprintf(pid, "[%d]", MyProcPid);
- sprintf(timestamp, "%04d%02d%02d.%02d:%02d:%02d.%03d %7s ",
- time->tm_year+1900, time->tm_mon + 1, time->tm_mday,
+ sprintf(timestamp, "%02d%02d%02d.%02d:%02d:%02d.%03d %7s ",
+ time->tm_year % 100, time->tm_mon + 1, time->tm_mday,
time->tm_hour, time->tm_min, time->tm_sec,
(int) (tv.tv_usec/1000), pid);
diff --git a/src/include/commands/copy.h b/src/include/commands/copy.h
index 6f8c79676a2..ecdb9bbb4e8 100644
--- a/src/include/commands/copy.h
+++ b/src/include/commands/copy.h
@@ -7,13 +7,14 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: copy.h,v 1.9 2000/01/26 05:58:00 momjian Exp $
+ * $Id: copy.h,v 1.10 2000/02/13 18:59:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef COPY_H
#define COPY_H
+extern int lineno;
void DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe,
char *filename, char *delim, char *null_print);
diff --git a/src/include/utils/trace.h b/src/include/utils/trace.h
index 61f0b27da13..3cb2d9e28f1 100644
--- a/src/include/utils/trace.h
+++ b/src/include/utils/trace.h
@@ -18,7 +18,7 @@
#ifdef ELOG_TIMESTAMPS
char *tprintf_timestamp(void);
-#define TIMESTAMP_SIZE 30
+#define TIMESTAMP_SIZE 28
#else
#define TIMESTAMP_SIZE 0
#endif
diff --git a/src/pl/plperl/Makefile.PL b/src/pl/plperl/Makefile.PL
index 43773debb5e..9285668917b 100644
--- a/src/pl/plperl/Makefile.PL
+++ b/src/pl/plperl/Makefile.PL
@@ -107,7 +107,7 @@ plperl : plperl.o SPI.o
\$(CC) -c \$(CFLAGS) \$<
%.o : %.xs
- \$(XSUBPP} \$(TYPEMAP) \$< > xtmp.c
+ \$(XSUBPP) \$(TYPEMAP) \$< > xtmp.c
\$(CC) -c \$(CFLAGS) -o \$@ xtmp.c