From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 90A282318B for ; Mon, 22 Apr 2019 14:02:20 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XSruqWjGOQR5 for ; Mon, 22 Apr 2019 14:02:20 -0400 (EDT) Received: from smtpng2.m.smailru.net (smtpng2.m.smailru.net [94.100.179.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 5D0EC29446 for ; Mon, 22 Apr 2019 14:02:19 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH 8/9] sql: make LIKE predicate return boolean result References: <851f5d59-c3ce-fea4-ecbe-463525436f8e@tarantool.org> From: Vladislav Shpilevoy Message-ID: Date: Mon, 22 Apr 2019 21:02:17 +0300 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: "n.pettik" , tarantool-patches@freelists.org Thanks for the fixes! > diff --git a/src/box/sql/vdbemem.c b/src/box/sql/vdbemem.c > index 1590a3550..69aea5ef5 100644 > --- a/src/box/sql/vdbemem.c > +++ b/src/box/sql/vdbemem.c > @@ -803,7 +803,7 @@ sqlVdbeMemSetInt64(Mem * pMem, i64 val) > } > > void > -vdbe_mem_set_boolean(struct Mem *mem, bool value) > +vdbe_mem_set_bool(struct Mem *mem, bool value) > { > 1. We now have mem_value_bool(), and so as to be consistent it would be better to name this function mem_set_bool(), not vdbe_mem_set_bool(). It does not take struct Vdbe pointer anyway. 2. Is there any concrete reason why vdbe_mem_set_bool() is not used now in the following places? vdbe.c:1101 pOut = out2Prerelease(p, pOp); assert(pOp->p1 == 1 || pOp->p1 == 0); pOut->flags = MEM_Bool; pOut->u.b = pOp->p1; break; vdbe.c:2275 memAboutToChange(p, pOut); MemSetTypeFlag(pOut, MEM_Bool); pOut->u.b = res2; REGISTER_TRACE(pOp->p2, pOut); vdbe.c:2471 pOut->u.b = v1; MemSetTypeFlag(pOut, MEM_Bool); vdbe.c:2495 pOut->flags = MEM_Bool; pOut->u.b = ! pIn1->u.b; If it works for them, then I propose to move vdbe_mem_set_bool() to the patch 'sql: introduce type boolean', and use it. Also, please, consider this minor review fix, on the branch: ================================================================== diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h index 8426f9b5f..07c887bb4 100644 --- a/src/box/sql/sqlInt.h +++ b/src/box/sql/sqlInt.h @@ -499,7 +499,7 @@ void sql_result_int(sql_context *, int); void -sql_result_bool(sql_context *ctx, bool value); +sql_result_bool(struct sql_context *ctx, bool value); void sql_result_int64(sql_context *, sql_int64); diff --git a/src/box/sql/vdbeapi.c b/src/box/sql/vdbeapi.c index c2a319dbd..9a405c8ee 100644 --- a/src/box/sql/vdbeapi.c +++ b/src/box/sql/vdbeapi.c @@ -387,7 +387,7 @@ sql_result_int(sql_context * pCtx, int iVal) } void -sql_result_bool(sql_context *ctx, bool value) +sql_result_bool(struct sql_context *ctx, bool value) { vdbe_mem_set_bool(ctx->pOut, value); }