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

Michael Miousse mmiousse at infoglobe.ca
Fri Jun 5 20:30:12 CEST 2009


Le Thu, 28 May 2009 07:23:48 +0200, Xavier Perseguers a écrit :

> Hi,
> 
> This is a friendly reminder (#1)
> 
> Xavier
> 
> 
> 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.
>>

+1 by testing sory for the delay


More information about the TYPO3-team-core mailing list