Was anything ever done with http://archives.postgresql.org/pgsql-
hackers/2008-09/msg01758.php ?
I have a different issue I'm seeing, but I think it's related, and
ISTM it's a bug (on 8.2.10):
SELECT INTO v_prev * FROM installments_static WHERE id = ( SELECT id FROM installments_static i
WHERE i.loan_id = NEW.loan_id AND i.installment_number <
NEW.installment_number ORDER BY installment_number DESC LIMIT 1
);
...RAISE DEBUG $$Previous installment: id = %, due_date = % Current installment: id = %, number = %, loan_id =
%,
installment_date = %, due_date = % Next installment: id = %, installment_date = % v_prev IS NOT NULL = %,
v_prevIS NULL = % v_next IS NOT NULL = %, v_next IS NULL = %$$ , v_prev.id, v_prev.due_date , NEW.id,
NEW.installment_number,NEW.loan_id,
NEW.installment_date, NEW.due_date , v_next.id, v_next.installment_date , v_prev IS NOT NULL, v_prev IS NULL ,
v_nextIS NOT NULL, v_next IS NULL;
psql:sql/installments_static.sql:XX: DEBUG: Previous installment: id
= 5, due_date = XXXX-XX-XX Current installment: id = 8, number = 2, loan_id = 3,
installment_date = XXXX-XX-XX, due_date = XXXX-XX-XX Next installment: id = <NULL>, installment_date = <NULL>
v_prev IS NOT NULL = f, v_prev IS NULL = f -- v_prev is actually set! v_next IS NOT NULL = f, v_next IS NULL
=t -- v_next is unset, ie:
NULL
If I change v_* IS NOT NULL to NOT v_* IS NULL everything's ok:
psql:sql/installments_static.sql:XX: DEBUG: Previous installment: id
= 5, due_date = XXXX-XX-XX Current installment: id = 8, number = 2, loan_id = 3,
installment_date = XXXX-XX-XX, due_date = XXXX-XX-XX Next installment: id = <NULL>, installment_date = <NULL>
NOT v_prev IS NULL = t, v_prev IS NULL = f NOT v_next IS NULL = f, v_next IS NULL = t
--
Decibel!, aka Jim C. Nasby, Database Architect decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828