Re: [HACKERS] Re: trouble creating log table with rules
От | wieck@debis.com (Jan Wieck) |
---|---|
Тема | Re: [HACKERS] Re: trouble creating log table with rules |
Дата | |
Msg-id | m10xUnQ-0003kvC@orion.SAPserv.Hamburg.dsh.de обсуждение исходный текст |
Ответ на | Re: trouble creating log table with rules (Wayne Piekarski <wayne@senet.com.au>) |
Ответы |
Re: [HACKERS] Re: trouble creating log table with rules
|
Список | pgsql-hackers |
> > > Date: Thu, 24 Jun 1999 01:53:05 -0500 > > From: Jim Rowan <jmr@computing.com> > > Subject: trouble creating log table with rules > > > > I've read the docs in the programmers manual, and can create rules like this: > > > > CREATE RULE "m_log_change" AS ON UPDATE TO "machine" > > do ( > > INSERT INTO machine_log (who, date, machnum, col, newval) > > SELECT getpgusername(), 'now'::text, old.machnum, > > 'host', new.host > > WHERE (new.host != old.host) or > > (old.host IS NOT NULL and new.host IS NULL) or > > (old.host IS NULL and new.host IS NOT NULL); > > > > INSERT INTO machine_log (who, date, machnum, col, newval) > > SELECT getpgusername(), 'now'::text, old.machnum, > > 'serial_num_cpu', new.serial_num_cpu > > WHERE (new.serial_num_cpu != old.serial_num_cpu) or > > (old.serial_num_cpu IS NOT NULL and new.serial_num_cpu IS NULL) or > > (old.serial_num_cpu IS NULL and new.serial_num_cpu IS NOT NULL); > > ); > > > > My big problem is that if I replicate this enough times to cover the fields I > > want, I get this error: > > > > pqReadData() -- backend closed the channel unexpectedly. > > This probably means the backend terminated abnormally > > before or while processing the request. > > We have lost the connection to the backend, so further processing is impossible. Terminating. > > You didn't tell us which version of PostgreSQL and (more important) if the error occurs during CREATE RULE or when updating machine. If it occurs during the CREATE RULE (what I hope for you) it doesn't happen in the rewriter itself. For the rule actions in the example above it isn't important in which order they are processed. So you could setup single action rules per field to get (mostly) the same results. If you can create the entire multi action rule but get the backend crash during UPDATE of machine, then it's a problem in the rewriter which I cannot imagine looking at your rules. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #========================================= wieck@debis.com (Jan Wieck) #
В списке pgsql-hackers по дате отправления: