greenplumn compat_informix-describe 源码
greenplumn compat_informix-describe 代码
文件路径:/src/interfaces/ecpg/test/expected/compat_informix-describe.c
/* Processed by ecpg (regression mode) */
/* These include files are added by the preprocessor */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* Needed for informix compatibility */
#include <ecpg_informix.h>
/* End of automatic include section */
#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
#line 1 "describe.pgc"
#include <stdlib.h>
#include <string.h>
#line 1 "regression.h"
#line 4 "describe.pgc"
#line 1 "sqlda.h"
#ifndef ECPG_SQLDA_H
#define ECPG_SQLDA_H
#ifdef _ECPG_INFORMIX_H
#include "sqlda-compat.h"
typedef struct sqlvar_compat sqlvar_t;
typedef struct sqlda_compat sqlda_t;
#else
#include "sqlda-native.h"
typedef struct sqlvar_struct sqlvar_t;
typedef struct sqlda_struct sqlda_t;
#endif
#endif /* ECPG_SQLDA_H */
#line 5 "describe.pgc"
/* exec sql whenever sqlerror stop ; */
#line 7 "describe.pgc"
sqlda_t *sqlda1, *sqlda2, *sqlda3;
int
main (void)
{
/* exec sql begin declare section */
#line 15 "describe.pgc"
char * stmt1 = "SELECT id, t FROM descr_t1" ;
#line 16 "describe.pgc"
char * stmt2 = "SELECT id, t FROM descr_t1 WHERE id = -1" ;
#line 17 "describe.pgc"
int i , count1 , count2 ;
#line 18 "describe.pgc"
char field_name1 [ 30 ] = "not set" ;
#line 19 "describe.pgc"
char field_name2 [ 30 ] = "not set" ;
/* exec sql end declare section */
#line 20 "describe.pgc"
char msg[128];
ECPGdebug(1, stderr);
strcpy(msg, "connect");
{ ECPGconnect(__LINE__, 1, "ecpg1_regression" , NULL, NULL , NULL, 0);
#line 27 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 27 "describe.pgc"
strcpy(msg, "set");
{ ECPGdo(__LINE__, 1, 1, NULL, 0, ECPGst_normal, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
#line 30 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 30 "describe.pgc"
strcpy(msg, "create");
{ ECPGdo(__LINE__, 1, 1, NULL, 0, ECPGst_normal, "create table descr_t1 ( id serial primary key , t text )", ECPGt_EOIT, ECPGt_EORT);
#line 33 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 33 "describe.pgc"
strcpy(msg, "insert");
{ ECPGdo(__LINE__, 1, 1, NULL, 0, ECPGst_normal, "insert into descr_t1 ( id , t ) values ( default , 'a' )", ECPGt_EOIT, ECPGt_EORT);
#line 36 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 36 "describe.pgc"
{ ECPGdo(__LINE__, 1, 1, NULL, 0, ECPGst_normal, "insert into descr_t1 ( id , t ) values ( default , 'b' )", ECPGt_EOIT, ECPGt_EORT);
#line 37 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 37 "describe.pgc"
{ ECPGdo(__LINE__, 1, 1, NULL, 0, ECPGst_normal, "insert into descr_t1 ( id , t ) values ( default , 'c' )", ECPGt_EOIT, ECPGt_EORT);
#line 38 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 38 "describe.pgc"
{ ECPGdo(__LINE__, 1, 1, NULL, 0, ECPGst_normal, "insert into descr_t1 ( id , t ) values ( default , 'd' )", ECPGt_EOIT, ECPGt_EORT);
#line 39 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 39 "describe.pgc"
strcpy(msg, "commit");
{ ECPGtrans(__LINE__, NULL, "commit");
#line 42 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 42 "describe.pgc"
/*
* Test DESCRIBE with a query producing tuples.
* DESCRIPTOR and SQL DESCRIPTOR are NOT the same in
* Informix-compat mode.
*/
strcpy(msg, "allocate");
ECPGallocate_desc(__LINE__, "desc1");
#line 51 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 51 "describe.pgc"
ECPGallocate_desc(__LINE__, "desc2");
#line 52 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 52 "describe.pgc"
strcpy(msg, "prepare");
{ ECPGprepare(__LINE__, NULL, 0, "st_id1", stmt1);
#line 55 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 55 "describe.pgc"
sqlda1 = sqlda2 = sqlda3 = NULL;
strcpy(msg, "describe");
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
ECPGt_descriptor, "desc1", 1L, 1L, 1L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 60 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
ECPGt_descriptor, "desc2", 1L, 1L, 1L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 61 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
ECPGt_sqlda, &sqlda1, 0L, 0L, 0L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 63 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
ECPGt_sqlda, &sqlda2, 0L, 0L, 0L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 64 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
ECPGt_sqlda, &sqlda3, 0L, 0L, 0L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 65 "describe.pgc"
if (sqlda1 == NULL)
{
printf("sqlda1 NULL\n");
exit(1);
}
if (sqlda2 == NULL)
{
printf("sqlda2 NULL\n");
exit(1);
}
if (sqlda3 == NULL)
{
printf("sqlda3 NULL\n");
exit(1);
}
strcpy(msg, "get descriptor");
{ ECPGget_desc_header(__LINE__, "desc1", &(count1));
#line 86 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 86 "describe.pgc"
{ ECPGget_desc_header(__LINE__, "desc1", &(count2));
#line 87 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 87 "describe.pgc"
if (count1 != count2)
{
printf("count1 (%d) != count2 (%d)\n", count1, count2);
exit(1);
}
if (count1 != sqlda1->sqld)
{
printf("count1 (%d) != sqlda1->sqld (%d)\n", count1, sqlda1->sqld);
exit(1);
}
if (count1 != sqlda2->sqld)
{
printf("count1 (%d) != sqlda2->sqld (%d)\n", count1, sqlda2->sqld);
exit(1);
}
if (count1 != sqlda3->sqld)
{
printf("count1 (%d) != sqlda3->sqld (%d)\n", count1, sqlda3->sqld);
exit(1);
}
for (i = 1; i <= count1; i++)
{
{ ECPGget_desc(__LINE__, "desc1", i,ECPGd_name,
ECPGt_char,(field_name1),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
#line 115 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 115 "describe.pgc"
{ ECPGget_desc(__LINE__, "desc2", i,ECPGd_name,
ECPGt_char,(field_name2),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
#line 116 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 116 "describe.pgc"
printf("%d\n\tfield_name1 '%s'\n\tfield_name2 '%s'\n\t"
"sqlda1 '%s'\n\tsqlda2 '%s'\n\tsqlda3 '%s'\n",
i, field_name1, field_name2,
sqlda1->sqlvar[i-1].sqlname,
sqlda2->sqlvar[i-1].sqlname,
sqlda3->sqlvar[i-1].sqlname);
}
strcpy(msg, "deallocate");
ECPGdeallocate_desc(__LINE__, "desc1");
#line 126 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 126 "describe.pgc"
ECPGdeallocate_desc(__LINE__, "desc2");
#line 127 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 127 "describe.pgc"
free(sqlda1);
free(sqlda2);
free(sqlda3);
{ ECPGdeallocate(__LINE__, 1, NULL, "st_id1");
#line 132 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 132 "describe.pgc"
/* Test DESCRIBE with a query not producing tuples */
strcpy(msg, "allocate");
ECPGallocate_desc(__LINE__, "desc1");
#line 137 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 137 "describe.pgc"
ECPGallocate_desc(__LINE__, "desc2");
#line 138 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 138 "describe.pgc"
strcpy(msg, "prepare");
{ ECPGprepare(__LINE__, NULL, 0, "st_id2", stmt2);
#line 141 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 141 "describe.pgc"
sqlda1 = sqlda2 = sqlda3 = NULL;
strcpy(msg, "describe");
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
ECPGt_descriptor, "desc1", 1L, 1L, 1L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 146 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
ECPGt_descriptor, "desc2", 1L, 1L, 1L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 147 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
ECPGt_sqlda, &sqlda1, 0L, 0L, 0L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 149 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
ECPGt_sqlda, &sqlda2, 0L, 0L, 0L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 150 "describe.pgc"
{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
ECPGt_sqlda, &sqlda3, 0L, 0L, 0L,
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 151 "describe.pgc"
if (sqlda1 == NULL || sqlda2 == NULL || sqlda3 == NULL)
exit(1);
strcpy(msg, "get descriptor");
{ ECPGget_desc_header(__LINE__, "desc1", &(count1));
#line 157 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 157 "describe.pgc"
{ ECPGget_desc_header(__LINE__, "desc1", &(count2));
#line 158 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 158 "describe.pgc"
if (!( count1 == count2 &&
count1 == sqlda1->sqld &&
count1 == sqlda2->sqld &&
count1 == sqlda3->sqld))
exit(1);
for (i = 1; i <= count1; i++)
{
{ ECPGget_desc(__LINE__, "desc1", i,ECPGd_name,
ECPGt_char,(field_name1),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
#line 168 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 168 "describe.pgc"
{ ECPGget_desc(__LINE__, "desc2", i,ECPGd_name,
ECPGt_char,(field_name2),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
#line 169 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 169 "describe.pgc"
printf("%d\n\tfield_name1 '%s'\n\tfield_name2 '%s'\n\t"
"sqlda1 '%s'\n\tsqlda2 '%s'\n\tsqlda3 '%s'\n",
i, field_name1, field_name2,
sqlda1->sqlvar[i-1].sqlname,
sqlda2->sqlvar[i-1].sqlname,
sqlda3->sqlvar[i-1].sqlname);
}
strcpy(msg, "deallocate");
ECPGdeallocate_desc(__LINE__, "desc1");
#line 179 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 179 "describe.pgc"
ECPGdeallocate_desc(__LINE__, "desc2");
#line 180 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);
#line 180 "describe.pgc"
free(sqlda1);
free(sqlda2);
free(sqlda3);
{ ECPGdeallocate(__LINE__, 1, NULL, "st_id2");
#line 185 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 185 "describe.pgc"
/* End test */
strcpy(msg, "drop");
{ ECPGdo(__LINE__, 1, 1, NULL, 0, ECPGst_normal, "drop table descr_t1", ECPGt_EOIT, ECPGt_EORT);
#line 190 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 190 "describe.pgc"
strcpy(msg, "commit");
{ ECPGtrans(__LINE__, NULL, "commit");
#line 193 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 193 "describe.pgc"
strcpy(msg, "disconnect");
{ ECPGdisconnect(__LINE__, "CURRENT");
#line 196 "describe.pgc"
if (sqlca.sqlcode < 0) exit (1);}
#line 196 "describe.pgc"
return 0;
}
相关信息
相关文章
greenplumn compat_informix-charfuncs 源码
greenplumn compat_informix-dec_test 源码
greenplumn compat_informix-rfmtdate 源码
greenplumn compat_informix-rfmtlong 源码
greenplumn compat_informix-rnull 源码
greenplumn compat_informix-sqlda 源码
greenplumn compat_informix-test_informix 源码
greenplumn compat_informix-test_informix2 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦