Sha256: 67f206f1fcb90e48d6b39b69b31af68a0e6a164882592ec664a28339d4592515
Contents?: true
Size: 1.01 KB
Versions: 14
Compression:
Stored size: 1.01 KB
Contents
#! /usr/bin/env ruby # # original file src/test/examples/testlibpq2.c # Test of the asynchronous notification interface # CREATE TABLE TBL1 (i int4); # CREATE TABLE TBL2 (i int4); # CREATE RULE r1 AS ON INSERT TO TBL1 DO (INSERT INTO TBL2 values (new.i); \ # NOTIFY TBL2); # Then start up this program # After the program has begun, do # INSERT INTO TBL1 values (10); require 'pg' def main pghost = nil pgport = nil pgoptions = nil pgtty = nil dbname = ENV['USER'] begin conn = PGconn.connect(pghost,pgport,pgoptions,pgtty,dbname) rescue PGError printf(STDERR, "Connection to database '%s' failed.\n",dbname) exit(2) end begin res = conn.exec("LISTEN TBL2") rescue PGError printf(STDERR, "LISTEN command failed\n") exit(2) end res.clear while 1 notify = conn.get_notify if (notify) printf(STDERR,"ASYNC NOTIFY '%s' from backend pid '%d' received\n",notify[0],notify[1]) break end end end main
Version data entries
14 entries across 14 versions & 3 rubygems