postgres.git / summary / log / commit / refs

commit    2164a24686bf7d6b10a9f9a9952954c76bc4bfa1
Author:   Michael Meskes <meskes@postgresql.org>
Date:     Fri Nov 27 16:11:50 2009 +0000
First released in: 9.0.0, 8.4.2

    Remove */ characters from declare cursor statements before putting them into a
    comment.


src/interfaces/ecpg/preproc/ecpg.addons | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/interfaces/ecpg/preproc/ecpg.addons b/src/interfaces/ecpg/preproc/ecpg.addons index d864dfbdf7a..757200c410c 100644 --- 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.4 2009/01/30 12:53:43 petere Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.addons,v 1.4.2.1 2009/11/27 16:11:50 meskes Exp $ */ ECPG: stmtClosePortalStmt block { @@ -238,6 +238,7 @@ ECPG: ExecuteStmtEXECUTEprepared_nameexecute_param_clauseexecute_rest block ECPG: DeclareCursorStmtDECLAREnamecursor_optionsCURSORopt_holdFORSelectStmt block { struct cursor *ptr, *this; + char *c1, *c2; for (ptr = cur; ptr != NULL; ptr = ptr->next) { @@ -257,10 +258,18 @@ ECPG: DeclareCursorStmtDECLAREnamecursor_optionsCURSORopt_holdFORSelectStmt bloc argsinsert = argsresult = NULL; cur = this; + c1 = mm_strdup(this->command); + if ((c2 = strstr(c1, "*/")) != NULL) + { + /* We put this text into a comment, so we better remove [*][/]. */ + c2[0] = '.'; + c2[1] = '.'; + } + if (INFORMIX_MODE) - $$ = cat_str(5, adjust_informix(this->argsinsert), adjust_informix(this->argsresult), make_str("/*"), mm_strdup(this->command), make_str("*/")); + $$ = cat_str(5, adjust_informix(this->argsinsert), adjust_informix(this->argsresult), make_str("/*"), c1, make_str("*/")); else - $$ = cat_str(3, make_str("/*"), mm_strdup(this->command), make_str("*/")); + $$ = cat_str(3, make_str("/*"), c1, make_str("*/")); } ECPG: opt_hold block { [parent: 7c605d5dfa80]