Monatsarchiv für November 2005

Postgre

Sonntag, den 6. November 2005

Vor einiger Zeit bin ich über ein mühsames Detail im ansonsten grossartigen PostgreSQL gestolpert. Wir hatten eine Tabelle mit einem numeric Feld. Bei Vergleichen mit Konstanten reklamierte Postgre es könne keinen Operator für die Typen numeric und double precision finden.

Da wir bei den restlichen unterstützten Datenbanken eh double precision verwenden war das gerade ein guter Grund den Typ dieses Feldes zu ändern. Jetzt stellte sich aber herause, dass Postgre nur Konstanten mit weniger als 15 Nachkommastellen als double precision betrachtet. Alles was mehr Stellen hat ist numeric:

daniel=# d tr_table_okpx
Table "tr_table_okpx"
Column    |           Type           | Modifiers
-------------+--------------------------+-----------
id          | character(20)            | not null
obj_version | bigint                   |
pvalid      | boolean                  |
pexpires    | timestamp with time zone |
pamount     | bigint                   |
pobject     | character(20)            |
ppassword   | character varying(255)   |
prating     | double precision         |
Primary key: tr_table_okpx_pkey
daniel=# SELECT * FROM tr_table_okpx WHERE prating >= 3.5999999999999999996;
ERROR:  Unable to identify an operator '>=' for types 'double precision' and 'numeric'
You will have to retype this query using an explicit cast
daniel=# SELECT * FROM tr_table_okpx WHERE prating >= 3.5999999999996;
id | obj_version | pvalid | pexpires | pamount | pobject | ppassword | prating
----+-------------+--------+----------+---------+---------+-----------+---------
(0 rows)

Und da auch ein Upgrade auf die aktuellste PostgreSQL Version nichts gebracht hat müssen wir jetzt halt wohl oder übel diesen Cast benutzen:

SELECT * FROM tr_table_okpx WHERE prating >= 3.5999999999999999996::double precision;
id | obj_version | pvalid | pexpires | pamount | pobject | ppassword | prating
----+-------------+--------+----------+---------+---------+-----------+---------
(0 rows)

Buchstabieren mit Flickr

Samstag, den 5. November 2005

Wet DE0367B&WsPITE

fspell, gefunden über YubNub, einer “Kommandozeile fürs Web”.

No comment

Dienstag, den 1. November 2005

Der Server-Admin hats wiedermal verbockt und nichts geht mehr. Bis das entweder gefixt wird, oder ich wenigstens weiss, wieso PHP wiedermal keine Berechtigung hat, in meine Verzeichnisse zu schreiben. Sorry, bis auf weiteres sind keine Kommentare möglich. Bald, bald zieht die Seite um… dann wird alles besser… vieleicht…