[TYPO3-core] RFC: Bugfix #7545: Explain select not working with multiple tables
ingo schmitt
mailinglisten at i-schmitt.de
Tue Feb 26 18:06:41 CET 2008
During the discussion with michael about this bug, we came with the
idea, that we can extract the tables from the explain results, and
therefore we can get rid of the SQL Parser.
The attached patch solves this issue and works fine with my installations.
Ingo
> The patch has some problems which however are most likely not found unless
> you remove the condition that skips results with only one row.
>
> It seems like $sqlParserObj->compileFromTables() is of no help because it's
> exactly the opposite of $sqlParserObj->parseFromTables(). So the result
> would be the same like _before_ the parsing operation.
>
> Attached is a new patch which adds JOIN tables directly, not using the SQL
> parser any more. Please try.
>
> - michael
>
> ingo schmitt wrote:
>
>> Hi,
>>
>> please see my attached new patch, which corrects this problem. (also in
>> the bugtracker).
>>
>> ingo
>>
>>
>>> Hey Ingo,
>>>
>>> just tried the patch. I can reproduce an error when using tt_news in
>>> list mode. When activated "explain SQL" I get this:
>>>
>>> "SHOW INDEX FROM tt_news LEFT OUTER JOIN tt_news_cat_mm ON tt_news.uid =
>>> tt_news_cat_mm.uid_local"
>>>
>>> You have an error in your SQL syntax; check the manual that corresponds
>>> to your MySQL server version for the right syntax to use near 'LEFT
>>> OUTER JOIN tt_news_cat_mm ON tt_news.uid = tt_news_cat_mm.uid_local' at
>>> line 1
>>>
>>> Anyway, I applied your patch and still get the error.
>>>
>>>
>>> ingo schmitt wrote:
>>>> Hi Benjamin,
>>>>
>>>>> looks very good. +1 after reading. I'd really like to see this patch
>>>>> in action though.
>>>>>
>>>>> Can you give us small instructions on how to reproduce this? Thanks a
>>>>> ton!
>>>> Activate: SQL-Debug in Install-Tool
>>>> Activate: Debug and set you IP dev mask to your IP in Install-Tool
>>>> (
>>>> $TYPO3_CONF_VARS['FE']['debug'] = 1;
>>>> $TYPO3_CONF_VARS['SYS']['sqlDebug'] = '1';
>>>> )
>>>> (BTW: Where can I set the later option in installtool 2?)
>>>>
>>>> Activate: Admin-Panel in TS
>>>> Activate: "Explain SELECT queries" in Admin Panel
>>>>
>>>> Render in frontent a page with tt_news records:
>>>>
>>>> "You have an error in your SQL syntax; check the manual that
>>>> corresponds to your MySQL server version for the right syntax to use
>>>> near 'INNER JOIN tt_news_cat_mm ON (tt_news_cat.uid =
>>>> tt_news_cat_mm.uid_foreign)
>>>> ' at line 2
>>>>
>>>> SHOW INDEX FROM tt_news_cat
>>>> INNER JOIN tt_news_cat_mm ON (tt_news_cat.uid =
>>>> tt_news_cat_mm.uid_foreign)
>>>> INNER JOIN tt_news ON (tt_news.uid = tt_news_cat_mm.uid_local)"
>>>>
>>>>
>>>> ingo
>>>>
>>>>
>>>>
>>>> Mit freundlichen Gruessen
>>
>> Mit freundlichen Gruessen
>
Mit freundlichen Gruessen
--
Ingo Schmitt mailto:is at marketing-factory.de
Marketing Factory Consulting GmbH http://typo3.marketing-factory.de/
Content Management mit Typo3: Beratung - Schulung - Realisierung
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 7545_no_sqlparser.patch
Url: http://lists.netfielders.de/pipermail/typo3-team-core/attachments/20080226/2aa8a2a0/attachment.txt
More information about the TYPO3-team-core
mailing list