[tarantool-patches] Re: [PATCH 03/10] Encode a dml statement to a transaction memory region

Konstantin Osipov kostja.osipov at gmail.com
Wed Apr 24 21:28:11 MSK 2019


* Georgy Kirichenko <georgy at tarantool.org> [19/04/19 19:59]:
> Prerequisites: #1254
> ---
>  src/box/request.c |  2 +-
>  src/box/txn.c     |  2 +-
>  src/box/vy_log.c  |  2 +-
>  src/box/vy_stmt.c |  6 ++++--
>  src/box/xrow.c    | 21 +++++++++++++++------
>  src/box/xrow.h    | 12 +++++++++---
>  6 files changed, 31 insertions(+), 14 deletions(-)
> 
> diff --git a/src/box/request.c b/src/box/request.c
> index 9c684af73..9edd1f8b1 100644
> --- a/src/box/request.c
> +++ b/src/box/request.c
> @@ -61,7 +61,7 @@ request_update_header(struct request *request, struct xrow_header *row)
>  	if (row == NULL)
>  		return 0;
>  	row->type = request->type;
> -	row->bodycnt = xrow_encode_dml(request, row->body);
> +	row->bodycnt = xrow_encode_dml(request, &fiber()->gc, false, row->body);

I don't understand the business with copy_tuple. Why do you need
it? Why not always copy the tuple? Why not have a separate wrapper
which would copy the body, e.g. xrow_encode_dml_and_copy_body()?

request_update_header() should be  using txn memory, I don't see
why it uses region memory in your patch. I haven't seen the
subsequent patches, I hope it is addressed there. If not, please
do.

-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov




More information about the Tarantool-patches mailing list