LCOV - code coverage report
Current view: top level - src/interfaces/ecpg/test/preproc - autoprep.pgc (source / functions) Coverage Total Hit
Test: Code coverage Lines: 0.0 % 44 0
Test Date: 2026-01-26 10:56:24 Functions: 0.0 % 2 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : #include <stdio.h>
       2              : #include <stdlib.h>
       3              : #include <string.h>
       4              : 
       5              : /* test automatic prepare for all statements */
       6              : EXEC SQL INCLUDE ../regression;
       7              : 
       8            0 : static void test(void) {
       9              :   EXEC SQL BEGIN DECLARE SECTION;
      10            0 :         int item[4], ind[4], i = 1;
      11            0 :         int item1, ind1;
      12            0 :         char sqlstr[64] = "SELECT item2 FROM T ORDER BY item2 NULLS LAST";
      13              :   EXEC SQL END DECLARE SECTION;
      14              : 
      15            0 :   ECPGdebug(1, stderr);
      16            0 :   EXEC SQL CONNECT TO REGRESSDB1;
      17              : 
      18              :   EXEC SQL WHENEVER SQLWARNING SQLPRINT;
      19              :   EXEC SQL WHENEVER SQLERROR SQLPRINT;
      20              : 
      21            0 :   EXEC SQL CREATE TABLE T ( Item1 int, Item2 int );
      22            0 : 
      23            0 :   EXEC SQL INSERT INTO T VALUES ( 1, null );
      24            0 :   EXEC SQL INSERT INTO T VALUES ( 1, :i );
      25            0 :   i++;
      26            0 :   EXEC SQL INSERT INTO T VALUES ( 1, :i );
      27            0 :   EXEC SQL PREPARE I AS INSERT INTO T VALUES ( 1, 2 );
      28            0 :   EXEC SQL EXECUTE I;
      29            0 : 
      30            0 :   EXEC SQL SELECT Item2 INTO :item:ind FROM T ORDER BY Item2 NULLS LAST;
      31            0 : 
      32            0 :   for (i=0; i<4; i++)
      33            0 :         printf("item[%d] = %d\n", i, ind[i] ? -1 : item[i]);
      34              : 
      35              :   EXEC SQL DECLARE C CURSOR FOR SELECT Item1 FROM T;
      36              : 
      37            0 :   EXEC SQL OPEN C;
      38            0 : 
      39            0 :   EXEC SQL FETCH 1 IN C INTO :i;
      40            0 :   printf("i = %d\n", i);
      41              : 
      42            0 :   EXEC SQL CLOSE C;
      43            0 : 
      44            0 :   EXEC SQL PREPARE stmt1 FROM :sqlstr;
      45            0 : 
      46              :   EXEC SQL DECLARE cur1 CURSOR FOR stmt1;
      47              : 
      48            0 :   EXEC SQL OPEN cur1;
      49            0 : 
      50              :   EXEC SQL WHENEVER NOT FOUND DO BREAK;
      51              : 
      52            0 :   i = 0;
      53            0 :   while (i < 100)
      54              :   {
      55            0 :         EXEC SQL FETCH cur1 INTO :item1:ind1;
      56            0 :         printf("item[%d] = %d\n", i, ind1 ? -1 : item1);
      57            0 :         i++;
      58              :   }
      59              : 
      60            0 :   EXEC SQL CLOSE cur1;
      61            0 : 
      62            0 :   EXEC SQL DROP TABLE T;
      63            0 : 
      64            0 :   EXEC SQL DISCONNECT ALL;
      65            0 : }
      66              : 
      67            0 : int main() {
      68            0 :   test();
      69            0 :   test();     /* retry */
      70              : 
      71            0 :   return 0;
      72              : }
        

Generated by: LCOV version 2.3.2-1