Alex Esterkin wrote:
> When and how will Value objects be constructed, what structure or
> object will own them and at what stage of query processing will
> ownership of data be transferred? What about Item_subselect or
> Item_ref derivatives? How will Item references handle data ownership
> transfer?
Value objects are constructed by value() methods of Item and Field
classes and returned by value to the caller. These classes do NOT use
the Value object for internal representation of the value. Hence,
there is really no concept of ownership. It's just a way of passing
values around with associated methods to do type conversions.
>
> And all this to improve copying of BLOBs? One of the key strengths
> of MySQL is the ability to do entire BLOB processing by reference,
> without reading or copying.... Is this part of the newly announced
> MySQL reengineering initiative?
Yes. The goal of this task is to remove code duplication by having a
single place for all the type conversions instead of duplicating it
across Item and Field classes.
It seems that using the term Value object for this work is a bit
confusing to people since that term has previously be used in
discussions aroung the storage engine API. My task does not deal with
the SE API. Its focus is only on the runtime structures of the
server.
By the way, I have no plans for changing how BLOBs are copied.
Hope this clarifies a bit,
--
Øystein
>
> Regards,
>
> Alex Esterkin
>
> 2009/5/22 Konstantin Osipov <kostja@stripped>:
>> * Øystein Grøvlen <Oystein.Grovlen@stripped> [09/05/22
21:05]:
>>> The way I have understood it from discussions in the re-engineering
>>> team, I am not going to transfer ownership of data from Item to Value.
>>> So far, Value objects are just used for return values that can easily
>>> converted to other types.
>> Could you please explain with an example how it is going to be
>> easier with your patch?
>>
>> --
>>
>> --
>> MySQL Internals Mailing List
>> For list archives: http://lists.mysql.com/internals
>> To unsubscribe:
http://lists.mysql.com/internals?unsub=1
>>
>>