aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/ecpg/ChangeLog10
-rw-r--r--src/interfaces/ecpg/lib/ecpglib.c2
-rw-r--r--src/interfaces/ecpg/preproc/Makefile2
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y16
-rw-r--r--src/interfaces/ecpg/preproc/type.c4
-rw-r--r--src/interfaces/ecpg/test/test2.pgc2
6 files changed, 32 insertions, 4 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index bef6e29787b..8131d499f67 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 8e4f8cdd25a..ecbd2354617 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 e90d0731c46..da392d20546 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 9a7b348f619..6f320b06d50 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: <tcp|unix>: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 7f4041de3b5..dd395c80eb9 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 324a63b941b..bfad1a9493b 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));