From: SourceForge.net <no...@so...> - 2007-07-17 22:56:09
|
Bugs item #1755777, was opened at 2007-07-17 18:56 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=116528&aid=1755777&group_id=16528 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: PgNumeric Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Ken Lalonde (kenlalonde) Assigned to: Nobody/Anonymous (nobody) Summary: PgNumeric += is strange Initial Comment: The augmented arithmetic operations on PgNumeric instances will update the object directly, instead of creating a new one. This leads to unexpected results such as: $ cat t.py from pyPgSQL.PgSQL import PgNumeric a = PgNumeric(1.0) b = a b += 1 print a, b $ python t.py 2.0 2.0 Here we see b is incremented, but both a and b are changed, because the __iadd__ method updates b in place. Call me naive, but I would expect "b += 1" to behave exactly like "b = b+1". Perhaps PgNumeric should allocate a new object if the old one has multiple references? I'm not sure, but the current behavior is not intuitive, and leads to hard-to-find bugs. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=116528&aid=1755777&group_id=16528 |