/* Processed by ecpg (regression mode) */
/* These include files are added by the preprocessor */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* End of automatic include section */
#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))

#line 1 "func.pgc"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


#line 1 "regression.h"






#line 5 "func.pgc"


int main() {
  
#line 8 "func.pgc"
 char text [ 25 ] ;

#line 8 "func.pgc"


  ECPGdebug(1, stderr);
  { ECPGconnect(__LINE__, 0, "regress1" , NULL, NULL , NULL, 0); }
#line 11 "func.pgc"


  { ECPGsetcommit(__LINE__, "on", NULL);}
#line 13 "func.pgc"

  /* exec sql whenever sql_warning  sqlprint ; */
#line 14 "func.pgc"

  /* exec sql whenever sqlerror  sqlprint ; */
#line 15 "func.pgc"


  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table My_Table ( Item1 int , Item2 text )", ECPGt_EOIT, ECPGt_EORT);
#line 17 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 17 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 17 "func.pgc"

  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table Log ( name text , w text )", ECPGt_EOIT, ECPGt_EORT);
#line 18 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 18 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 18 "func.pgc"


  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create function My_Table_Check ( ) returns trigger as $test$\
    BEGIN\
	INSERT INTO Log VALUES(TG_NAME, TG_WHEN);\
	RETURN NEW;\
    END; $test$ language plpgsql", ECPGt_EOIT, ECPGt_EORT);
#line 26 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 26 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 26 "func.pgc"


  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create trigger My_Table_Check_Trigger before insert on My_Table for each row execute procedure My_Table_Check ( )", ECPGt_EOIT, ECPGt_EORT);
#line 32 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 32 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 32 "func.pgc"


  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into My_Table values ( 1234 , 'Some random text' )", ECPGt_EOIT, ECPGt_EORT);
#line 34 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 34 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 34 "func.pgc"

  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into My_Table values ( 5678 , 'The Quick Brown' )", ECPGt_EOIT, ECPGt_EORT);
#line 35 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 35 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 35 "func.pgc"

  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select name from Log limit 1", ECPGt_EOIT, 
	ECPGt_char,(text),(long)25,(long)1,(25)*sizeof(char), 
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
#line 36 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 36 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 36 "func.pgc"

  printf("Trigger %s fired.\n", text);

  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop trigger My_Table_Check_Trigger on My_Table", ECPGt_EOIT, ECPGt_EORT);
#line 39 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 39 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 39 "func.pgc"

  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop function My_Table_Check ( )", ECPGt_EOIT, ECPGt_EORT);
#line 40 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 40 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 40 "func.pgc"

  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table Log", ECPGt_EOIT, ECPGt_EORT);
#line 41 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 41 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 41 "func.pgc"

  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table My_Table", ECPGt_EOIT, ECPGt_EORT);
#line 42 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 42 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 42 "func.pgc"


  { ECPGdisconnect(__LINE__, "ALL");
#line 44 "func.pgc"

if (sqlca.sqlwarn[0] == 'W') sqlprint();
#line 44 "func.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 44 "func.pgc"


  return 0;
}
