Commit 83fa037b authored by Michael Meskes's avatar Michael Meskes

Changed ECPG outofscope handling to always print out statements in the same order

so regression testing is possible,

by Zoltan Boszormenyi
parent f1808565
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.addons,v 1.15 2010/01/26 09:07:31 meskes Exp $ */
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.addons,v 1.16 2010/01/29 16:28:13 meskes Exp $ */
ECPG: stmtClosePortalStmt block
{
if (INFORMIX_MODE)
......@@ -331,16 +331,11 @@ ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectSt
comment = cat_str(3, make_str("/*"), c1, make_str("*/"));
if ((braces_open > 0) && INFORMIX_MODE) /* we're in a function */
$$ = cat_str(4,
adjust_outofscope_cursor_vars(this, true),
adjust_outofscope_cursor_vars(this, false),
$$ = cat_str(3, adjust_outofscope_cursor_vars(this),
make_str("ECPG_informix_reset_sqlca();"),
comment);
else
$$ = cat_str(3,
adjust_outofscope_cursor_vars(this, true),
adjust_outofscope_cursor_vars(this, false),
comment);
$$ = cat2_str(adjust_outofscope_cursor_vars(this), comment);
}
ECPG: ClosePortalStmtCLOSEcursor_name block
{
......
This diff is collapsed.
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.19 2010/01/26 09:07:31 meskes Exp $ */
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.20 2010/01/29 16:28:13 meskes Exp $ */
statements: /*EMPTY*/
| statements statement
......@@ -332,16 +332,11 @@ ECPGCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR prepared
comment = cat_str(3, make_str("/*"), mm_strdup(this->command), make_str("*/"));
if ((braces_open > 0) && INFORMIX_MODE) /* we're in a function */
$$ = cat_str(4,
adjust_outofscope_cursor_vars(this, true),
adjust_outofscope_cursor_vars(this, false),
$$ = cat_str(3, adjust_outofscope_cursor_vars(this),
make_str("ECPG_informix_reset_sqlca();"),
comment);
else
$$ = cat_str(3,
adjust_outofscope_cursor_vars(this, true),
adjust_outofscope_cursor_vars(this, false),
comment);
$$ = cat2_str(adjust_outofscope_cursor_vars(this), comment);
}
;
......
......@@ -287,9 +287,9 @@ if (sqlca.sqlcode < 0) exit (1);}
/* Dynamic cursorname test with INTO list in DECLARE stmt */
strcpy(msg, "declare");
ECPGset_var( 3, &( curname2 ), __LINE__);\
ECPGset_var( 1, ( t ), __LINE__);\
ECPGset_var( 2, &( id ), __LINE__);\
ECPGset_var( 1, &( curname2 ), __LINE__);\
ECPGset_var( 2, ( t ), __LINE__);\
ECPGset_var( 3, &( id ), __LINE__);\
/* declare $0 cursor for select id , t from t1 */
#line 100 "cursor.pgc"
......
......@@ -305,25 +305,19 @@ if (sqlca.sqlcode < 0) exit (1);}
if (sqlca.sqlcode < 0) exit (1);}
#line 85 "outofscope.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into a1 ( id , t , d1 , d2 , c ) values ( default , '\"a\"' , - 1.0 , 'nan' :: float8 , 'a' )", ECPGt_EOIT, ECPGt_EORT);
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into a1 ( id , t , d1 , d2 , c ) values ( default , 'b' , 2.0 , 3 , 'b' )", ECPGt_EOIT, ECPGt_EORT);
#line 86 "outofscope.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 86 "outofscope.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into a1 ( id , t , d1 , d2 , c ) values ( default , 'b' , 2.0 , 3 , 'b' )", ECPGt_EOIT, ECPGt_EORT);
#line 87 "outofscope.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 87 "outofscope.pgc"
strcpy(msg, "commit");
{ ECPGtrans(__LINE__, NULL, "commit");
#line 90 "outofscope.pgc"
#line 89 "outofscope.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 90 "outofscope.pgc"
#line 89 "outofscope.pgc"
/* Test out-of-scope DECLARE/OPEN/FETCH/CLOSE */
......@@ -332,7 +326,7 @@ if (sqlca.sqlcode < 0) exit (1);}
open_cur1();
/* exec sql whenever not found break ; */
#line 97 "outofscope.pgc"
#line 96 "outofscope.pgc"
while (1)
......@@ -353,26 +347,26 @@ if (sqlca.sqlcode < 0) exit (1);}
strcpy(msg, "drop");
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table a1", ECPGt_EOIT, ECPGt_EORT);
#line 116 "outofscope.pgc"
#line 115 "outofscope.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 116 "outofscope.pgc"
#line 115 "outofscope.pgc"
strcpy(msg, "commit");
{ ECPGtrans(__LINE__, NULL, "commit");
#line 119 "outofscope.pgc"
#line 118 "outofscope.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 119 "outofscope.pgc"
#line 118 "outofscope.pgc"
strcpy(msg, "disconnect");
{ ECPGdisconnect(__LINE__, "CURRENT");
#line 122 "outofscope.pgc"
#line 121 "outofscope.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 122 "outofscope.pgc"
#line 121 "outofscope.pgc"
return (0);
......
......@@ -26,19 +26,13 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 85: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 86: query: insert into a1 ( id , t , d1 , d2 , c ) values ( default , '"a"' , - 1.0 , 'nan' :: float8 , 'a' ); with 0 parameter(s) on connection regress1
[NO_PID]: ecpg_execute on line 86: query: insert into a1 ( id , t , d1 , d2 , c ) values ( default , 'b' , 2.0 , 3 , 'b' ); with 0 parameter(s) on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 86: using PQexec
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 86: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 87: query: insert into a1 ( id , t , d1 , d2 , c ) values ( default , 'b' , 2.0 , 3 , 'b' ); with 0 parameter(s) on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 87: using PQexec
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 87: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGtrans on line 90: action "commit"; connection "regress1"
[NO_PID]: ECPGtrans on line 89: action "commit"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 40: query: declare mycur cursor for select * from a1; with 0 parameter(s) on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
......@@ -86,22 +80,6 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: 3 offset: -1; array: yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: "a" offset: -1; array: yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: -1.0 offset: -1; array: yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: NaN offset: -1; array: yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: a offset: -1; array: yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 49: query: fetch mycur; with 0 parameter(s) on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 49: using PQexec
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 49: correctly got 1 tuples with 5 fields
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: 4 offset: -1; array: yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: b offset: -1; array: yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 49: RESULT: 2.0 offset: -1; array: yes
......@@ -124,13 +102,13 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 58: OK: CLOSE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 116: query: drop table a1; with 0 parameter(s) on connection regress1
[NO_PID]: ecpg_execute on line 115: query: drop table a1; with 0 parameter(s) on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 116: using PQexec
[NO_PID]: ecpg_execute on line 115: using PQexec
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 116: OK: DROP TABLE
[NO_PID]: ecpg_execute on line 115: OK: DROP TABLE
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGtrans on line 119: action "commit"; connection "regress1"
[NO_PID]: ECPGtrans on line 118: action "commit"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000
id=1 t='a' d1=1.000000 d2=2.000000 c = 'a '
id=2 t='' (NULL) d1=0.000000 (NULL) d2=0.000000 (NULL) c = '' (NULL)
id=3 t='"a"' d1=-1.000000 d2=nan c = 'a '
id=4 t='b' d1=2.000000 d2=3.000000 c = 'b '
id=3 t='b' d1=2.000000 d2=3.000000 c = 'b '
......@@ -83,7 +83,6 @@ main (void)
strcpy(msg, "insert");
exec sql insert into a1(id, t, d1, d2, c) values (default, 'a', 1.0, 2, 'a');
exec sql insert into a1(id, t, d1, d2, c) values (default, null, null, null, null);
exec sql insert into a1(id, t, d1, d2, c) values (default, '"a"', -1.0, 'nan'::float8, 'a');
exec sql insert into a1(id, t, d1, d2, c) values (default, 'b', 2.0, 3, 'b');
strcpy(msg, "commit");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment