LCOV - differential code coverage report
Current view: top level - src/interfaces/ecpg/test/pgtypeslib - nan_test.pgc (source / functions) Coverage Total Hit UBC CBC
Current: c70b6db34ffeab48beef1fb4ce61bcad3772b8dd vs 06473f5a344df8c9594ead90a609b86f6724cff8 Lines: 100.0 % 55 55 55
Current Date: 2025-09-06 07:49:51 +0900 Functions: 100.0 % 1 1 1
Baseline: lcov-20250907-010129-baseline Branches: 62.2 % 74 46 28 46
Baseline Date: 2025-09-05 08:21:35 +0100 Line coverage date bins:
Legend: Lines:     hit not hit
Branches: + taken - not taken # not executed
(360..) days: 100.0 % 55 55 55
Function coverage date bins:
(360..) days: 100.0 % 1 1 1
Branch coverage date bins:
(360..) days: 62.2 % 74 46 28 46

 Age         Owner                    Branch data    TLA  Line data    Source code
                                  1                 :                : #include <stdio.h>
                                  2                 :                : #include <stdlib.h>
                                  3                 :                : #include <float.h>
                                  4                 :                : #include <math.h>
                                  5                 :                : #include <pgtypes_numeric.h>
                                  6                 :                : #include <decimal.h>
                                  7                 :                : 
                                  8                 :                : exec sql include ../regression;
                                  9                 :                : 
                                 10                 :                : int
 5696 meskes@postgresql.or       11                 :CBC           1 : main(void)
                                 12                 :                : {
                                 13                 :                :     exec sql begin declare section;
                                 14                 :                :     int id, loopcount;
                                 15                 :                :     double  d;
                                 16                 :                :     numeric *num;
                                 17                 :                :     char    val[16];
                                 18                 :                :     exec sql end declare section;
                                 19                 :                : 
                                 20                 :              1 :     ECPGdebug(1, stderr);
                                 21                 :                :     exec sql whenever sqlerror do sqlprint();
                                 22                 :                : 
                                 23                 :              1 :     exec sql connect to REGRESSDB1;
                                 24         [ -  + ]:              1 : 
                                 25                 :              1 :     exec sql create table nantest1 (id int4, d float8);
 5695                            26         [ -  + ]:              1 :     exec sql insert into nantest1 (id, d) values (1, 'nan'::float8), (2, 'infinity'::float8), (3, '-infinity'::float8);
 5696                            27         [ -  + ]:              1 : 
                                 28                 :                :     exec sql declare cur cursor for select id, d, d from nantest1;
                                 29                 :              1 :     exec sql open cur;
 2418 tgl@sss.pgh.pa.us          30   [ -  +  +  - ]:              4 :     for (loopcount = 0; loopcount < 100; loopcount++)
                                 31                 :                :     {
 5696 meskes@postgresql.or       32                 :              4 :         exec sql fetch from cur into :id, :d, :val;
                                 33   [ -  +  +  + ]:              4 :         if (sqlca.sqlcode)
                                 34                 :              1 :             break;
                                 35         [ +  + ]:              3 :         if (isnan(d))
                                 36                 :              1 :             printf("%d  NaN '%s'\n", id, val);
 5682                            37   [ +  -  +  - ]:              2 :         else if (isinf(d))
                                 38         [ +  + ]:              2 :             printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
                                 39                 :                : 
 5696                            40                 :              3 :         exec sql insert into nantest1 (id, d) values (:id + 3, :d);
                                 41         [ -  + ]:              3 :         exec sql insert into nantest1 (id, d) values (:id + 6, :val);
                                 42         [ -  + ]:              3 :     }
                                 43                 :              1 :     exec sql close cur;
                                 44         [ -  + ]:              1 : 
                                 45                 :              1 :     exec sql open cur;
 2418 tgl@sss.pgh.pa.us          46   [ -  +  +  - ]:             10 :     for (loopcount = 0; loopcount < 100; loopcount++)
                                 47                 :                :     {
 5696 meskes@postgresql.or       48                 :             10 :         exec sql fetch from cur into :id, :d, :val;
                                 49   [ -  +  +  + ]:             10 :         if (sqlca.sqlcode)
                                 50                 :              1 :             break;
                                 51   [ +  +  +  + ]:              9 :         if (isinf(d))
                                 52         [ +  + ]:              6 :             printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
                                 53         [ +  + ]:              9 :         if (isnan(d))
                                 54                 :              3 :             printf("%d  NaN '%s'\n", id, val);
                                 55                 :                :     }
                                 56                 :              1 :     exec sql close cur;
                                 57         [ -  + ]:              1 : 
                                 58                 :              1 :     num = PGTYPESnumeric_new();
                                 59                 :                : 
                                 60                 :              1 :     exec sql create table nantest2 (id int4, d numeric);
                                 61         [ -  + ]:              1 :     exec sql insert into nantest2 (id, d) values (4, 'nan'::numeric);
                                 62         [ -  + ]:              1 : 
                                 63                 :              1 :     exec sql select id, d, d into :id, :num, :val from nantest2 where id = 4;
                                 64         [ -  + ]:              1 : 
                                 65         [ +  - ]:              1 :     printf("%d %s '%s'\n", id, (num->sign == NUMERIC_NAN ? "NaN" : "not NaN"), val);
                                 66                 :                : 
                                 67                 :              1 :     exec sql insert into nantest2 (id, d) values (5, :num);
                                 68         [ -  + ]:              1 :     exec sql insert into nantest2 (id, d) values (6, :val);
                                 69         [ -  + ]:              1 : 
                                 70                 :                :     exec sql declare cur1 cursor for select id, d, d from nantest2;
                                 71                 :              1 :     exec sql open cur1;
 2418 tgl@sss.pgh.pa.us          72   [ -  +  +  - ]:              4 :     for (loopcount = 0; loopcount < 100; loopcount++)
                                 73                 :                :     {
 5696 meskes@postgresql.or       74                 :              4 :         exec sql fetch from cur1 into :id, :num, :val;
                                 75   [ -  +  +  + ]:              4 :         if (sqlca.sqlcode)
                                 76                 :              1 :             break;
                                 77         [ +  - ]:              3 :         printf("%d %s '%s'\n", id, (num->sign == NUMERIC_NAN ? "NaN" : "not NaN"), val);
                                 78                 :                :     }
                                 79                 :              1 :     exec sql close cur1;
                                 80         [ -  + ]:              1 : 
 5500                            81                 :              1 :     PGTYPESnumeric_free(num);
                                 82                 :                : 
 5696                            83                 :              1 :     exec sql rollback;
                                 84         [ -  + ]:              1 :     exec sql disconnect;
                                 85         [ -  + ]:              1 : 
 2943 peter_e@gmx.net            86                 :              1 :     return 0;
                                 87                 :                : }
        

Generated by: LCOV version 2.4-beta