Bug #17918
closedMapping of fieldnames in SQL-functions like MIN(), MAX() or SUM() does not work
0%
Description
If you use SQL-Functions like MIN, MAX or SUM in SQL-Queries the fieldmapping does not work. Example:
SELECT tstamp, script, SUM as calc_sum, count(*) AS qrycount, MAX as error FROM tx_dbal_debuglog
will produce
SELECT tstamp, script, SUM as calc_sum, count(*) AS qrycount, MAX as error FROM tx_dbal_debuglog
even if the mapping for the field "errorFlag" would be "errorflag" (with a small f).
This gets problematic if your database supports only lowercase fieldnames and the fieldname has upper-case letters (eg. tx_dbal_debuglog:errorFlag), because the field can not be found, which results in an error message.
With the attached patch the DBAL knows how to handle fieldnames inside SQL-Functions and maps it correctly to the desired value.
The patch adds a new condition in class.ux_t3lib_db.php->map_sqlParts() which checks for content in "func_content". If a mapping instruction for "func_content" can be found, the mapping will be processed.
Tested on Postgres 8.1.10 with DBAL 0.9.20 on TYPO3 4.1.2
(issue imported from #M6953)
Files