LCOV - code coverage report
Current view: top level - src/interfaces/ecpg/test/sql - define.pgc (source / functions) Hit Total Coverage
Test: PostgreSQL 17devel Lines: 26 26 100.0 %
Date: 2024-04-19 20:11:07 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : exec sql include sqlca;
       2             : exec sql include ../regression;
       3             : exec sql define STR 'abcdef';
       4             : exec sql define INSERTNULL 1;
       5             : exec sql define NUMBER 29;
       6             : 
       7           4 : int main(void)
       8             : {
       9             :    exec sql begin declare section;
      10             :      int i;
      11             :      char s[200];
      12             :    exec sql end declare section;
      13             : 
      14           4 :    ECPGdebug(1, stderr);
      15             : 
      16             :    exec sql whenever sqlerror do sqlprint();
      17           4 :    exec sql connect to REGRESSDB1;
      18           4 : 
      19           4 :    exec sql create table test (a int, b text);
      20           4 :    exec sql insert into test values (NUMBER, STR);
      21           4 : 
      22             :    exec sql ifdef INSERTNULL;
      23           4 :    exec sql insert into test values (NULL, 'defined');
      24           4 :    exec sql endif;
      25             : 
      26             :    exec sql ifndef INSERTNULL;
      27             :    exec sql insert into test values (NULL, 'not defined');
      28             :    exec sql elif SOMEOTHERVAR;
      29             :    exec sql insert into test values (NULL, 'someothervar defined');
      30             :    exec sql else;
      31           4 :    exec sql insert into test values (NULL, 'someothervar not defined');
      32           4 :    exec sql endif;
      33             : 
      34             :    exec sql define NUMBER 29;
      35             : 
      36           4 :    exec sql select INSERTNULL, NUMBER::text || '-' || STR INTO :i, :s;
      37           4 : 
      38           4 :    printf("i: %d, s: %s\n", i, s);
      39             : 
      40             :    exec sql undef STR;
      41             :    exec sql ifndef STR;
      42           4 :    exec sql insert into test values (NUMBER, 'no string');
      43           4 :    exec sql endif;
      44             : 
      45             :    exec sql define TZVAR;  /* no value */
      46             :    exec sql define TZVAR 'UTC';
      47             : 
      48             :    exec sql ifndef TZVAR;
      49             :    exec sql SET TIMEZONE TO 'GMT';
      50             :    exec sql elif TZNAME;
      51             :    exec sql SET TIMEZONE TO TZNAME;
      52             :    exec sql else;
      53           4 :    exec sql SET TIMEZONE TO TZVAR;
      54           4 :    exec sql endif;
      55             : 
      56             :    /* test handling of a macro defined on the command line */
      57           4 :    exec sql select CMDLINESYM INTO :i;
      58           4 :    printf("original CMDLINESYM: %d\n", i);
      59             : 
      60             :    exec sql define CMDLINESYM 42;
      61             : 
      62           4 :    exec sql select CMDLINESYM INTO :i;
      63           4 :    printf("redefined CMDLINESYM: %d\n", i);
      64             : 
      65             :    exec sql define CMDLINESYM 43;
      66             : 
      67           4 :    exec sql select CMDLINESYM INTO :i;
      68           4 :    printf("redefined CMDLINESYM: %d\n", i);
      69             : 
      70             :    exec sql undef CMDLINESYM;
      71             : 
      72             :    exec sql ifdef CMDLINESYM;
      73             :    exec sql insert into test values (NUMBER, 'no string');
      74             :    exec sql endif;
      75             : 
      76             :    /* this macro should not have carried over from define_prelim.pgc */
      77             :    exec sql ifdef NONCMDLINESYM;
      78             :    exec sql insert into test values (NUMBER, 'no string');
      79             :    exec sql endif;
      80             : 
      81           4 :    exec sql disconnect;
      82           4 :    return 0;
      83             : }

Generated by: LCOV version 1.14