]> granicus.if.org Git - postgresql/commitdiff
Simplified parsing of connect rule.
authorMichael Meskes <meskes@postgresql.org>
Tue, 17 Oct 2000 06:15:29 +0000 (06:15 +0000)
committerMichael Meskes <meskes@postgresql.org>
Tue, 17 Oct 2000 06:15:29 +0000 (06:15 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/preproc/preproc.y
src/interfaces/ecpg/test/test_init.pgc

index 9fe53ee62a96503eac67f2c62b75e56b935d56d1..9a9e95273928dd2fc64fbe1ea7adc709973573d0 100644 (file)
@@ -969,5 +969,9 @@ Thu Oct 12 20:13:00 CEST 2000
 Mon Oct 16 21:33:17 CEST 2000
 
        - Fixed handling of variables in connect rule.
+
+Tue Oct 17 08:09:16 CEST 2000
+
+       - Simplified parsing ofr connect rule.
        - Set ecpg version to 2.8.0. 
        - Set library version to 3.2.0.
index 804d3be4579e09d451bc815876125f7c726a5ef6..4c6b6eb2ec5b5cac6d5c2d0485f128bfa68a4e04 100644 (file)
@@ -465,12 +465,7 @@ stmt:  AlterSchemaStmt                     { output_statement($1, 0, NULL, connection); }
                                                if (connection)
                                                        mmerror(ET_ERROR, "no at option for connect statement.\n");
 
-                                               fputs("{ ECPGconnect(__LINE__,", yyout);
-
-                                               if ($1[1] == '?')
-                                                       fprintf(yyout, "%s, %s, %d);", argsinsert->variable->name, $1 + sizeof("\"?\","), autocommit);
-                                               else                            
-                                                       fprintf(yyout, "%s, %d); ", $1, autocommit);
+                                               fprintf(yyout, "{ ECPGconnect(__LINE__, %s, %d); ", $1, autocommit);
 
                                                reset_variables();
 
@@ -3975,6 +3970,8 @@ connection_target: database_name opt_server opt_port
                {
                  if ($1[0] == '\"')
                        $$ = $1;
+                 else if (strcmp($1, "?") == 0)
+                       $$ = mm_strdup(argsinsert->variable->name);
                  else
                        $$ = make3_str(make_str("\""), $1, make_str("\""));
                }
index 86e6b6da848fac09c60908fbd67cdb1206018287..980319981c8bb8a34ca0c5b0ca78ca04e2aef1eb 100644 (file)
@@ -34,8 +34,11 @@ int j=1?1:2;
 /*int e=y->member; /* compile error */
 /*int c=10>>2; /* compile error */
 /*bool h=2||1; /* compile error */
+long long  iax;
 exec sql end declare section;
 
+iax = 40000000000LL;
+
 /* not working */
 int f=fa();