[TYPO3-core] RFC #11119: DBAL: Mapping in query does not takes care of remapping "table.field" in a WHERE clause

Xavier Perseguers typo3 at perseguers.ch
Mon May 18 14:52:00 CEST 2009


Hi,

This is a SVN patch request.

Type: Bugfix

Branches: trunk

BT reference:
http://bugs.typo3.org/view.php?id=11119

Problem:
When remapping name of table X, any query selecting data from table Y 
and having a WHERE condition on some field of table X won't get the name 
of table X remapped if it is given as a value of a comparison.

E.g. when using TemplaVoila with Oracle, one has to remap a table to 
prevent name length overflow:

$TYPO3_CONF_VARS['EXTCONF']['dbal']['mapping'] = array(
     'tx_templavoila_datastructure' => array(
         'mapTableName' => 'tx_templavoila_ds',
     ),
);

Any query selecting data on tx_templavoila_datastructure is in fact 
issued on table tx_templavoila_ds when accessing the database.

But if we edit a page, a query is issued on table pages with a condition 
on a field of tx_templavoila_datastructure in the "value" part of the 
comparison:

SELECT * FROM pages WHERE pages.uid = tx_templavoila_datastructure.pid

The current implementation of the mapping is not able to remap a table 
*and* a field name in the value part of the comparison, it handles a 
"table + field" value definition but only remap the field part.

Solution:
Do not assume that the table name for the value part is the table used 
in the "FROM" part of the query and map both table and field names if 
needed.

-- 
Xavier Perseguers
DBAL-Member

http://xavier.perseguers.ch/en/tutorials/typo3.html
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 11119.diff
Url: http://lists.netfielders.de/pipermail/typo3-team-core/attachments/20090518/6c9f174d/attachment.txt 


More information about the TYPO3-team-core mailing list