Search Postgresql Archives

Re: Trigger not firing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/1/20 3:09 AM, Hans wrote:
I've had a weird problem in a production system. The customer had installed a new server with our software on it. The software installs a Postgres database schema that includes a number of triggers. The triggers perform inserts into an additional table.

How is the install done?

Our instructions tell them to apt-get it from the default repository. I can ask on tuesday for more information.

But there is more to it then that as you show below. So what is the outline for a customer to get from clean server to one with your software fully installed?

The Postgres logs from the period the below was run might be informative. I'm guessing that is going to have to wait until Tuesday.


Our software contains no code for disabling triggers. It creates them once, during database initialisation (i.e. before any data is put in), and then leaves them alone. I have no reason to believe the customer messed with the database either.

Exactly how is that done?

We give them a C++ program that creates the tables, and then executes:

CREATE OR REPLACE FUNCTION generic.update_usergrouptest_from_test() RETURNS trigger AS $$
DECLARE
  x INTEGER;
BEGIN
  IF NEW.usergroup_ids <> OLD.usergroup_ids THEN
   DELETE FROM generic.usergroup_test WHERE test_id = NEW.id;

   FOREACH x IN ARRAY NEW.usergroup_ids LOOP
   INSERT INTO generic.usergroup_test (test_id, usergroup_id) VALUES (NEW.id, x);
   END LOOP;
  END IF;

  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

and then

CREATE TRIGGER update_usergrouptest_from_test
AFTER UPDATE ON generic.test
FOR EACH ROW EXECUTE PROCEDURE generic.update_usergrouptest_from_test();

Hans





--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux