LCOV - differential code coverage report
Current view: top level - src/interfaces/ecpg/test/sql - sqljson.pgc (source / functions) Coverage Total Hit GNC
Current: Differential Code Coverage HEAD vs 15 Lines: 100.0 % 25 25 25
Current Date: 2023-04-08 17:13:01 Functions: 100.0 % 1 1 1
Baseline: 15 Line coverage date bins:
Baseline Date: 2023-04-08 15:09:40 [..60] days: 100.0 % 25 25 25
Legend: Lines: hit not hit Function coverage date bins:
[..60] days: 100.0 % 1 1 1

 Age         Owner                  TLA  Line data    Source code
                                  1                 : #include <stdio.h>
                                  2                 : 
                                  3                 : EXEC SQL INCLUDE sqlca;
                                  4                 : exec sql include ../regression;
                                  5                 : 
                                  6                 : EXEC SQL WHENEVER SQLERROR sqlprint;
                                  7                 : 
                                  8                 : int
   11 alvherre                    9 GNC           1 : main ()
                                 10                 : {
                                 11                 : EXEC SQL BEGIN DECLARE SECTION;
                                 12                 :   char json[1024];
                                 13                 :   bool is_json[8];
                                 14                 : EXEC SQL END DECLARE SECTION;
                                 15                 : 
                                 16               1 :   ECPGdebug (1, stderr);
                                 17                 : 
                                 18               1 :   EXEC SQL CONNECT TO REGRESSDB1;
                                 19               1 :   EXEC SQL SET AUTOCOMMIT = ON;
                                 20               1 : 
                                 21               1 :   EXEC SQL SELECT JSON_OBJECT(RETURNING text) INTO :json;
                                 22               1 :   printf("Found json=%s\n", json);
                                 23                 : 
                                 24               1 :   EXEC SQL SELECT JSON_OBJECT(RETURNING text FORMAT JSON) INTO :json;
                                 25               1 :   printf("Found json=%s\n", json);
                                 26                 : 
                                 27               1 :   EXEC SQL SELECT JSON_ARRAY(RETURNING jsonb) INTO :json;
                                 28               1 :   printf("Found json=%s\n", json);
                                 29                 : 
                                 30               1 :   EXEC SQL SELECT JSON_ARRAY(RETURNING jsonb FORMAT JSON) INTO :json;
                                 31               1 :   printf("Found json=%s\n", json);
                                 32                 : 
                                 33               1 :   EXEC SQL SELECT JSON_OBJECT(1: 1, '1': NULL WITH UNIQUE) INTO :json;
                                 34               1 :   // error
                                 35                 : 
                                 36               1 :   EXEC SQL SELECT JSON_OBJECT(1: 1, '2': NULL, 1: '2' ABSENT ON NULL WITHOUT UNIQUE KEYS) INTO :json;
                                 37               1 :   printf("Found json=%s\n", json);
                                 38                 : 
                                 39               1 :   EXEC SQL SELECT JSON_OBJECT(1: 1, '2': NULL ABSENT ON NULL WITHOUT UNIQUE RETURNING jsonb) INTO :json;
                                 40               1 :   printf("Found json=%s\n", json);
                                 41                 : 
    9                            42               1 :   EXEC SQL WITH val (js) AS (VALUES ('{ "a": 1, "b": [{ "a": 1, "b": 0, "a": 2 }] }'))
                                 43                 :       SELECT
                                 44                 :       js IS JSON "IS JSON",
                                 45                 :       js IS NOT JSON "IS NOT JSON",
                                 46                 :       js IS JSON VALUE "IS VALUE",
                                 47                 :       js IS JSON OBJECT "IS OBJECT",
                                 48                 :       js IS JSON ARRAY "IS ARRAY",
                                 49                 :       js IS JSON SCALAR "IS SCALAR",
                                 50                 :       js IS JSON WITHOUT UNIQUE KEYS "WITHOUT UNIQUE",
                                 51                 :       js IS JSON WITH UNIQUE KEYS "WITH UNIQUE"
                                 52                 :           INTO :is_json[0], :is_json[1], :is_json[2], :is_json[3], :is_json[4],
                                 53                 :           :is_json[5], :is_json[6], :is_json[7]
                                 54                 :           FROM val;
                                 55               9 :       for (int i = 0; i < sizeof(is_json); i++)
                                 56               8 :           printf("Found is_json[%d]: %s\n", i, is_json[i] ? "true" : "false");
                                 57                 : 
   11                            58               1 :   EXEC SQL DISCONNECT;
                                 59               1 : 
                                 60               1 :   return 0;
                                 61                 : }
        

Generated by: LCOV version v1.16-55-g56c0a2a