[Tarantool-patches] [PATCH v3 19/20] netbox: introduce prepared statements

Sergey Ostanevich sergos at tarantool.org
Mon Dec 30 17:16:47 MSK 2019


Hi!

Thanks, LGTM.


Sergos

On 30 Dec 11:58, Nikita Pettik wrote:
> On 25 Dec 23:41, Sergey Ostanevich wrote:
> > Hi!
> > 
> > Thanks for the patch, one nit and one question.
> > 
> > Regards,
> > Sergos
> > 
> > 
> > 
> > On 20 Dec 15:47, Nikita Pettik wrote:
> > > @@ -1738,12 +1781,15 @@ tx_process_sql(struct cmsg *m)
> > >  		port_destroy(&port);
> > >  		goto error;
> > >  	}
> > > -	if (port_dump_msgpack(&port, out) != 0) {
> > > +	/* Nothing to dump in case of UNPREPARE request. */
> > > +	if (! is_unprepare) {
> > 
> > Unary ops - no spaces.
> 
> Ok, fixed.
>  
> > > +		if (port_dump_msgpack(&port, out) != 0) {
> > > +			port_destroy(&port);
> > > +			obuf_rollback_to_svp(out, &header_svp);
> > > +			goto error;
> > > +		}
> > >  		port_destroy(&port);
> > > -		obuf_rollback_to_svp(out, &header_svp);
> > > -		goto error;
> > >  	}
> > > -	port_destroy(&port);
> > >  	iproto_reply_sql(out, &header_svp, msg->header.sync, schema_version);
> > >  	iproto_wpos_create(&msg->wpos, out);
> > >  	return;
> > > diff --git a/src/box/lua/net_box.lua b/src/box/lua/net_box.lua
> > > index c2e1bb9c4..b4811edfa 100644
> > > --- a/src/box/lua/net_box.lua
> > > +++ b/src/box/lua/net_box.lua
> > > @@ -104,6 +104,8 @@ local method_encoder = {
> > >      upsert  = internal.encode_upsert,
> > >      select  = internal.encode_select,
> > >      execute = internal.encode_execute,
> > > +    prepare = internal.encode_prepare,
> > > +    unprepare = internal.encode_prepare,
> > >      get     = internal.encode_select,
> > >      min     = internal.encode_select,
> > >      max     = internal.encode_select,
> > > @@ -128,6 +130,8 @@ local method_decoder = {
> > >      upsert  = decode_nil,
> > >      select  = internal.decode_select,
> > >      execute = internal.decode_execute,
> > > +    prepare = internal.decode_prepare,
> > > +    unprepare = decode_nil,
> 
> No. Result of prepare contains metadata (like names, types etc),
> meanwhile result of unprepare contains only response status,
> so there's nothing to decode.
>  
> > should it be internal.decode_prepare?
> > 
> > >      get     = decode_get,
> > >      min     = decode_get,
> > >      max     = decode_get,


More information about the Tarantool-patches mailing list