SL::DB::CustomVariable->value für Typ Nummer auch wirklich Nummer zurückgeben
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 16 Jul 2015 15:04:54 +0000 (17:04 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 16 Jul 2015 15:07:39 +0000 (17:07 +0200)
commit0e75a632271124a628dd600cb7eac739b595144d
tree7a1ad66089776fe6d2b2b35e9f7442695588bab6
parent2ad2d77d0a1f588c03acc8fd05c1817b70a99e27
SL::DB::CustomVariable->value für Typ Nummer auch wirklich Nummer zurückgeben

Da die Spalte number_value in der DB vom Typ numeric() ist, wird das von
Rose als String eingelesen. Das bedeutet, dass ->number_value z.B. der
Wert '0.00000' liefert, was im Booleschen Kontext trueish ist – nicht
das, was der Programmierer erwarten würde.

Statt dessen erwartet der Programmierer, dass !$zahl für den Wert 0 auch
wirklich zutrifft.

Daher sollte ->value für CVars vom Typ Nummer auch wirklich eine Zahl
zurückgeben, was durch ein * 1 erzwungen wird. Ausnahme: undef, was
weiterhin undef bleibt.
SL/DB/CustomVariable.pm