|
From: | Florian Henry |
Subject: | [Dolibarr-dev] About PgSQL Support and SQL standard |
Date: | Thu, 25 Apr 2013 12:49:28 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 |
Dear developpers, I'm currently experiement lot's of problem with PostgreSQL only due to non SQL respect standard. As reminder with an agregate SQL function you must put in GROUP BY all field that are not in the agreate For example : SELECT t.name,t.id, SUM(t.cost) FROM llx_table GROUP BY t.id That's WRONG ! MySQL let it go, but PgSQL no ! Correct version is SELECT t.name,t.id, SUM(t.cost) FROM llx_table GROUP BY t.name,t.id This kind of problem cannot be detected by UnitTest because most of the time the are on list, not in object method, but in list SQL. Other common problem is into insert or update method If your field is an integer, you must have this to build the request : $sql.= " ".(! empty($this->fk_fourn)?"'".$this->fk_fourn."'":"null"); and NOT $sql.= " '".(! empty($this->fk_fourn)?$this->fk_fourn:"null")."'"; Try to sent update or insert request UPDATE llx_table SET fk_fourn='' WHERE ... in PgSQL it will say '' is not a valid inter, and is right. Once again MySQL let it go but insert 0 instead of NULL.... Regards -- Florian HENRY address@hidden +33 6 03 76 48 07 http://www.open-concept.pro Twitter : @_Open_Concept_ |
[Prev in Thread] | Current Thread | [Next in Thread] |