From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 89C056E459; Fri, 19 Nov 2021 11:14:27 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 89C056E459 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1637309667; bh=AW+GYUy2dVwF6mdc6e30SgQhJlLmM+fsAVjXqddaXNo=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=Kg5AdbXdscZFlNV9Ck0WVXxdHaW+eaEq7Zd2mB1zPz6R+WR40mcjkNfO2m3+mJCDH nAQzWTla/aE61znroYa2hvbvMi9xujaO6GHnrPcV6HQCJdllqTc329MSpfk9SkvRep 321no7A5IqZVe3RPP8GwG6/J6FjETXKlaHB4f0Hg= Received: from smtpng1.i.mail.ru (smtpng1.i.mail.ru [94.100.181.251]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 6C7666E459 for ; Fri, 19 Nov 2021 11:14:25 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 6C7666E459 Received: by smtpng1.m.smailru.net with esmtpa (envelope-from ) id 1mnz2O-0001pG-Os; Fri, 19 Nov 2021 11:14:25 +0300 Date: Fri, 19 Nov 2021 11:14:23 +0300 To: Vladislav Shpilevoy Cc: tarantool-patches@dev.tarantool.org Message-ID: <20211119081423.GA48713@tarantool.org> References: <351cadea401fc74c843e3e414d0da5242336563f.1636717171.git.imeevma@gmail.com> <330552df-201e-82ac-a841-4dbb55c2a9d6@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <330552df-201e-82ac-a841-4dbb55c2a9d6@tarantool.org> X-4EC0790: 10 X-7564579A: EEAE043A70213CC8 X-77F55803: 4F1203BC0FB41BD9731B3922EC06397937ACD9F9D925B8A4D0834C089629670100894C459B0CD1B9A81AF4E22FEE13E91DF775DDD8F8FAF00F42BF92693176A9021035654F677716 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE74EC61905B8C6A847EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637C2EE9128AC0EB2C78638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8D3642F71672151CA6875012357033C77117882F4460429724CE54428C33FAD305F5C1EE8F4F765FC2EE5AD8F952D28FBA471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F44604297287769387670735201E561CDFBCA1751F2CC0D3CB04F14752D2E47CDBA5A96583BA9C0B312567BB231DD303D21008E29813377AFFFEAFD269A417C69337E82CC2E827F84554CEF50127C277FBC8AE2E8BA83251EDC214901ED5E8D9A59859A8B6300D3B61E77C8D3B089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-C1DE0DAB: 0D63561A33F958A5A944E9AB920474369EC73BEC9EEF490C3B5551812B5F262CD59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA7506FE1F977233B9BB410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34AB80C45F81B80D63B5DF362F3022428EFAD2578DAC086F4200782D99502AB230B57E3A3F148A1F581D7E09C32AA3244C886DFD4618B2B3631CCE9577650B6529B018FE5BB746DCD1729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojUkwcpHt8ZEeXdxgrUTgwEQ== X-Mailru-Sender: 689FA8AB762F7393C37E3C1AEC41BA5D553B0E5B0482076092089901B5784B5683D72C36FC87018B9F80AB2734326CD2FB559BB5D741EB96352A0ABBE4FDA4210A04DAD6CC59E33667EA787935ED9F1B X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v1 1/1] sql: introduce DECIMAL to SQL built-in functions X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Mergen Imeev via Tarantool-patches Reply-To: Mergen Imeev Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi! Thank you the review! My answer and diff below. On Mon, Nov 15, 2021 at 10:39:38PM +0100, Vladislav Shpilevoy wrote: > Hi! Thanks for the patch! > > > diff --git a/src/box/sql/func.c b/src/box/sql/func.c > > index 5abaf490d..684fcc275 100644 > > --- a/src/box/sql/func.c > > +++ b/src/box/sql/func.c > > @@ -258,6 +258,20 @@ func_abs_double(struct sql_context *ctx, int argc, const struct Mem *argv) > > mem_set_double(ctx->pOut, arg->u.r < 0 ? -arg->u.r : arg->u.r); > > } > > > > +static void > > +func_abs_dec(struct sql_context *ctx, int argc, const struct Mem *argv) > > +{ > > + assert(argc == 1); > > + (void)argc; > > + const struct Mem *arg = &argv[0]; > > + if (mem_is_null(arg)) > > + return; > > + assert(mem_is_dec(arg)); > > + decimal_t dec; > > + decimal_abs(&dec, &arg->u.d); > > + mem_set_dec(ctx->pOut, &dec); > > You should be able to use the same argument both for in and out > values: > > decimal_abs(&arg->u.d, &arg->u.d); > > In the 'documentation' of decNumber it is said to be allowed. > See the comment on the function 'decNumberAbs()'. Fixed. Although we still need to copy from arg to pOut. Diff: diff --git a/src/box/sql/func.c b/src/box/sql/func.c index 684fcc275..e3ce6c18e 100644 --- a/src/box/sql/func.c +++ b/src/box/sql/func.c @@ -267,9 +267,8 @@ func_abs_dec(struct sql_context *ctx, int argc, const struct Mem *argv) if (mem_is_null(arg)) return; assert(mem_is_dec(arg)); - decimal_t dec; - decimal_abs(&dec, &arg->u.d); - mem_set_dec(ctx->pOut, &dec); + mem_set_dec(ctx->pOut, &arg->u.d); + decimal_abs(&ctx->pOut->u.d, &ctx->pOut->u.d); } /** Implementation of the CHAR_LENGTH() function. */