From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp5.mail.ru (smtp5.mail.ru [94.100.179.24]) (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 4A2A8441841 for ; Wed, 25 Mar 2020 14:38:05 +0300 (MSK) From: imeevma@tarantool.org Date: Wed, 25 Mar 2020 14:38:03 +0300 Message-Id: Subject: [Tarantool-patches] [PATCH v3 0/2] sql: fix CAST() from BLOB to INTEGER List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: korablev@tarantool.org, tsafin@tarantool.org, tarantool-patches@dev.tarantool.org This patch-set fixes CAST() from BLOB to INTEGER in case a BLOB does not have '\0'. https://github.com/tarantool/tarantool/issues/4766 https://github.com/tarantool/tarantool/tree/imeevma/gh-4766-fix-blob-size-for-cast Changelog: - CAST() from string contains DOUBLE value to INTEGER or UNSIGNED was disallowed. - Maximum length of a BLOB that is allowed to be cast to INTEGER or UNSIGNED was limited to 12287 bytes. - Fixed wrong behaviour of CAST() in case a BLOB does not have '\0'. Mergen Imeev (2): sql: fix CAST() from STRING to INTEGER sql: add '\0' to the BLOB when it is cast to INTEGER src/box/sql/util.c | 17 +++++++++---- src/box/sql/vdbe.c | 11 +++++++-- src/box/sql/vdbeInt.h | 1 - src/box/sql/vdbemem.c | 45 +++++++++++---------------------- test/sql-tap/cast.test.lua | 48 +++++++++++++++++++++++++++++++++++- test/sql-tap/e_select1.test.lua | 2 +- test/sql-tap/intpkey.test.lua | 2 +- test/sql-tap/join.test.lua | 4 +-- test/sql-tap/subquery.test.lua | 6 ++--- test/sql-tap/tkt-9a8b09f8e6.test.lua | 4 +-- test/sql/types.result | 23 +++++++---------- 11 files changed, 100 insertions(+), 63 deletions(-) -- 2.7.4