[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
Sat Jun 6 13:52:26 CEST 2009


Hi,

REMINDER #2


Xavier Perseguers wrote:
> 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
http://xavier.perseguers.ch/en

One contribution a day keeps the fork away


More information about the TYPO3-team-core mailing list