LCOV - code coverage report
Current view: top level - src/interfaces/ecpg/test/sql - func.pgc (source / functions) Coverage Total Hit
Test: PostgreSQL 20devel Lines: 100.0 % 23 23
Test Date: 2026-07-25 10:15:40 Functions: 100.0 % 1 1
Legend: Lines:     hit not hit
Branches: + taken - not taken # not executed
Branches: 50.0 % 48 24

             Branch data     Line data    Source code
       1                 :             : #include <stdio.h>
       2                 :             : #include <stdlib.h>
       3                 :             : #include <string.h>
       4                 :             : 
       5                 :             : EXEC SQL INCLUDE ../regression;
       6                 :             : 
       7                 :           2 : int main(void) {
       8                 :             :   EXEC SQL char text[25];
       9                 :             : 
      10                 :           2 :   ECPGdebug(1, stderr);
      11                 :           2 :   EXEC SQL CONNECT TO REGRESSDB1;
      12                 :             : 
      13                 :           2 :   EXEC SQL SET AUTOCOMMIT TO ON;
      14                 :             :   EXEC SQL WHENEVER SQLWARNING SQLPRINT;
      15                 :             :   EXEC SQL WHENEVER SQLERROR SQLPRINT;
      16                 :             : 
      17                 :           2 :   EXEC SQL CREATE TABLE My_Table ( Item1 int, Item2 text );
      18   [ -  +  -  + ]:           2 :   EXEC SQL CREATE TABLE Log (name text, w text);
      19   [ -  +  -  + ]:           2 : 
      20                 :           2 :   EXEC SQL CREATE FUNCTION My_Table_Check() RETURNS trigger
      21                 :             :     AS $test$
      22                 :             :     BEGIN
      23                 :             :     INSERT INTO Log VALUES(TG_NAME, TG_WHEN);
      24                 :             :     RETURN NEW;
      25                 :             :     END; $test$
      26                 :             :     LANGUAGE plpgsql;
      27   [ -  +  -  + ]:           2 : 
      28                 :           2 :   EXEC SQL CREATE TRIGGER My_Table_Check_Trigger
      29                 :             :     BEFORE INSERT
      30                 :             :     ON My_Table
      31                 :             :     FOR EACH ROW
      32                 :             :     EXECUTE PROCEDURE My_Table_Check();
      33   [ -  +  -  + ]:           2 : 
      34                 :           2 :   EXEC SQL INSERT INTO My_Table VALUES (1234, 'Some random text');
      35   [ -  +  -  + ]:           2 :   EXEC SQL INSERT INTO My_Table VALUES (5678, 'The Quick Brown');
      36   [ -  +  -  + ]:           2 :   EXEC SQL SELECT name INTO :text FROM Log LIMIT 1;
      37   [ -  +  -  + ]:           2 :   printf("Trigger %s fired.\n", text);
      38                 :             : 
      39                 :           2 :   EXEC SQL DROP TRIGGER My_Table_Check_Trigger ON My_Table;
      40   [ -  +  -  + ]:           2 :   EXEC SQL DROP FUNCTION My_Table_Check();
      41   [ -  +  -  + ]:           2 :   EXEC SQL DROP TABLE Log;
      42   [ -  +  -  + ]:           2 :   EXEC SQL DROP TABLE My_Table;
      43   [ -  +  -  + ]:           2 : 
      44                 :           2 :   EXEC SQL DISCONNECT ALL;
      45   [ -  +  -  + ]:           2 : 
      46                 :           2 :   return 0;
      47                 :             : }
        

Generated by: LCOV version 2.0-1