aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2007-06-11 12:01:23 +0000
committerMichael Meskes <meskes@postgresql.org>2007-06-11 12:01:23 +0000
commit88a7c4822ca1a33a35c862b9c4c5a39451ea93cf (patch)
tree47ee97ae0947ab207b53e1a5b07c7ba1357f7d88 /src
parent91411b6105850567b823dd36cc854c0f12cebdd6 (diff)
downloadpostgresql-88a7c4822ca1a33a35c862b9c4c5a39451ea93cf.tar.gz
postgresql-88a7c4822ca1a33a35c862b9c4c5a39451ea93cf.zip
Should not try to unlink stdout.
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/ChangeLog5
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y7
2 files changed, 9 insertions, 3 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index aacd2e26d0d..28aaca24e67 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -2203,4 +2203,9 @@ Sun, 27 May 2007 13:14:39 +0200
- Changed variable test to not run into infinite loops on backend
errors.
+
+Mon, 11 Jun 2007 13:59:57 +0200
+
+ - Fixed memory leak in descriptor code.
+ - Made ecpg delete output file in case of an error.
- Set ecpg version to 4.3.1.
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 80dc3765827..e4bd74f38c4 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -1,10 +1,11 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.344 2007/06/11 11:52:08 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.345 2007/06/11 12:01:23 meskes Exp $ */
/* Copyright comment */
%{
#include "postgres_fe.h"
#include "extern.h"
+#include <unistd.h>
/* Location tracking support --- simpler than bison's default */
#define YYLLOC_DEFAULT(Current, Rhs, N) \
@@ -101,8 +102,8 @@ mmerror(int error_code, enum errortype type, char * error, ...)
case ET_FATAL:
fclose(yyin);
fclose(yyout);
- if (unlink(output_filename) != 0)
- fprintf(stderr, "Could not remove ourput file %s!\n", output_filename);
+ if (unlink(output_filename) != 0 && *output_filename != '-')
+ fprintf(stderr, "Could not remove output file %s!\n", output_filename);
exit(error_code);
}
}