mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
- Finished major rewrite to use new protocol version
- Really prepare statements - Added more regression tests - Added auto-prepare mode - Use '$n' for positional variables, '?' is still possible via ecpg option - Cleaned up the sources a little bit
This commit is contained in:
src/interfaces/ecpg
ChangeLog
compatlib
ecpglib
include
pgtypeslib
preproc
test
Makefile
compat_informix
connect
ecpg_scheduleecpg_schedule_tcpexpected
compat_informix-dec_test.ccompat_informix-rnull.ccompat_informix-rnull.stderrcompat_informix-test_informix.ccompat_informix-test_informix.stderrcompat_informix-test_informix2.ccompat_informix-test_informix2.stderrconnect-test1.stderrconnect-test2.cconnect-test2.stderrconnect-test3.cconnect-test3.stderrconnect-test5.cconnect-test5.stderrpgtypeslib-dt_test.cpgtypeslib-dt_test.stderrpgtypeslib-num_test.cpgtypeslib-num_test.stderrpreproc-array_of_struct.cpreproc-array_of_struct.stderrpreproc-array_of_struct.stdoutpreproc-autoprep.cpreproc-autoprep.stderrpreproc-autoprep.stdoutpreproc-define.cpreproc-define.stderrpreproc-init.cpreproc-type.cpreproc-type.stderrpreproc-variable.cpreproc-variable.stderrpreproc-whenever.cpreproc-whenever.stderrsql-array.csql-array.stderrsql-binary.csql-binary.stderrsql-code100.csql-code100.stderrsql-copystdout.csql-copystdout.stderrsql-define.csql-define.stderrsql-desc.csql-desc.stderrsql-dynalloc.csql-dynalloc.stderrsql-dynalloc2.csql-dynalloc2.stderrsql-dyntest.csql-dyntest.stderrsql-execute.csql-execute.stderrsql-fetch.csql-fetch.stderrsql-func.csql-func.stderrsql-func.stdoutsql-indicators.csql-indicators.stderrsql-insupd.csql-insupd.stderrsql-oldexec.csql-oldexec.stderrsql-oldexec.stdoutsql-parser.csql-parser.stderrsql-quote.csql-quote.stderrsql-quote.stdoutsql-show.csql-show.stderrthread-thread.cthread-thread.stdoutthread-thread_implicit.cthread-thread_implicit.stdout
preproc
sql
265
src/interfaces/ecpg/test/expected/preproc-array_of_struct.c
Normal file
265
src/interfaces/ecpg/test/expected/preproc-array_of_struct.c
Normal file
@ -0,0 +1,265 @@
|
||||
/* Processed by ecpg (regression mode) */
|
||||
/* These include files are added by the preprocessor */
|
||||
#include <ecpgtype.h>
|
||||
#include <ecpglib.h>
|
||||
#include <ecpgerrno.h>
|
||||
#include <sqlca.h>
|
||||
/* End of automatic include section */
|
||||
#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
|
||||
|
||||
#line 1 "array_of_struct.pgc"
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
#line 1 "regression.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#line 3 "array_of_struct.pgc"
|
||||
|
||||
|
||||
/* exec sql whenever sqlerror sqlprint ; */
|
||||
#line 5 "array_of_struct.pgc"
|
||||
|
||||
/* exec sql whenever sql_warning sqlprint ; */
|
||||
#line 6 "array_of_struct.pgc"
|
||||
|
||||
/* exec sql whenever not found sqlprint ; */
|
||||
#line 7 "array_of_struct.pgc"
|
||||
|
||||
|
||||
typedef struct {
|
||||
#line 12 "array_of_struct.pgc"
|
||||
struct varchar_name_12 { int len; char arr[ 50 ]; } name ;
|
||||
|
||||
#line 13 "array_of_struct.pgc"
|
||||
int phone ;
|
||||
} customer ;
|
||||
#line 14 "array_of_struct.pgc"
|
||||
|
||||
|
||||
typedef struct ind {
|
||||
#line 19 "array_of_struct.pgc"
|
||||
short name_ind ;
|
||||
|
||||
#line 20 "array_of_struct.pgc"
|
||||
short phone_ind ;
|
||||
} cust_ind ;
|
||||
#line 21 "array_of_struct.pgc"
|
||||
|
||||
|
||||
int main( int argc, char * argv[] )
|
||||
{
|
||||
/* exec sql begin declare section */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
#line 30 "array_of_struct.pgc"
|
||||
struct varchar_name_30 { int len; char arr[ 50 ]; } name ;
|
||||
|
||||
#line 31 "array_of_struct.pgc"
|
||||
int phone ;
|
||||
} customer2 ;
|
||||
|
||||
#line 32 "array_of_struct.pgc"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#line 26 "array_of_struct.pgc"
|
||||
customer custs1 [ 10 ] ;
|
||||
|
||||
#line 27 "array_of_struct.pgc"
|
||||
cust_ind inds [ 10 ] ;
|
||||
|
||||
#line 33 "array_of_struct.pgc"
|
||||
customer2 custs2 [ 10 ] ;
|
||||
|
||||
#line 38 "array_of_struct.pgc"
|
||||
struct customer3 {
|
||||
#line 36 "array_of_struct.pgc"
|
||||
struct varchar_name_36 { int len; char arr[ 50 ]; } name ;
|
||||
|
||||
#line 37 "array_of_struct.pgc"
|
||||
int phone ;
|
||||
} custs3 [ 10 ] ;
|
||||
|
||||
#line 43 "array_of_struct.pgc"
|
||||
struct customer4 {
|
||||
#line 41 "array_of_struct.pgc"
|
||||
struct varchar_name_41 { int len; char arr[ 50 ]; } name ;
|
||||
|
||||
#line 42 "array_of_struct.pgc"
|
||||
int phone ;
|
||||
} custs4 ;
|
||||
|
||||
#line 44 "array_of_struct.pgc"
|
||||
int r ;
|
||||
/* exec sql end declare section */
|
||||
#line 45 "array_of_struct.pgc"
|
||||
|
||||
|
||||
ECPGdebug(1, stderr);
|
||||
|
||||
{ ECPGconnect(__LINE__, 0, "regress1" , NULL, NULL , NULL, 0);
|
||||
#line 49 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 49 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 49 "array_of_struct.pgc"
|
||||
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, 0, 0, "create table customers ( c varchar ( 50 ) , p int ) ", ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 51 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 51 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 51 "array_of_struct.pgc"
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, 0, 0, "insert into customers values ( 'John Doe' , '12345' ) ", ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 52 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode == ECPG_NOT_FOUND) sqlprint();
|
||||
#line 52 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 52 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 52 "array_of_struct.pgc"
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, 0, 0, "insert into customers values ( 'Jane Doe' , '67890' ) ", ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 53 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode == ECPG_NOT_FOUND) sqlprint();
|
||||
#line 53 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 53 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 53 "array_of_struct.pgc"
|
||||
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, 0, 0, "select * from customers limit 2 ", ECPGt_EOIT,
|
||||
ECPGt_varchar,&(custs1->name),(long)50,(long)10,sizeof( customer ),
|
||||
ECPGt_short,&(inds->name_ind),(long)1,(long)10,sizeof( struct ind ),
|
||||
ECPGt_int,&(custs1->phone),(long)1,(long)10,sizeof( customer ),
|
||||
ECPGt_short,&(inds->phone_ind),(long)1,(long)10,sizeof( struct ind ), ECPGt_EORT);
|
||||
#line 55 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode == ECPG_NOT_FOUND) sqlprint();
|
||||
#line 55 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 55 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 55 "array_of_struct.pgc"
|
||||
|
||||
printf("custs1:\n");
|
||||
for (r = 0; r < 2; r++)
|
||||
{
|
||||
printf( "name - %s\n", custs1[r].name.arr );
|
||||
printf( "phone - %d\n", custs1[r].phone );
|
||||
}
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, 0, 0, "select * from customers limit 2 ", ECPGt_EOIT,
|
||||
ECPGt_varchar,&(custs2->name),(long)50,(long)10,sizeof( customer2 ),
|
||||
ECPGt_short,&(inds->name_ind),(long)1,(long)10,sizeof( struct ind ),
|
||||
ECPGt_int,&(custs2->phone),(long)1,(long)10,sizeof( customer2 ),
|
||||
ECPGt_short,&(inds->phone_ind),(long)1,(long)10,sizeof( struct ind ), ECPGt_EORT);
|
||||
#line 63 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode == ECPG_NOT_FOUND) sqlprint();
|
||||
#line 63 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 63 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 63 "array_of_struct.pgc"
|
||||
|
||||
printf("\ncusts2:\n");
|
||||
for (r = 0; r < 2; r++)
|
||||
{
|
||||
printf( "name - %s\n", custs2[r].name.arr );
|
||||
printf( "phone - %d\n", custs2[r].phone );
|
||||
}
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, 0, 0, "select * from customers limit 2 ", ECPGt_EOIT,
|
||||
ECPGt_varchar,&(custs3->name),(long)50,(long)10,sizeof( struct customer3 ),
|
||||
ECPGt_short,&(inds->name_ind),(long)1,(long)10,sizeof( struct ind ),
|
||||
ECPGt_int,&(custs3->phone),(long)1,(long)10,sizeof( struct customer3 ),
|
||||
ECPGt_short,&(inds->phone_ind),(long)1,(long)10,sizeof( struct ind ), ECPGt_EORT);
|
||||
#line 71 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode == ECPG_NOT_FOUND) sqlprint();
|
||||
#line 71 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 71 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 71 "array_of_struct.pgc"
|
||||
|
||||
printf("\ncusts3:\n");
|
||||
for (r = 0; r < 2; r++)
|
||||
{
|
||||
printf( "name - %s\n", custs3[r].name.arr );
|
||||
printf( "phone - %d\n", custs3[r].phone );
|
||||
}
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, 0, 0, "select * from customers limit 1 ", ECPGt_EOIT,
|
||||
ECPGt_varchar,&(custs4.name),(long)50,(long)1,sizeof(struct varchar_name_41),
|
||||
ECPGt_short,&(inds[0].name_ind),(long)1,(long)1,sizeof(short),
|
||||
ECPGt_int,&(custs4.phone),(long)1,(long)1,sizeof(int),
|
||||
ECPGt_short,&(inds[0].phone_ind),(long)1,(long)1,sizeof(short), ECPGt_EORT);
|
||||
#line 79 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode == ECPG_NOT_FOUND) sqlprint();
|
||||
#line 79 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 79 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 79 "array_of_struct.pgc"
|
||||
|
||||
printf("\ncusts4:\n");
|
||||
printf( "name - %s\n", custs4.name.arr );
|
||||
printf( "phone - %d\n", custs4.phone );
|
||||
|
||||
{ ECPGdisconnect(__LINE__, "ALL");
|
||||
#line 84 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlwarn[0] == 'W') sqlprint();
|
||||
#line 84 "array_of_struct.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 84 "array_of_struct.pgc"
|
||||
|
||||
|
||||
return( 0 );
|
||||
}
|
Reference in New Issue
Block a user