/src/interfaces/ecpg/test/expected/sql-desc.c

https://github.com/robins/postgres · C · 377 lines · 228 code · 141 blank · 8 comment · 36 complexity · d3ff58ec3e0ac564e4288b2628a2ac07 MD5 · raw file

  1. /* Processed by ecpg (regression mode) */
  2. /* These include files are added by the preprocessor */
  3. #include <ecpglib.h>
  4. #include <ecpgerrno.h>
  5. #include <sqlca.h>
  6. /* End of automatic include section */
  7. #define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
  8. #line 1 "desc.pgc"
  9. #line 1 "regression.h"
  10. #line 1 "desc.pgc"
  11. /* exec sql whenever sqlerror sqlprint ; */
  12. #line 2 "desc.pgc"
  13. int
  14. main(void)
  15. {
  16. /* exec sql begin declare section */
  17. #line 8 "desc.pgc"
  18. char * stmt1 = "INSERT INTO test1 VALUES ($1, $2)" ;
  19. #line 9 "desc.pgc"
  20. char * stmt2 = "SELECT * from test1 where a = $1 and b = $2" ;
  21. #line 10 "desc.pgc"
  22. char * stmt3 = "SELECT * from test1 where :var = a" ;
  23. #line 12 "desc.pgc"
  24. int val1 = 1 ;
  25. #line 13 "desc.pgc"
  26. char val2 [ 4 ] = "one" , val2output [] = "AAA" ;
  27. #line 14 "desc.pgc"
  28. int val1output = 2 , val2i = 0 ;
  29. #line 15 "desc.pgc"
  30. int val2null = - 1 ;
  31. #line 16 "desc.pgc"
  32. int ind1 , ind2 ;
  33. #line 17 "desc.pgc"
  34. char desc1 [ 8 ] = "outdesc" ;
  35. /* exec sql end declare section */
  36. #line 18 "desc.pgc"
  37. ECPGdebug(1, stderr);
  38. ECPGallocate_desc(__LINE__, "indesc");
  39. #line 22 "desc.pgc"
  40. if (sqlca.sqlcode < 0) sqlprint();
  41. #line 22 "desc.pgc"
  42. ECPGallocate_desc(__LINE__, (desc1));
  43. #line 23 "desc.pgc"
  44. if (sqlca.sqlcode < 0) sqlprint();
  45. #line 23 "desc.pgc"
  46. { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
  47. ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
  48. #line 25 "desc.pgc"
  49. if (sqlca.sqlcode < 0) sqlprint();}
  50. #line 25 "desc.pgc"
  51. { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
  52. ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
  53. ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
  54. #line 26 "desc.pgc"
  55. if (sqlca.sqlcode < 0) sqlprint();}
  56. #line 26 "desc.pgc"
  57. { ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , NULL, 0);
  58. #line 28 "desc.pgc"
  59. if (sqlca.sqlcode < 0) sqlprint();}
  60. #line 28 "desc.pgc"
  61. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table test1 ( a int , b text )", ECPGt_EOIT, ECPGt_EORT);
  62. #line 30 "desc.pgc"
  63. if (sqlca.sqlcode < 0) sqlprint();}
  64. #line 30 "desc.pgc"
  65. { ECPGprepare(__LINE__, NULL, 0, "foo1", stmt1);
  66. #line 31 "desc.pgc"
  67. if (sqlca.sqlcode < 0) sqlprint();}
  68. #line 31 "desc.pgc"
  69. { ECPGprepare(__LINE__, NULL, 0, "Foo-1", stmt1);
  70. #line 32 "desc.pgc"
  71. if (sqlca.sqlcode < 0) sqlprint();}
  72. #line 32 "desc.pgc"
  73. { ECPGprepare(__LINE__, NULL, 0, "foo2", stmt2);
  74. #line 33 "desc.pgc"
  75. if (sqlca.sqlcode < 0) sqlprint();}
  76. #line 33 "desc.pgc"
  77. { ECPGprepare(__LINE__, NULL, 0, "foo3", stmt3);
  78. #line 34 "desc.pgc"
  79. if (sqlca.sqlcode < 0) sqlprint();}
  80. #line 34 "desc.pgc"
  81. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1",
  82. ECPGt_descriptor, "indesc", 1L, 1L, 1L,
  83. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
  84. #line 36 "desc.pgc"
  85. if (sqlca.sqlcode < 0) sqlprint();}
  86. #line 36 "desc.pgc"
  87. { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
  88. ECPGt_const,"2",(long)1,(long)1,strlen("2"), ECPGd_EODT);
  89. #line 38 "desc.pgc"
  90. if (sqlca.sqlcode < 0) sqlprint();}
  91. #line 38 "desc.pgc"
  92. { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
  93. ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
  94. ECPGt_int,&(val2null),(long)1,(long)1,sizeof(int), ECPGd_EODT);
  95. #line 39 "desc.pgc"
  96. if (sqlca.sqlcode < 0) sqlprint();}
  97. #line 39 "desc.pgc"
  98. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1",
  99. ECPGt_descriptor, "indesc", 1L, 1L, 1L,
  100. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
  101. #line 41 "desc.pgc"
  102. if (sqlca.sqlcode < 0) sqlprint();}
  103. #line 41 "desc.pgc"
  104. { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
  105. ECPGt_const,"3",(long)1,(long)1,strlen("3"), ECPGd_EODT);
  106. #line 43 "desc.pgc"
  107. if (sqlca.sqlcode < 0) sqlprint();}
  108. #line 43 "desc.pgc"
  109. { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
  110. ECPGt_const,"this is a long test",(long)19,(long)1,strlen("this is a long test"), ECPGd_indicator,
  111. ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
  112. #line 44 "desc.pgc"
  113. if (sqlca.sqlcode < 0) sqlprint();}
  114. #line 44 "desc.pgc"
  115. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "Foo-1",
  116. ECPGt_descriptor, "indesc", 1L, 1L, 1L,
  117. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
  118. #line 46 "desc.pgc"
  119. if (sqlca.sqlcode < 0) sqlprint();}
  120. #line 46 "desc.pgc"
  121. { ECPGdeallocate(__LINE__, 0, NULL, "Foo-1");
  122. #line 48 "desc.pgc"
  123. if (sqlca.sqlcode < 0) sqlprint();}
  124. #line 48 "desc.pgc"
  125. { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
  126. ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
  127. #line 50 "desc.pgc"
  128. if (sqlca.sqlcode < 0) sqlprint();}
  129. #line 50 "desc.pgc"
  130. { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
  131. ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
  132. ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
  133. #line 51 "desc.pgc"
  134. if (sqlca.sqlcode < 0) sqlprint();}
  135. #line 51 "desc.pgc"
  136. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo2",
  137. ECPGt_descriptor, "indesc", 1L, 1L, 1L,
  138. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
  139. ECPGt_descriptor, (desc1), 1L, 1L, 1L,
  140. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
  141. #line 53 "desc.pgc"
  142. if (sqlca.sqlcode < 0) sqlprint();}
  143. #line 53 "desc.pgc"
  144. { ECPGget_desc(__LINE__, (desc1), 1,ECPGd_data,
  145. ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char), ECPGd_EODT);
  146. #line 55 "desc.pgc"
  147. if (sqlca.sqlcode < 0) sqlprint();}
  148. #line 55 "desc.pgc"
  149. printf("output = %s\n", val2output);
  150. /* declare c1 cursor for $1 */
  151. #line 58 "desc.pgc"
  152. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c1 cursor for $1",
  153. ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo2", __LINE__)),(long)1,(long)1,(1)*sizeof(char),
  154. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
  155. ECPGt_descriptor, "indesc", 1L, 1L, 1L,
  156. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
  157. #line 59 "desc.pgc"
  158. if (sqlca.sqlcode < 0) sqlprint();}
  159. #line 59 "desc.pgc"
  160. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch next from c1", ECPGt_EOIT,
  161. ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
  162. ECPGt_int,&(ind1),(long)1,(long)1,sizeof(int),
  163. ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
  164. ECPGt_int,&(ind2),(long)1,(long)1,sizeof(int), ECPGt_EORT);
  165. #line 61 "desc.pgc"
  166. if (sqlca.sqlcode < 0) sqlprint();}
  167. #line 61 "desc.pgc"
  168. printf("val1=%d (ind1: %d) val2=%s (ind2: %d)\n",
  169. val1output, ind1, val2output, ind2);
  170. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close c1", ECPGt_EOIT, ECPGt_EORT);
  171. #line 65 "desc.pgc"
  172. if (sqlca.sqlcode < 0) sqlprint();}
  173. #line 65 "desc.pgc"
  174. { ECPGset_desc_header(__LINE__, "indesc", (int)(1));
  175. #line 67 "desc.pgc"
  176. if (sqlca.sqlcode < 0) sqlprint();}
  177. #line 67 "desc.pgc"
  178. { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
  179. ECPGt_const,"2",(long)1,(long)1,strlen("2"), ECPGd_EODT);
  180. #line 68 "desc.pgc"
  181. if (sqlca.sqlcode < 0) sqlprint();}
  182. #line 68 "desc.pgc"
  183. /* declare c2 cursor for $1 */
  184. #line 70 "desc.pgc"
  185. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c2 cursor for $1",
  186. ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo3", __LINE__)),(long)1,(long)1,(1)*sizeof(char),
  187. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
  188. ECPGt_descriptor, "indesc", 1L, 1L, 1L,
  189. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
  190. #line 71 "desc.pgc"
  191. if (sqlca.sqlcode < 0) sqlprint();}
  192. #line 71 "desc.pgc"
  193. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch next from c2", ECPGt_EOIT,
  194. ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
  195. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
  196. ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
  197. ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
  198. #line 73 "desc.pgc"
  199. if (sqlca.sqlcode < 0) sqlprint();}
  200. #line 73 "desc.pgc"
  201. printf("val1=%d val2=%s\n", val1output, val2i ? "null" : val2output);
  202. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close c2", ECPGt_EOIT, ECPGt_EORT);
  203. #line 76 "desc.pgc"
  204. if (sqlca.sqlcode < 0) sqlprint();}
  205. #line 76 "desc.pgc"
  206. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select * from test1 where a = 3", ECPGt_EOIT,
  207. ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
  208. ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
  209. ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
  210. ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
  211. #line 78 "desc.pgc"
  212. if (sqlca.sqlcode < 0) sqlprint();}
  213. #line 78 "desc.pgc"
  214. printf("val1=%d val2=%c%c%c%c warn=%c truncate=%d\n", val1output, val2output[0], val2output[1], val2output[2], val2output[3], sqlca.sqlwarn[0], val2i);
  215. { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table test1", ECPGt_EOIT, ECPGt_EORT);
  216. #line 81 "desc.pgc"
  217. if (sqlca.sqlcode < 0) sqlprint();}
  218. #line 81 "desc.pgc"
  219. { ECPGdeallocate_all(__LINE__, 0, NULL);
  220. #line 82 "desc.pgc"
  221. if (sqlca.sqlcode < 0) sqlprint();}
  222. #line 82 "desc.pgc"
  223. { ECPGdisconnect(__LINE__, "CURRENT");
  224. #line 83 "desc.pgc"
  225. if (sqlca.sqlcode < 0) sqlprint();}
  226. #line 83 "desc.pgc"
  227. ECPGdeallocate_desc(__LINE__, "indesc");
  228. #line 85 "desc.pgc"
  229. if (sqlca.sqlcode < 0) sqlprint();
  230. #line 85 "desc.pgc"
  231. ECPGdeallocate_desc(__LINE__, (desc1));
  232. #line 86 "desc.pgc"
  233. if (sqlca.sqlcode < 0) sqlprint();
  234. #line 86 "desc.pgc"
  235. return 0;
  236. }