commit 9c94635d8e2313202cd8c218da7b04cb913fb5b4 Author: Böszörményi Zoltán Date: Wed Nov 20 10:34:48 2013 +0100 ECPG: Add EXEC SQL CLOSE C to the test. diff --git a/src/interfaces/ecpg/test/expected/sql-fetch.c b/src/interfaces/ecpg/test/expected/sql-fetch.c index db7a0c2..c6be49c 100644 --- a/src/interfaces/ecpg/test/expected/sql-fetch.c +++ b/src/interfaces/ecpg/test/expected/sql-fetch.c @@ -162,24 +162,34 @@ if (sqlca.sqlcode < 0) sqlprint();} printf("%d: %s\n", i, str); - /* declare D cursor for select * from My_Table where Item1 = $1 */ + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close C", ECPGt_EOIT, ECPGt_EORT); #line 42 "fetch.pgc" +if (sqlca.sqlwarn[0] == 'W') sqlprint(); +#line 42 "fetch.pgc" + +if (sqlca.sqlcode < 0) sqlprint();} +#line 42 "fetch.pgc" + + + /* declare D cursor for select * from My_Table where Item1 = $1 */ +#line 44 "fetch.pgc" + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare D cursor for select * from My_Table where Item1 = $1", ECPGt_const,"1",(long)1,(long)1,strlen("1"), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); -#line 44 "fetch.pgc" +#line 46 "fetch.pgc" if (sqlca.sqlwarn[0] == 'W') sqlprint(); -#line 44 "fetch.pgc" +#line 46 "fetch.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 44 "fetch.pgc" +#line 46 "fetch.pgc" /* exec sql whenever not found break ; */ -#line 46 "fetch.pgc" +#line 48 "fetch.pgc" while (1) { { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch 1 in D", ECPGt_EOIT, @@ -187,47 +197,47 @@ if (sqlca.sqlcode < 0) sqlprint();} ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_char,(str),(long)25,(long)1,(25)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); -#line 48 "fetch.pgc" +#line 50 "fetch.pgc" if (sqlca.sqlcode == ECPG_NOT_FOUND) break; -#line 48 "fetch.pgc" +#line 50 "fetch.pgc" if (sqlca.sqlwarn[0] == 'W') sqlprint(); -#line 48 "fetch.pgc" +#line 50 "fetch.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 48 "fetch.pgc" +#line 50 "fetch.pgc" printf("%d: %s\n", i, str); } { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close D", ECPGt_EOIT, ECPGt_EORT); -#line 51 "fetch.pgc" +#line 53 "fetch.pgc" if (sqlca.sqlwarn[0] == 'W') sqlprint(); -#line 51 "fetch.pgc" +#line 53 "fetch.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 51 "fetch.pgc" +#line 53 "fetch.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table My_Table", ECPGt_EOIT, ECPGt_EORT); -#line 53 "fetch.pgc" +#line 55 "fetch.pgc" if (sqlca.sqlwarn[0] == 'W') sqlprint(); -#line 53 "fetch.pgc" +#line 55 "fetch.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 53 "fetch.pgc" +#line 55 "fetch.pgc" { ECPGdisconnect(__LINE__, "ALL"); -#line 55 "fetch.pgc" +#line 57 "fetch.pgc" if (sqlca.sqlwarn[0] == 'W') sqlprint(); -#line 55 "fetch.pgc" +#line 57 "fetch.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 55 "fetch.pgc" +#line 57 "fetch.pgc" return 0; diff --git a/src/interfaces/ecpg/test/expected/sql-fetch.stderr b/src/interfaces/ecpg/test/expected/sql-fetch.stderr index 2284218..246139b 100644 --- a/src/interfaces/ecpg/test/expected/sql-fetch.stderr +++ b/src/interfaces/ecpg/test/expected/sql-fetch.stderr @@ -102,46 +102,49 @@ [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_get_data on line 39: RESULT: text4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 44: query: declare D cursor for select * from My_Table where Item1 = $1; with 1 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 42: query: close C; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 44: using PQexecParams +[NO_PID]: ecpg_execute on line 42: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: free_params on line 44: parameter 1 = 1 +[NO_PID]: ecpg_execute on line 42: OK: CLOSE CURSOR [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 44: OK: DECLARE CURSOR +[NO_PID]: ecpg_execute on line 46: query: declare D cursor for select * from My_Table where Item1 = $1; with 1 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 48: query: fetch 1 in D; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 46: using PQexecParams [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 48: using PQexec +[NO_PID]: free_params on line 46: parameter 1 = 1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 48: correctly got 1 tuples with 2 fields +[NO_PID]: ecpg_execute on line 46: OK: DECLARE CURSOR [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 48: RESULT: 1 offset: -1; array: no +[NO_PID]: ecpg_execute on line 50: query: fetch 1 in D; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 48: RESULT: text1 offset: -1; array: no +[NO_PID]: ecpg_execute on line 50: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 48: query: fetch 1 in D; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 50: correctly got 1 tuples with 2 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 48: using PQexec +[NO_PID]: ecpg_get_data on line 50: RESULT: 1 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 48: correctly got 0 tuples with 2 fields +[NO_PID]: ecpg_get_data on line 50: RESULT: text1 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: raising sqlcode 100 on line 48: no data found on line 48 -[NO_PID]: sqlca: code: 100, state: 02000 -[NO_PID]: ecpg_execute on line 51: query: close D; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 50: query: fetch 1 in D; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 51: using PQexec +[NO_PID]: ecpg_execute on line 50: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 51: OK: CLOSE CURSOR +[NO_PID]: ecpg_execute on line 50: correctly got 0 tuples with 2 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 53: query: drop table My_Table; with 0 parameter(s) on connection regress1 +[NO_PID]: raising sqlcode 100 on line 50: no data found on line 50 +[NO_PID]: sqlca: code: 100, state: 02000 +[NO_PID]: ecpg_execute on line 53: query: close D; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_execute on line 53: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_check_PQresult on line 53: bad response - ERROR: cannot DROP TABLE "my_table" because it is being used by active queries in this session +[NO_PID]: ecpg_execute on line 53: OK: CLOSE CURSOR +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 55: query: drop table My_Table; with 0 parameter(s) on connection regress1 +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 55: using PQexec +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 55: OK: DROP TABLE [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: raising sqlstate 55006 (sqlcode -400): cannot DROP TABLE "my_table" because it is being used by active queries in this session on line 53 -[NO_PID]: sqlca: code: -400, state: 55006 -SQL error: cannot DROP TABLE "my_table" because it is being used by active queries in this session on line 53 [NO_PID]: ecpg_finish: connection regress1 closed [NO_PID]: sqlca: code: 0, state: 00000 diff --git a/src/interfaces/ecpg/test/sql/fetch.pgc b/src/interfaces/ecpg/test/sql/fetch.pgc index e280d27..aade678 100644 --- a/src/interfaces/ecpg/test/sql/fetch.pgc +++ b/src/interfaces/ecpg/test/sql/fetch.pgc @@ -39,6 +39,8 @@ int main() { EXEC SQL FETCH :count IN C INTO :i, :str; printf("%d: %s\n", i, str); + EXEC SQL CLOSE C; + EXEC SQL DECLARE D CURSOR FOR SELECT * FROM My_Table WHERE Item1 = $1; EXEC SQL OPEN D using 1;