[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