From db921be319906bed877eabb02c266c7b3a788a03 Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Tue, 7 Jul 1998 17:59:32 +0000 Subject: [PATCH] From: "Dr. Michael Meskes" + Thu Jul 2 20:30:14 CEST 1998 + + - Changed new style db name to allow connection types "tcp" and + "unix" only + + Tue Jul 7 15:14:14 CEST 1998 + + - Fixed some bugs in preproc.y + - Set version to 2.3.4 --- src/interfaces/ecpg/ChangeLog | 10 ++++++++++ src/interfaces/ecpg/lib/ecpglib.c | 2 ++ src/interfaces/ecpg/preproc/Makefile | 2 +- src/interfaces/ecpg/preproc/preproc.y | 16 ++++++++++++++-- src/interfaces/ecpg/preproc/type.c | 4 ++++ src/interfaces/ecpg/test/test2.pgc | 2 +- 6 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index bef6e29787..8131d499f6 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -248,3 +248,13 @@ Wed Jun 3 13:38:57 CEST 1998 CREATE RULE - Set library version to 2.3 - Set version to 2.3.3 + +Thu Jul 2 20:30:14 CEST 1998 + + - Changed new style db name to allow connection types "tcp" and + "unix" only + +Tue Jul 7 15:14:14 CEST 1998 + + - Fixed some bugs in preproc.y + - Set version to 2.3.4 diff --git a/src/interfaces/ecpg/lib/ecpglib.c b/src/interfaces/ecpg/lib/ecpglib.c index 8e4f8cdd25..ecbd235461 100644 --- a/src/interfaces/ecpg/lib/ecpglib.c +++ b/src/interfaces/ecpg/lib/ecpglib.c @@ -895,7 +895,9 @@ ECPGdisconnect(int lineno, const char *connection_name) return false; } else + { ECPGfinish(con); + } } return true; diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index e90d0731c4..da392d2054 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global MAJOR_VERSION=2 MINOR_VERSION=3 -PATCHLEVEL=3 +PATCHLEVEL=4 CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \ -DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \ diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 9a7b348f61..6f320b06d5 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -4032,12 +4032,24 @@ connection_target: database_name opt_server opt_port } | db_prefix server opt_port '/' database_name opt_options { - /* new style: esql:postgresql://server[:port][/dbname] */ + /* new style: :postgresql://server[:port][/dbname] */ if (strncmp($2, "://", 3) != 0) { sprintf(errortext, "parse error at or near '%s'", $2); yyerror(errortext); } + + if (strncmp($1, "unix", 4) == 0 && strncmp($2, "localhost", 9) != 0) + { + sprintf(errortext, "unix domain sockets only work on 'localhost'"); + yyerror(errortext); + } + + if (strncmp($1, "unix", 4) != 0 && strncmp($1, "tcp", 3) != 0) + { + sprintf(errortext, "only protocols 'tcp' and 'unix' are supported"); + yyerror(errortext); + } $$ = make4_str(make5_str(make1_str("\""), $1, $2, $3, make1_str("/")), $5, $6, make1_str("\"")); } @@ -4061,7 +4073,7 @@ db_prefix: ident cvariable yyerror(errortext); } - if (strcmp($1, "esql") != 0 && strcmp($1, "ecpg") != 0 && strcmp($1, "sql") != 0 && strcmp($1, "isql") != 0 && strcmp($1, "proc") != 0) + if (strcmp($1, "tcp") != 0 && strcmp($1, "unix") != 0) { sprintf(errortext, "Illegal connection type %s", $1); yyerror(errortext); diff --git a/src/interfaces/ecpg/preproc/type.c b/src/interfaces/ecpg/preproc/type.c index 7f4041de3b..dd395c80eb 100644 --- a/src/interfaces/ecpg/preproc/type.c +++ b/src/interfaces/ecpg/preproc/type.c @@ -291,7 +291,9 @@ ECPGdump_a_struct(FILE *o, const char *name, const char * ind_name, long arrsiz, offset = obuf; } else + { offset = offsetarg; + } sprintf(pbuf, "%s%s.", prefix ? prefix : "", name); prefix = pbuf; @@ -347,7 +349,9 @@ ECPGfree_type(struct ECPGtype * typ) free(typ->u.members); } else + { abort(); + } } free(typ); } diff --git a/src/interfaces/ecpg/test/test2.pgc b/src/interfaces/ecpg/test/test2.pgc index 324a63b941..bfad1a9493 100644 --- a/src/interfaces/ecpg/test/test2.pgc +++ b/src/interfaces/ecpg/test/test2.pgc @@ -26,7 +26,7 @@ exec sql end declare section; ECPGdebug(1, dbgs); strcpy(msg, "connect"); - exec sql connect to mm; + exec sql connect to tcp:postgresql://localhost:5432/mm; strcpy(msg, "create"); exec sql create table meskes(name char(8), born integer, age smallint, married char(8));