Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
ID | ||||||||
0007793 | ||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | |||
backport | [Openbravo ERP] A. Platform | minor | always | 2009-02-06 12:04 | 2012-02-20 11:41 | |||
Reporter | dalsasua | View Status | public | |||||
Assigned To | shuehner | |||||||
Priority | normal | Resolution | out of date | Fixed in Version | ||||
Status | closed | Fix in branch | 2.40 | Fixed in SCM revision | ||||
Projection | none | ETA | none | Target Version | ||||
OS | Linux 32 bit | Database | PostgreSQL | Java version | 1.6.0_11 | |||
OS Version | rPath Linux | Database version | 8.3.5 | Ant version | 1.7.1 | |||
Product Version | pi | SCM revision | ||||||
Review Assigned To | ||||||||
Web browser | ||||||||
Modules | Core | |||||||
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> | |||||||
Tags | No tags attached. | |||||||
Attached Files | ||||||||
Relationships [ Relation Graph ] [ Dependency Graph ] | ||||||||
|
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 |
Copyright © 2000 - 2009 MantisBT Group |