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 7D1C16EC55; Wed, 28 Jul 2021 23:51:09 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 7D1C16EC55 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1627505469; bh=YSp4AwmZGKIHIiy7mHGPkITCAqEdTuIaV79QAY6+/RA=; h=To:Cc:Date:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=W2u33aWMQF9hVI2G5Ba7+1JtbYb+v+XQp/oCfgT+O0+YjwdQvEHPWhh4pJkfcGgZF OwRtdap/HDUplpTDu4pDB4PCwgExnPFn0hHa3p0mqzEDU3i8sjwk32x82T/Mqvhbv+ Y7wiAvTGyuFdf/S3/4WkbG4dbycjh7jbuGEIOddY= Received: from smtp49.i.mail.ru (smtp49.i.mail.ru [94.100.177.109]) (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 60C966EC55 for ; Wed, 28 Jul 2021 23:51:07 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 60C966EC55 Received: by smtp49.i.mail.ru with esmtpa (envelope-from ) id 1m8qWA-0007vZ-It; Wed, 28 Jul 2021 23:51:06 +0300 To: v.shpilevoy@tarantool.org Cc: tarantool-patches@dev.tarantool.org Date: Wed, 28 Jul 2021 23:51:06 +0300 Message-Id: X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD941C43E597735A9C30288BCF456A452EC429C5145D5B58EFD182A05F53808504079BACF9FA29B3E6E22A0B7C731E7AA6E019CE56F175EC4F5AEFD3376D4205AA2 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7F12ABE79F2AB44EAEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637737629E79DA7E02D8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D89B07DCE3E2D436BB0D9D804F690A027A117882F4460429724CE54428C33FAD305F5C1EE8F4F765FC8C7ADC89C2F0B2A5A471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F44604297287769387670735201E561CDFBCA1751FC26CFBAC0749D213D2E47CDBA5A96583BA9C0B312567BB2376E601842F6C81A19E625A9149C048EEC24E1E72F37C03A0E45489B29CB19804D8FC6C240DEA7642DBF02ECDB25306B2B78CF848AE20165D0A6AB1C7CE11FEE365B78C30F681404D6136E347CC761E07C4224003CC836476EA7A3FFF5B025636E2021AF6380DFAD1A18204E546F3947CB11811A4A51E3B096D1867E19FE1407959CC434672EE6371089D37D7C0E48F6C8AA50765F7900637AD0424077D726551EFF80C71ABB335746BA297DBC24807EABDAD6C7F3747799A X-B7AD71C0: AC4F5C86D027EB782CDD5689AFBDA7A213B5FB47DCBC3458834459D11680B5052A0D2D9740CDC953EC75EF97C2F9661A X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975C7BEA09003D200E08BAB78BA3D984428EFECAF43149F191EC9C2B6934AE262D3EE7EAB7254005DCEDD39702B95798B1671E0A4E2319210D9B64D260DF9561598F01A9E91200F654B05E4DBAB5AF249FA793EDB24507CE13387DFF0A840B692CF8 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34060C3C6DE316ECE4F17D04B26B11ED2BECC88E31F4D9C5E383944B8396F667D7904E467B15DC3F1C1D7E09C32AA3244C089D25C258052AA06AFA85F0C0C7E9DABBA718C7E6A9E042729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojbL9S8ysBdXi4QUX63t/5tg+qznwb+6Z6 X-Mailru-Sender: 3A338A78718AEC5ABE350BD77BF82E150B3EF9560605FBF3A6C0D93C18701EF99ED84864F346B6E8A3E7B4BFDCAD2EFE027D9DD7AE851095A2E8D17B49942DB0CBEE3F9BE14373499437F6177E88F7363CDA0F3B3F5B9367 X-Mras: Ok Subject: [Tarantool-patches] [PATCH v1 0/7] Rework implicit cast 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: imeevma@tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" This patch-set reworks implicit cast in SQL according to new rules. According to these rules, all scalar values can be cast to SCALAR, all numeric values can be cast to NUMBER, and any numeric value can be cast to another numeric type only if the conversion is exact. No other implicit cast is allowed. https://github.com/tarantool/tarantool/issues/4230 https://github.com/tarantool/tarantool/issues/4470 https://github.com/tarantool/tarantool/tree/imeevma/gh-4230-remove-implicit-cast-for-comparison-v2 Mergen Imeev (7): sql: rework implicit cast fo assignment sql: remove implicit cast from comparison opcodes sql: rework OP_Seek* opcodes sql: remove unnecessary calls of OP_ApplyType sql: remove implicit cast from OP_MakeRecord sql: remove implicit cast from OP_MustBeInt sql: remove unused MEM cast functions .../gh-4230-implicit-cast-for-comparison.md | 3 + .../gh-4470-implicit-cast-for-assignment.md | 3 + src/box/sql.c | 69 +- src/box/sql/analyze.c | 7 +- src/box/sql/cursor.c | 14 - src/box/sql/cursor.h | 1 - src/box/sql/delete.c | 8 +- src/box/sql/expr.c | 9 +- src/box/sql/fk_constraint.c | 9 +- src/box/sql/func.c | 29 +- src/box/sql/insert.c | 14 - src/box/sql/mem.c | 618 ++++++-------- src/box/sql/mem.h | 89 +- src/box/sql/sqlInt.h | 4 - src/box/sql/tarantoolInt.h | 3 + src/box/sql/update.c | 14 +- src/box/sql/vdbe.c | 789 ++++++++---------- src/box/sql/vdbe.h | 2 +- src/box/sql/vdbeaux.c | 6 +- src/box/sql/where.c | 20 +- src/box/sql/wherecode.c | 217 +---- src/box/sql/whereexpr.c | 4 +- test/sql-tap/cast.test.lua | 152 +++- test/sql-tap/func5.test.lua | 6 +- test/sql-tap/identifier_case.test.lua | 10 +- test/sql-tap/in1.test.lua | 15 +- test/sql-tap/in3.test.lua | 4 +- test/sql-tap/in4.test.lua | 4 +- test/sql-tap/index1.test.lua | 4 +- test/sql-tap/insert3.test.lua | 2 +- test/sql-tap/join.test.lua | 8 +- test/sql-tap/misc1.test.lua | 45 +- test/sql-tap/numcast.test.lua | 4 +- test/sql-tap/select1.test.lua | 6 +- test/sql-tap/select7.test.lua | 2 +- test/sql-tap/sql-errors.test.lua | 4 +- test/sql-tap/subquery.test.lua | 4 +- test/sql-tap/tkt-9a8b09f8e6.test.lua | 54 +- test/sql-tap/tkt3493.test.lua | 54 +- test/sql-tap/transitive1.test.lua | 16 +- test/sql-tap/uuid.test.lua | 68 +- test/sql-tap/where2.test.lua | 143 +--- test/sql-tap/where5.test.lua | 12 +- test/sql/boolean.result | 220 ++--- test/sql/types.result | 10 +- 45 files changed, 1076 insertions(+), 1703 deletions(-) create mode 100644 changelogs/unreleased/gh-4230-implicit-cast-for-comparison.md create mode 100644 changelogs/unreleased/gh-4470-implicit-cast-for-assignment.md -- 2.25.1