OSDN Git Service

Added Informix "database" command.
authorMichael Meskes <meskes@postgresql.org>
Mon, 17 Feb 2003 14:06:40 +0000 (14:06 +0000)
committerMichael Meskes <meskes@postgresql.org>
Mon, 17 Feb 2003 14:06:40 +0000 (14:06 +0000)
src/interfaces/ecpg/include/ecpglib.h
src/interfaces/ecpg/preproc/pgc.l
src/interfaces/ecpg/preproc/preproc.y

index d3da4a4..e5c3f19 100644 (file)
@@ -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);
index 5a8f777..7e4b5fa 100644 (file)
@@ -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)
index a8770f9..86dc68b 100644 (file)
@@ -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