The following bug has been logged online: Bug reference: 5891 Logged by: Alexander V. Chernikov Email address: melif...@ipfw.ru PostgreSQL version: 8.4.5 Operating system: FreeBSD 7.3 Description: Unique index is not unique Details:
Just in case if formatting is lost, this data is available at http://postgresql.pastebin.com/4ZZdXEHB Problem table: meganet=# \d billing.bc_payments Table "billing.bc_payments" Column | Type | Modifiers ---------------------------+-----------------------------+------------------ ----------------------------------------------------------- bc_payment_id | integer | not null default nextval('billing.bc_payments_bc_payment_id_seq'::regclass) contractor_name | character varying(255) | not null payment_date | date | not null payment_commission_number | character varying(255) | not null payment_sum | numeric(10,4) | not null contractor_account | character(18) | contractor_bik | character(8) | inn | character varying(16) | payment_comment | character varying(1024) | is_assigned | bit(1) | not null default B'0'::"bit" assign_comment | character varying(255) | assign_maker | integer | assign_date | timestamp without time zone | file_name | character varying(32) | not null line_number | integer | not null parse_date | timestamp without time zone | not null default now() Indexes: "bc_payments_pkey" PRIMARY KEY, btree (bc_payment_id) "bc_payments_payement_idx" UNIQUE, btree (contractor_name, payment_date, payment_commission_number, payment_sum, contractor_account, contractor_bik, inn) Referenced by: TABLE "billing.comein_accounts" CONSTRAINT "comein_accounts_bc_payment_id_fkey" FOREIGN KEY (bc_payment_id) REFERENCES billing.bc_payments(bc_payment_id) TABLE "billing.payments" CONSTRAINT "payments_bc_payment_id_fkey" FOREIGN KEY (bc_payment_id) REFERENCES billing.bc_payments(bc_payment_id) Triggers: londiste_replika_logger AFTER INSERT OR DELETE OR UPDATE ON billing.bc_payments FOR EACH ROW EXECUTE PROCEDURE pgq.logtriga('londiste.replika', 'kvvvvvvvvvvvvvvv', 'billing.bc_payments') Problem index: bc_payments_payement_idx Identical records: meganet=# SELECT count(*), array_agg(bc_payment_id) FROM billing.bc_payments GROUP BY contractor_name, payment_date, payment_commission_number, payment_sum, contractor_account, contractor_bik, inn HAVING count(*) > 1; count | array_agg -------+------------- 2 | {6376,6380} 2 | {6947,6605} (2 rows) Data for those records (some fields data changed) meganet=# select * from billing.bc_payments where bc_payment_id in (6376,6380,6947,6605) order by payment_date; bc_payment_id | contractor_name | payment_date | payment_commission_number | payment_sum | contractor_account | contractor_bik | inn | payment_comment | is_assigned | assign_comment | assign_maker | assign_date | file_name | line_number | parse_date ---------------+------------------------+--------------+-------------------- -------+-------------+--------------------+----------------+------------+--- ---------------------------------------------------------------------------- --------------------------+-------------+----------------+--------------+--- -------------------------+-----------------------+-------------+------------ ---------------- 6376 | ООО "XXX " | 2010-11-09 | 153 | 3416.2000 | 7028106000000XXXX8 | 44XXXXX6 | 77086XXXX6 | Доплата за услуги связи по Договору №2000ZZZ-2000ZZZ/0309 за ноябрь 2010г., включая |НДС 18 % - 521-12. | 1 | ok | 33 | 2010-11-09 20:08:31.28546 | sb20101109_200651.txt | 424 | 2010-11-09 20:08:31.280599 6380 | ООО "XXX " | 2010-11-09 | 153 | 3416.2000 | 7028106000000XXXX8 | 44XXXXX6 | 77086XXXX6 | Доплата за услуги связи по Договору №2000ZZZ-2000ZZZ/0309 за ноябрь 2010г., включая |НДС 18 % - 521-12. | 1 | ok | 33 | 2010-11-09 20:38:29.387315 | sb20101109_203358.txt | 424 | 2010-11-09 20:38:29.377831 6947 | ОАО "YYY " | 2010-12-03 | 1026 | -2200.0000 | 422810268803163353 | 445YYYY6 | 78120YYYY0 | Оплата по счету N SCSN-67YYYY8 от 22/11/2010 г. В т.ч.|НДС 335,59 руб.| | 1 | ok | 33 | 2010-12-09 17:22:28.891094 | sb20101209_163201.txt | 108 | 2010-12-09 17:22:28.881133 6605 | ОАО "YYY " | 2010-12-03 | 1026 | -2200.0000 | 422810268803163353 | 445YYYY6 | 78120YYYY0 | Оплата по счету N SCSN-67YYYY8 от 22/11/2010 г. В т.ч.|НДС 335,59 руб.| | 1 | ok | 33 | 2010-12-09 16:10:00.176578 | sb20101209_160846.txt | 108 | 2010-12-09 16:10:00.173055 (4 rows) meganet=# select version(); version ---------------------------------------------------------------------------- ------------------------------ PostgreSQL 8.4.5 on amd64-portbld-freebsd7.3, compiled by GCC cc (GCC) 4.2.1 20070719 [FreeBSD], 64-bit Backup for ~pgsql/data directory with whose records exists so I can do some additional debugging if needed -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs