diff options
author | Michael Meskes <meskes@postgresql.org> | 2015-02-10 12:00:13 +0100 |
---|---|---|
committer | Michael Meskes <meskes@postgresql.org> | 2015-02-10 12:04:10 +0100 |
commit | 1f393fc923ec77f25fd37e16fd8ccb480df82ebb (patch) | |
tree | e771707dfd308ec99087cdfb601bdb74c07ef032 /src/interfaces/ecpg/test/expected/sql-oldexec.c | |
parent | 025c02420de990c15a90e9e3f86fcfbc5b59ee88 (diff) | |
download | postgresql-1f393fc923ec77f25fd37e16fd8ccb480df82ebb.tar.gz postgresql-1f393fc923ec77f25fd37e16fd8ccb480df82ebb.zip |
Fixed array handling in ecpg.
When ecpg was rewritten to the new protocol version not all variable types
were corrected. This patch rewrites the code for these types to fix that. It
also fixes the documentation to correctly tell the status of array handling.
Diffstat (limited to 'src/interfaces/ecpg/test/expected/sql-oldexec.c')
-rw-r--r-- | src/interfaces/ecpg/test/expected/sql-oldexec.c | 109 |
1 files changed, 45 insertions, 64 deletions
diff --git a/src/interfaces/ecpg/test/expected/sql-oldexec.c b/src/interfaces/ecpg/test/expected/sql-oldexec.c index 0c0239cf45e..df825c26fbf 100644 --- a/src/interfaces/ecpg/test/expected/sql-oldexec.c +++ b/src/interfaces/ecpg/test/expected/sql-oldexec.c @@ -64,89 +64,90 @@ main(void) if (sqlca.sqlcode < 0) sqlprint();} #line 24 "oldexec.pgc" + { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "create table test ( name char ( 8 ) , amount int , letter char ( 1 ) )", ECPGt_EOIT, ECPGt_EORT); -#line 25 "oldexec.pgc" +#line 26 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 25 "oldexec.pgc" +#line 26 "oldexec.pgc" { ECPGtrans(__LINE__, NULL, "commit"); -#line 26 "oldexec.pgc" +#line 27 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 26 "oldexec.pgc" +#line 27 "oldexec.pgc" sprintf(command, "insert into test (name, amount, letter) values ('db: ''r1''', 1, 'f')"); { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_exec_immediate, command, ECPGt_EOIT, ECPGt_EORT); -#line 29 "oldexec.pgc" +#line 30 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 29 "oldexec.pgc" +#line 30 "oldexec.pgc" sprintf(command, "insert into test (name, amount, letter) values ('db: ''r1''', 2, 't')"); { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_exec_immediate, command, ECPGt_EOIT, ECPGt_EORT); -#line 32 "oldexec.pgc" +#line 33 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 32 "oldexec.pgc" +#line 33 "oldexec.pgc" sprintf(command, "insert into test (name, amount, letter) select name, amount+10, letter from test"); { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_exec_immediate, command, ECPGt_EOIT, ECPGt_EORT); -#line 35 "oldexec.pgc" +#line 36 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 35 "oldexec.pgc" +#line 36 "oldexec.pgc" printf("Inserted %ld tuples via execute immediate\n", sqlca.sqlerrd[2]); sprintf(command, "insert into test (name, amount, letter) select name, amount+$1, letter from test"); { ECPGprepare(__LINE__, NULL, 1, "i", command); -#line 40 "oldexec.pgc" +#line 41 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 40 "oldexec.pgc" +#line 41 "oldexec.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_execute, "i", ECPGt_int,&(increment),(long)1,(long)1,sizeof(int), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); -#line 41 "oldexec.pgc" +#line 42 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 41 "oldexec.pgc" +#line 42 "oldexec.pgc" printf("Inserted %ld tuples via prepared execute\n", sqlca.sqlerrd[2]); { ECPGtrans(__LINE__, NULL, "commit"); -#line 45 "oldexec.pgc" +#line 46 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 45 "oldexec.pgc" +#line 46 "oldexec.pgc" sprintf (command, "select * from test"); { ECPGprepare(__LINE__, NULL, 1, "f", command); -#line 49 "oldexec.pgc" +#line 50 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 49 "oldexec.pgc" +#line 50 "oldexec.pgc" /* declare CUR cursor for $1 */ -#line 50 "oldexec.pgc" +#line 51 "oldexec.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "declare CUR cursor for $1", ECPGt_char_variable,(ECPGprepared_statement(NULL, "f", __LINE__)),(long)1,(long)1,(1)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); -#line 52 "oldexec.pgc" +#line 53 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 52 "oldexec.pgc" +#line 53 "oldexec.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "fetch 8 in CUR", ECPGt_EOIT, ECPGt_char,(name),(long)8,(long)8,(8)*sizeof(char), @@ -155,48 +156,38 @@ if (sqlca.sqlcode < 0) sqlprint();} ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_char,(letter),(long)1,(long)8,(1)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); -#line 53 "oldexec.pgc" +#line 54 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 53 "oldexec.pgc" +#line 54 "oldexec.pgc" for (i=0, j=sqlca.sqlerrd[2]; i<j; i++) { - /* exec sql begin declare section */ - - - -#line 58 "oldexec.pgc" - char n [ 8 ] , l = letter [ i ] [ 0 ] ; - -#line 59 "oldexec.pgc" - int a = amount [ i ] ; -/* exec sql end declare section */ -#line 60 "oldexec.pgc" - + char n[8], l = letter[i][0]; + int a = amount[i]; strncpy(n, name[i], 8); printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l); } { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "close CUR", ECPGt_EOIT, ECPGt_EORT); -#line 66 "oldexec.pgc" +#line 65 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 66 "oldexec.pgc" +#line 65 "oldexec.pgc" sprintf (command, "select * from test where ? = amount"); { ECPGprepare(__LINE__, NULL, 1, "f", command); -#line 70 "oldexec.pgc" +#line 69 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 70 "oldexec.pgc" +#line 69 "oldexec.pgc" /* declare CUR3 cursor for $1 */ -#line 71 "oldexec.pgc" +#line 70 "oldexec.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "declare CUR3 cursor for $1", @@ -204,10 +195,10 @@ if (sqlca.sqlcode < 0) sqlprint();} ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_const,"1",(long)1,(long)1,strlen("1"), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); -#line 73 "oldexec.pgc" +#line 72 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 73 "oldexec.pgc" +#line 72 "oldexec.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "fetch in CUR3", ECPGt_EOIT, ECPGt_char,(name),(long)8,(long)8,(8)*sizeof(char), @@ -216,54 +207,44 @@ if (sqlca.sqlcode < 0) sqlprint();} ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_char,(letter),(long)1,(long)8,(1)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); -#line 74 "oldexec.pgc" +#line 73 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 74 "oldexec.pgc" +#line 73 "oldexec.pgc" for (i=0, j=sqlca.sqlerrd[2]; i<j; i++) { - /* exec sql begin declare section */ - - - -#line 79 "oldexec.pgc" - char n [ 8 ] , l = letter [ i ] [ 0 ] ; - -#line 80 "oldexec.pgc" - int a = amount [ i ] ; -/* exec sql end declare section */ -#line 81 "oldexec.pgc" - + char n[8], l = letter[i][0]; + int a = amount[i]; strncpy(n, name[i], 8); printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l); } { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "close CUR3", ECPGt_EOIT, ECPGt_EORT); -#line 87 "oldexec.pgc" +#line 84 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 87 "oldexec.pgc" +#line 84 "oldexec.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 1, ECPGst_normal, "drop table test", ECPGt_EOIT, ECPGt_EORT); -#line 88 "oldexec.pgc" +#line 85 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 88 "oldexec.pgc" +#line 85 "oldexec.pgc" { ECPGtrans(__LINE__, NULL, "commit"); -#line 89 "oldexec.pgc" +#line 86 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 89 "oldexec.pgc" +#line 86 "oldexec.pgc" { ECPGdisconnect(__LINE__, "CURRENT"); -#line 90 "oldexec.pgc" +#line 87 "oldexec.pgc" if (sqlca.sqlcode < 0) sqlprint();} -#line 90 "oldexec.pgc" +#line 87 "oldexec.pgc" return (0); |