aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/include/ecpglib.h3
-rw-r--r--src/interfaces/ecpg/preproc/pgc.l11
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y6
3 files changed, 15 insertions, 5 deletions
diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h
index d3da4a40559..e5c3f193151 100644
--- a/src/interfaces/ecpg/include/ecpglib.h
+++ b/src/interfaces/ecpg/include/ecpglib.h
@@ -49,9 +49,10 @@ bool ECPGdisconnect(int, const char *);
bool ECPGprepare(int, char *, char *);
bool ECPGdeallocate(int, char *);
bool ECPGdeallocate_all(int);
-char *ECPGprepared_statement(char *);
+char *ECPGprepared_statement(char *);
void ECPGlog(const char *format,...);
+char *ECPGerrmsg(void);
/* print an error message */
void sqlprint(void);
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index 5a8f777033b..7e4b5fadd2b 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.105 2003/02/14 16:40:01 meskes Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.106 2003/02/17 14:06:39 meskes Exp $
*
*-------------------------------------------------------------------------
*/
@@ -969,7 +969,8 @@ cppline {space}*#(.*\\{space})*.*
yyin = NULL;
/* If file name is enclosed in '"' remove these and look only in '.' */
- if (yytext[0] == '"' && yytext[i] == '"')
+ /* Informix does look into all include paths though, except filename starts with '/' */
+ if ((yytext[0] == '"' && yytext[i] == '"') && (compat != ECPG_COMPAT_INFORMIX || yytext[0] == '/'))
{
yytext[i] = '\0';
memmove(yytext, yytext+1, strlen(yytext));
@@ -988,6 +989,12 @@ cppline {space}*#(.*\\{space})*.*
}
else
{
+ if (yytext[0] == '"' && yytext[i] == '"')
+ {
+ yytext[i] = '\0';
+ memmove(yytext, yytext+1, strlen(yytext));
+ }
+
for (ip = include_paths; yyin == NULL && ip != NULL; ip = ip->next)
{
if (strlen(ip->path) + strlen(yytext) + 3 > MAXPGPATH)
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index a8770f9e6ca..86dc68b5b80 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.208 2003/02/14 13:17:13 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.209 2003/02/17 14:06:40 meskes Exp $ */
/* Copyright comment */
%{
@@ -153,7 +153,7 @@ make_name(void)
/* special embedded SQL token */
%token SQL_ALLOCATE SQL_AUTOCOMMIT SQL_BOOL SQL_BREAK
SQL_CALL SQL_CARDINALITY SQL_CONNECT SQL_CONNECTION
- SQL_CONTINUE SQL_COUNT SQL_CURRENT SQL_DATA
+ SQL_CONTINUE SQL_COUNT SQL_CURRENT SQL_DATA
SQL_DATETIME_INTERVAL_CODE
SQL_DATETIME_INTERVAL_PRECISION
SQL_DESCRIPTOR SQL_DISCONNECT SQL_ENUM SQL_FOUND
@@ -3889,6 +3889,8 @@ ECPGConnect: SQL_CONNECT TO connection_target opt_connection_name opt_user
/* also allow ORACLE syntax */
| SQL_CONNECT ora_user
{ $$ = cat_str(3, make_str("NULL,"), $2, make_str(",NULL")); }
+ | DATABASE connection_target
+ { $$ = cat2_str($2, make_str(",NULL,NULL,NULL")); }
;
connection_target: database_name opt_server opt_port