
#if defined(POSTGRES_IN) || defined(MYPG_IN)

#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/socket.h>
#include<netinet/in_systm.h>
#include<netinet/in.h>
#include<netinet/ip.h>
#include<arpa/inet.h>
#include<stdlib.h>
#include<string.h>
#include<pthread.h>
#include<time.h>
#include<errno.h>

#include"zither.h"
#include<almemsys/almemsys.h>
#include"jpreturn.h"

#include<libpq-fe.h>
// extern  PGconn * conn;
// extern  PGresult * res;

extern  global_data_t gd;



int psqlexec_datain(private_data_t * pd, char * swap)
{
int ret;
ret = 0;
char * swapsubject = (char *)calloc(IP_LEN, sizeof(char));
char * swapdata = (char *)calloc(IP_LEN, sizeof(char));

if(gd.pg.stat == 1){
   gd.pg.res = PQexec(gd.pg.conn, swap);
   if(!gd.pg.res || PQresultStatus(gd.pg.res) != PGRES_COMMAND_OK){
      fprintf(stderr, "psqlexec_datain(1): インサート出来てないかも %s\n", swap);
      PQclear(gd.pg.res);
      ret = -1;
      }
   else {
      #ifdef POSTGRES_DEBUG
      fprintf(stderr, "POSTGRES_DEBUG: psqlexec_datain(2): インサート成功 %s\n", swap);
      #endif
      ret = 1;
      PQclear(gd.pg.res);
      }
   }
else{
   gd.pg.stat = psqlconnect();
   fprintf(stderr, "psqlexec_datain(3): つなぎなおしてみました %s\n", swap);
   if(gd.pg.stat == 1){
      gd.pg.res = PQexec(gd.pg.conn, swap);
      if(!gd.pg.res || PQresultStatus(gd.pg.res) != PGRES_COMMAND_OK){
         fprintf(stderr, "psqlexec_datain(4): インサート出来てないかも %s\n", swap);
         PQclear(gd.pg.res);
         ret = -1;
         }
      else {
         #ifdef POSTGRES_DEBUG
         fprintf(stderr, "POSTGRES_DEBUG: psqlexec_datain(5): インサート成功 %s\n", swap);
         #endif
         ret = 1;
         PQclear(gd.pg.res);
         }
      }
   else{
      fprintf(stderr, "psqlexec_datain(6): やっぱダメかもです %s\n", swap);
      ret = -1;
      }
   }


if(ret < 0){
   if(gd.pg.postgres_stat == 0){
      gd.pg.postgres_stat = 1;

      // subujectを作ります
      swapsubject = make_subject(swapsubject, CLIENT_BODY_12, pd->rec.def_user);

      // 本文をつくります
      swapdata = safe_sprintf(swapdata, BUF_MAX, "%s\n\n%s\n\n%s\n", pd->rec.info, CLIENT_BODY_11, CL_VAR);
      swap_mem(swapdata, '\n', (char)0x01);

      mail_grsend(pd->mail.server,
        pd->mail.from,
        pd->mail.rcptto,
        pd->mail.cc,
        swapdata,
        swapsubject,
        "NOT",
        "1");

      }
   }
else{
   gd.pg.postgres_stat = 0;
   }

free(swapsubject);
free(swapdata);

return ret;
}


#endif


