Openbravo Issue Tracking System - Openbravo ERP | ||||||||||||
| View Issue Details | ||||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | |||||||
| 0007793 | Openbravo ERP | A. Platform | public | 2009-02-06 12:04 | 2012-02-20 11:41 | |||||||
| Reporter | dalsasua | |||||||||||
| Assigned To | shuehner | |||||||||||
| Priority | normal | Severity | minor | Reproducibility | always | |||||||
| Status | closed | Resolution | out of date | |||||||||
| Platform | OS | 20 | OS Version | rPath Linux | ||||||||
| Product Version | pi | |||||||||||
| Target Version | Fixed in Version | |||||||||||
| Merge Request Status | ||||||||||||
| Review Assigned To | ||||||||||||
| OBNetwork customer | No | |||||||||||
| Web browser | ||||||||||||
| Modules | Core | |||||||||||
| Support ticket | ||||||||||||
| Regression level | ||||||||||||
| Regression date | ||||||||||||
| Regression introduced in release | ||||||||||||
| Regression introduced by commit | ||||||||||||
| Triggers an Emergency Pack | No | |||||||||||
| Summary | 0007793: substr overloading for postgresql not working | |||||||||||
| Description | In the Oracle native substr function, when an index of 0 is received as first position of the string, it turns it to a 1. In postgresql, if a 0 is received, then no value is returned as first character, so there exists a function called substr in OpenbravoERP that tries to emulate this behavior: -- Function: substr(character varying, numeric, numeric) CREATE OR REPLACE FUNCTION substr(character varying, numeric, numeric) RETURNS character varying AS $BODY$ BEGIN return substr($1,CAST((CASE $2 WHEN 0 THEN 1 ELSE $2 END) AS INTEGER), CAST($3 AS INTEGER)); END; $BODY$ LANGUAGE 'plpgsql' IMMUTABLE COST 100; Actually, this is not working, because when a substr function is invoked, then the postgresql native one is executed. The difference between both functions is in the parameter types: The one in Openbravo ERP: substr(character varying, numeric, numeric) Included in Postgresql catalog: substr(text, integer, integer) as well as substr(bytea, integer) substr(text, integer) substr(bytea, integer, integer) substr function must be re-defined | |||||||||||
| Steps To Reproduce | In Oracle: select substr('123',0,2) from dual; -> 12 select substr('123',0,1) from dual; -> 1 In Postgresql: select substr('123',0,2); -> 1 select substr('123',0,1); -> <empty string> | |||||||||||
| Proposed Solution | ||||||||||||
| Additional Information | ||||||||||||
| Tags | No tags attached. | |||||||||||
| Relationships |
| |||||||||||
| Attached Files | ||||||||||||
| Issue History | ||||||||||||
| Date Modified | Username | Field | Change | |||||||||
| 2009-02-24 12:10 | psarobe | Type | defect => backport | |||||||||
| 2009-02-24 12:10 | psarobe | fix_in_branch | => 2.40 | |||||||||
| 2009-02-24 12:11 | psarobe | Assigned To | pjuvara => shuehner | |||||||||
| 2012-02-20 11:41 | shuehner | Status | scheduled => closed | |||||||||
| 2012-02-20 11:41 | shuehner | Resolution | open => out of date | |||||||||
| There are no notes attached to this issue. |