git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 654fff2)
ECPG's parser now accepts and handles variables as arguments for the FREE command.
2010年3月21日 11:56:45 +0000 (11:56 +0000)
2010年3月21日 11:56:45 +0000 (11:56 +0000)
Informix allows variables as argument to the embedded SQL command FREE. Given
that we only allow freeing cursors via FREE for compatibility reasons only we
should do the same.


diff --git a/src/interfaces/ecpg/preproc/ecpg.addons b/src/interfaces/ecpg/preproc/ecpg.addons
index de46f51ca721d59b277f734ce20d2ad3cc1d1677..8d33444e5c765853e856225f866cef0ed53d81e1 100644 (file)
--- a/src/interfaces/ecpg/preproc/ecpg.addons
+++ b/src/interfaces/ecpg/preproc/ecpg.addons
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.addons,v 1.16 2010年01月29日 16:28:13 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.addons,v 1.17 2010年03月21日 11:56:45 meskes Exp $ */
ECPG: stmtClosePortalStmt block
{
if (INFORMIX_MODE)
@@ -106,10 +106,13 @@ ECPG: stmtViewStmt rule
| ECPGFree
{
const char *con = connection ? connection : "NULL";
- if (strcmp(1,ドル "all"))
- fprintf(yyout, "{ ECPGdeallocate(__LINE__, %d, %s, \"%s\");", compat, con, 1ドル);
- else
+
+ if (!strcmp(1,ドル "all"))
fprintf(yyout, "{ ECPGdeallocate_all(__LINE__, %d, %s);", compat, con);
+ else if (1ドル[0] == ':')
+ fprintf(yyout, "{ ECPGdeallocate(__LINE__, %d, %s, %s);", compat, con, 1ドル+1);
+ else
+ fprintf(yyout, "{ ECPGdeallocate(__LINE__, %d, %s, \"%s\");", compat, con, 1ドル);
whenever_action(2);
free(1ドル);
diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer
index e9bc9e7ae0315f4cb3728b299c6538b1fbc0534a..436c4fda4bdacba4ff0b0a3a5765189cbdcdcfae 100644 (file)
--- a/src/interfaces/ecpg/preproc/ecpg.trailer
+++ b/src/interfaces/ecpg/preproc/ecpg.trailer
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.22 2010年03月20日 18:53:00 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.23 2010年03月21日 11:56:45 meskes Exp $ */
statements: /*EMPTY*/
| statements statement
@@ -966,7 +966,7 @@ execstring: char_variable
* the exec sql free command to deallocate a previously
* prepared statement
*/
-ECPGFree: SQL_FREE name { $$ = 2ドル; }
+ECPGFree: SQL_FREE cursor_name { $$ = 2ドル; }
| SQL_FREE ALL { $$ = make_str("all"); }
;
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /