Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||
ID | |||||||||||
0007412 | |||||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||||
design defect | [Openbravo ERP] A. Platform | minor | always | 2009-02-06 12:04 | 2017-03-31 14:36 | ||||||
Reporter | dalsasua | View Status | public | ||||||||
Assigned To | AugustoMauch | ||||||||||
Priority | normal | Resolution | open | Fixed in Version | |||||||
Status | acknowledged | Fix in branch | 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 | 0007412: 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 | OB3-Reviewed | ||||||||||
Attached Files | |||||||||||
Relationships [ Relation Graph ] [ Dependency Graph ] | ||||||||
|
Notes | |
(0013343) pjuvara (reporter) 2009-02-11 14:36 |
This is not a feature request but a defect since the function does not work as intended. |
(0045394) AugustoMauch (administrator) 2012-02-23 10:25 |
This issue has been updated to design defect because the change required is too risky. When a function is called in postgreSQL, the system looks first for its definition in the pg_catalog schema, where all the built-in functions are stored. In order to be able to override a built-in function(as is the case), we should modify the postgreSQL search path, placing pg_catalog after our schema. This is risky because after that, all overriden functions that are now defined in Openbravo - but not being called - will start being used, and some of that functions might be wrong so the application could stop working. |
Issue History | |||
Date Modified | Username | Field | Change |
2009-02-06 12:04 | dalsasua | New Issue | |
2009-02-06 12:04 | dalsasua | Assigned To | => rafaroda |
2009-02-06 12:04 | dalsasua | sf_bug_id | 0 => 2572052 |
2009-02-06 12:04 | dalsasua | Regression testing | => No |
2009-02-11 11:50 | rafaroda | Assigned To | rafaroda => pjuvara |
2009-02-11 14:36 | pjuvara | Note Added: 0013343 | |
2009-02-11 14:36 | pjuvara | Type | feature request => defect |
2009-02-24 12:10 | psarobe | Status | new => scheduled |
2009-02-24 12:10 | psarobe | Assigned To | pjuvara => shuehner |
2009-02-24 12:10 | psarobe | fix_in_branch | => trunk |
2011-10-28 10:03 | psarobe | Tag Attached: OB3-Reviewed | |
2012-02-20 11:17 | shuehner | Assigned To | shuehner => alostale |
2012-02-22 15:36 | alostale | Assigned To | alostale => marvintm |
2012-02-22 16:10 | marvintm | Assigned To | marvintm => AugustoMauch |
2012-02-23 10:25 | AugustoMauch | Note Added: 0045394 | |
2012-02-23 10:25 | AugustoMauch | Type | defect => design defect |
2012-02-23 10:25 | AugustoMauch | fix_in_branch | pi => |
2017-03-31 14:36 | alostale | Status | scheduled => acknowledged |
Copyright © 2000 - 2009 MantisBT Group |