← Back to team overview

pbxt-discuss team mailing list archive

Re: free_table_share() != drizzle

 

Hi Brian,

Are you suggesting I create a TableShare on the stack whenever I need it?

I don't think this would work because AFAIK I have to call open_table_def(), which loads the table definition. So calling this each time I want to copy data in and out of the row would be too slow.

What may work is to use a TableShare object instead of a Table object.

Question is, can I do something like:

share = new TableShare();

share->init(db_name, 0, name, path);

error = open_table_def(&thd, *ident, share);

and then later simply:

delete share;

to remove.

On May 14, 2010, at 9:03 PM, Brian Aker wrote:

Hi!

On May 14, 2010, at 9:37 AM, Paul McCullagh wrote:

Here the engine will follow the "table" pointer to the "field" array, where it uses the offsets of the data in a record, in order to copy data in and out of the record.

So what you need is the Field** that is in share (aka, you don't even need Table, you just need TableShare).

You could just do this:

TableShare my_share(<share_key>,....);

That way you have your own object and you never pass through any of the locking system/dealing with any of the object counting.

Cheers,
	-Brian




--
Paul McCullagh
PrimeBase Technologies
www.primebase.org
www.blobstreaming.org
pbxt.blogspot.com






Follow ups

References