Hi to all
I have problem with NOTIFY/LISTEN ...
I'm  writing a C++ application with libpqxx, I thought was a problem of
the lib but I try also with a C program using libpq with the same
result, so maybe there is something else of wrong.
Using the example 2 in the libpq chapter on "Postgres Programmer's
Guide" as template i write :
!---------->
#include <unistd.h>
#include <libpq-fe.h>
int main() {
   PGconn *conn;
   PGresult *res;
   PGnotify *notify;
   int i;
   conn = PQconnectdb ("host=localhost user=test dbname=test");
   if (PQstatus(conn) == CONNECTION_BAD) {
      fprintf(stderr,"failed connecting.\n");
      PQfinish(conn);
      exit(1);
   }
   res = PQexec(conn, "LISTEN alert");
   if (!res || PQresultStatus(res) != PGRES_COMMAND_OK) {
      fprintf(stderr,"failed listening.\n");
      PQclear(res);
      PQfinish(conn);
      exit(1);
   }
   PQclear(res);
   for(i = 0; i < 80 ; ++i) {
      sleep(1);
      PQconsumeInput(conn);
      while ((notify = PQnotifies(conn)) != NULL) {
         fprintf(stderr,"\nGOT NOTIFY!!!\n");
         free(notify);
      }
      fprintf(stderr,".");
   }
   PQfinish(conn);
   return 0;
}
<----------!
On a console with psql I issue some notify with
NOTIFY alert; COMMIT;
but nothing are catched !!!
if in another console with psql i do a "LISTEN alert;" all work
correctly.
I'm using Linux, RedHat 9, so PostgreSQL 7.3.2.
user and database are created with :
createuser -h localhost -U postgres -D -A -P test
createdb -O test -h localhost -U postgres test
and nothing alse, the database are empty.
what's wrong ???
Thanks.
--
Alessandro GARDICH <gremlin@gremlin.it>
gremlin.it