I believe the optimizer does know that InnoDB has a clustered primary
key, because ha_innobase::primary_key_is_clustered returns true

On Wed, Mar 3, 2010 at 2:22 PM, Gavin Towey <gto...@ffn.com> wrote:
> Yes, but the optimizer doesn't know that.
>
> -----Original Message-----
> From: vegiv...@gmail.com [mailto:vegiv...@gmail.com] On Behalf Of Johan De 
> Meersman
> Sent: Wednesday, March 03, 2010 6:16 AM
> To: Zardosht Kasheff
> Cc: Jonas Oreland; mysql@lists.mysql.com
> Subject: Re: Re bug#45458
>
> Unless I'm very much mistaken, InnoDB tables always have a clustered index
> as their primary key.
>
> On Wed, Mar 3, 2010 at 2:58 PM, Zardosht Kasheff <zardo...@gmail.com> wrote:
>
>> Hello Jonas,
>>
>> Thank you for filing this feature request. Are there plans to add
>> support for clustered indexes in MySQL soon? This is something I have
>> been researching on and off for a while now. Here are my thoughts.
>>
>> It seems that there are two parts to this feature request:
>> 1) a new flag that allows the storage engine to report that an index
>> is clustered
>> 2) changes to the optimizer to properly support clustered keys.
>>
>> I like #1. The way that I dealt with it was not as good. I added
>> handler::supports_clustered_keys(), and used that function and
>> HA_CLUSTERING from my patch to determine if an index is clustered.
>> Your method is better.
>>
>> As for #2, I do not think it is enough. Here are two other locations
>> of code I know that will need to be modified:
>> 1) find_shortest_key in sql/sql_select.cc. (This will be an addition
>> to MySQL bug #39653)
>> 2) get_best_ror_intersect in sql/opt_range.cc. This is for
>> index_merge. A patch of what I have done is in the attached file
>> 9-index_merge_clustering.txt. This patch was the result of a long
>> thread on the internals alias (which you may want to CC for this
>> discussion). The link to the thread is
>> http://lists.mysql.com/internals/36977.
>>
>> There may be more places that need to be modified. I think the
>> approach to finding out if other places need to be modified is to
>> pattern match off of how the optimizer deals with clustered v.
>> non-clustered primary keys. It does so by having a function
>> handler::primary_key_is_clustered. I think one needs to search the
>> optimizer for all instances of this function, see why it is being
>> called, and see if it applies to clustered v. non-clustered secondary
>> keys as well.
>>
>> -Zardosht
>>
>> On Wed, Mar 3, 2010 at 5:57 AM, Jonas Oreland <jo...@mysql.com> wrote:
>> > Hi,
>> >
>> > I just filed http://bugs.mysql.com/bug.php?id=51687
>> > which is very related to your bug#45458.
>> >
>> > If you would care to look at it and provide feedback,
>> > I would appreciate it.
>> >
>> > /Jonas
>> >
>>
>>
>> --
>> MySQL General Mailing List
>> For list archives: http://lists.mysql.com/mysql
>> To unsubscribe:    http://lists.mysql.com/mysql?unsub=vegiv...@tuxera.be
>>
>
>
>
> --
> Bier met grenadyn
> Is als mosterd by den wyn
> Sy die't drinkt, is eene kwezel
> Hy die't drinkt, is ras een ezel
>
> This message contains confidential information and is intended only for the 
> individual named.  If you are not the named addressee, you are notified that 
> reviewing, disseminating, disclosing, copying or distributing this e-mail is 
> strictly prohibited.  Please notify the sender immediately by e-mail if you 
> have received this e-mail by mistake and delete this e-mail from your system. 
> E-mail transmission cannot be guaranteed to be secure or error-free as 
> information could be intercepted, corrupted, lost, destroyed, arrive late or 
> incomplete, or contain viruses. The sender therefore does not accept 
> liability for any loss or damage caused by viruses or errors or omissions in 
> the contents of this message, which arise as a result of e-mail transmission. 
> [FriendFinder Networks, Inc., 220 Humbolt court, Sunnyvale, CA 94089, USA, 
> FriendFinder.com
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/mysql?unsub=zardo...@gmail.com
>
>

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to