[Phpmyadmin-devel] Rebuilding the sql from the scratch

Marc Delisle marc at infomarc.info
Tue Oct 30 17:37:31 CET 2012


Chanaka Dharmarathna a écrit :
>>> I'm working on bug [0].
>>> Relevant modifications to the sql query is done inside tbl_export.php,
>>> according to the selected results from the table browse window which is
>>> going to export. When modifying the query, it actually rebuild from the
>>> scratch.
>>>
>>> As I understand there are 2 requirements for modify the query.
>>> 1. Remove the LIMIT clause (for append any where clause)
>>> 2. Add needed filtering clause (additional where clause)
>>>
>>> To do the above things is it really need to rebuild the query from the
>>> scratch ?
>>> I don't think that there are scenarios which need to modify the beginning
>>> part of he query (before where clause). So is it okay to modify the query
>>> only from the where clause. Though the current analyzer doesn't support
>> for
>>> the multiple select statements, hopefully this will fix the bug I
>> mentioned.
>>> Any thoughts on this ?
>> Chanaka,
>> I believe this is going to be tricky to solve, because there could be
>> many WHERE clauses (in the main SELECT and in the subselect).
>>
> 
> Hi Marc,
> 
> I mean for any case even it has multiple where clauses, the select part
> will not be changed. Rebuilding this first part messing up the query if
> there are sub queries. In following query unchanged first part is in bold.
> *SELECT `id`, `name` FROM `customers`* WHERE id NOT IN ( SELECT id FROM
> companies WHERE name LIKE '%u%')
> 
> Apart from that, SQL with several where clauses, can be represented as a
> one SQL query (without any sub queries and with only one where clause).
> Currently that's reached by using the primary key values of the resulted
> table rows which are going to export.
> 
> But when building new where clause, other than only combining those primary
> key values with 'OR' clause, at the end another clause is appended which is
> from analyzed sql [0]. That where clause is the last where clause of the
> original SQL query. I don't see any use of this since we already can
> identify the rows by primary key.
> 
> Your thoughts on this will be very helpful to go forward correctly.
> 
> [0] :
> https://github.com/phpmyadmin/phpmyadmin/blob/master/tbl_export.php#L61
> 
> Regards !

Hi Chanaka,
your reasonning seems OK to me.


-- 
Marc Delisle
http://infomarc.info




More information about the Developers mailing list