BUG #8661: Update on all rows in table fails - Mailing list pgsql-bugs

From jheinz@zeitwerk.de
Subject BUG #8661: Update on all rows in table fails
Date
Msg-id E1Vovgr-0004A3-8R@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #8661: Update on all rows in table fails  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: BUG #8661: Update on all rows in table fails  (Greg Stark <stark@mit.edu>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      8661
Logged by:          J. Heinz
Email address:      jheinz@zeitwerk.de
PostgreSQL version: 9.1.3
Operating system:   MacOSX or Windows
Description:

When we want to update all rows in one table, the sql executes, but didn't
update all rows:


sql: update address set email = 'test@test.com';


table:


CREATE TABLE address
(
  id bigint NOT NULL,
  address1 character varying(255),
  address2 character varying(255),
  address3 character varying(255),
  cdate timestamp without time zone DEFAULT now(),
  city character varying(255),
  creator character varying(80),
  email character varying(255),
  fax character varying(255),
  internet character varying(255),
  mdate timestamp without time zone,
  modifier character varying(80),
  phone character varying(255),
  postalcode character varying(255),
  postbox character varying(255),
  sourceid bigint,
  standard integer DEFAULT 0,
  street character varying(255),
  usage integer,
  vers bigint,
  company bigint,
  contact bigint,
  country bigint,
  federalstate bigint,
  organisation bigint NOT NULL,
  participant bigint,
  CONSTRAINT address_pkey PRIMARY KEY (id ),
  CONSTRAINT fk_address_company FOREIGN KEY (company)
      REFERENCES company (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE,
  CONSTRAINT fk_address_contact FOREIGN KEY (contact)
      REFERENCES contact (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE,
  CONSTRAINT fk_address_country FOREIGN KEY (country)
      REFERENCES country (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_address_federalstate FOREIGN KEY (federalstate)
      REFERENCES federalstate (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_address_organisation FOREIGN KEY (organisation)
      REFERENCES vivenioorganisation (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_address_participant FOREIGN KEY (participant)
      REFERENCES participant (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE address
  OWNER TO vivenio7;


-- Index: index_address_city


-- DROP INDEX index_address_city;


CREATE INDEX index_address_city
  ON address
  USING btree
  (city COLLATE pg_catalog."default" );


-- Index: index_address_company


-- DROP INDEX index_address_company;


CREATE INDEX index_address_company
  ON address
  USING btree
  (company );


-- Index: index_address_contact


-- DROP INDEX index_address_contact;


CREATE INDEX index_address_contact
  ON address
  USING btree
  (contact );


-- Index: index_address_country


-- DROP INDEX index_address_country;


CREATE INDEX index_address_country
  ON address
  USING btree
  (country );


-- Index: index_address_email


-- DROP INDEX index_address_email;


CREATE INDEX index_address_email
  ON address
  USING btree
  (email COLLATE pg_catalog."default" );


-- Index: index_address_organisation


-- DROP INDEX index_address_organisation;


CREATE INDEX index_address_organisation
  ON address
  USING btree
  (organisation );


-- Index: index_address_participant


-- DROP INDEX index_address_participant;


CREATE INDEX index_address_participant
  ON address
  USING btree
  (participant );


-- Index: index_address_postalcode


-- DROP INDEX index_address_postalcode;


CREATE INDEX index_address_postalcode
  ON address
  USING btree
  (postalcode COLLATE pg_catalog."default" );


-- Index: index_address_standard


-- DROP INDEX index_address_standard;


CREATE INDEX index_address_standard
  ON address
  USING btree
  (standard );


-- Index: index_address_usage


-- DROP INDEX index_address_usage;


CREATE INDEX index_address_usage
  ON address
  USING btree
  (usage );




-- Trigger: tcmdate on address


-- DROP TRIGGER tcmdate ON address;


CREATE TRIGGER tcmdate
  BEFORE UPDATE
  ON address
  FOR EACH ROW
  EXECUTE PROCEDURE setmdate(E'\\\\7800');


-- Trigger: tdeletelog on address


-- DROP TRIGGER tdeletelog ON address;


CREATE TRIGGER tdeletelog
  BEFORE DELETE
  ON address
  FOR EACH ROW
  EXECUTE PROCEDURE deletelog();


-- Trigger: tsetdefault on address


-- DROP TRIGGER tsetdefault ON address;


CREATE TRIGGER tsetdefault
  BEFORE INSERT OR UPDATE
  ON address
  FOR EACH ROW
  EXECUTE PROCEDURE setaddressdefault(E'\\\\7800');


-- Trigger: tsetfirststandard on address


-- DROP TRIGGER tsetfirststandard ON address;


CREATE TRIGGER tsetfirststandard
  BEFORE INSERT
  ON address
  FOR EACH ROW
  EXECUTE PROCEDURE setaddressdefaultfirst();






If we run the update twice we get another number of not updated rows.

pgsql-bugs by date:

Previous
From: Maciek Sakrejda
Date:
Subject: Re: BUG #8656: Duplicate data violating unique constraints
Next
From: Tom Lane
Date:
Subject: Re: BUG #8659: Broken dependencies on RHEL6 for 9.2.6 RPMs