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 5E63C27876 for ; Tue, 14 Aug 2018 12:48:09 -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 hH9kjQ2skuB9 for ; Tue, 14 Aug 2018 12:48:09 -0400 (EDT) Received: from smtp16.mail.ru (smtp16.mail.ru [94.100.176.153]) (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 9CAD72770D for ; Tue, 14 Aug 2018 12:48:08 -0400 (EDT) From: "N.Tatunov" Subject: [tarantool-patches] [PATCH v2 0/2] sql: pattern comparison fixes & GLOB removal Date: Tue, 14 Aug 2018 19:47:56 +0300 Message-Id: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: tarantool-patches@freelists.org Cc: avkhatskevich@tarantool.org, "N.Tatunov" Branch: https://github.com/tarantool/tarantool/tree/N_Tatunov/gh-3251-where-like-hanging Issues: https://github.com/tarantool/tarantool/issues/3251 https://github.com/tarantool/tarantool/issues/3334 https://github.com/tarantool/tarantool/issues/3589 https://github.com/tarantool/tarantool/issues/3572 Currently we have internal functions for pattern comparisons that are hanging in certain situations. This patch-set is aimed on refactoring these functions, fixing possible bugs including the ones that are known. Also since we want to get close to ANSI SQL it was decided that we're going to remove GLOB from Tarantool. And due to changes in comparisons some tests containing GLOB would need refactoring. Thus in order not to refactor tests that are anyways going to be removed it is quite convenient to remove GLOB support in the same patch-set. Changes in v2: - Fixes for Alexey's review comments on previous version - A lot of code that was touched in the patch is refactored according to our code-style. - GLOB is removed - Internals refactored with respect to GLOB removal N.Tatunov (2): sql: LIKE & GLOB pattern comparison issue sql: remove GLOB from Tarantool extra/mkkeywordhash.c | 1 - src/box/sql/analyze.c | 7 +- src/box/sql/func.c | 483 +- src/box/sql/pragma.c | 6 +- src/box/sql/sqliteInt.h | 13 +- src/box/sql/sqliteLimit.h | 3 +- src/box/sql/vdbe.c | 2 +- src/box/sql/wherecode.c | 2 +- src/box/sql/whereexpr.c | 129 +- test/sql-tap/alter.test.lua | 6 +- test/sql-tap/analyze9.test.lua | 8 +- test/sql-tap/e_expr.test.lua | 305 +- .../gh-3251-string-pattern-comparison.test.lua | 213 + test/sql-tap/like2.test.lua | 10 +- test/sql-tap/like3.test.lua | 26 +- test/sql-tap/tkt1537.test.lua | 4 +- test/sql-tap/triggerA.test.lua | 2 +- test/sql-tap/where3.test.lua | 6 +- test/sql-tap/where7.test.lua | 4780 ++++++++++---------- 19 files changed, 3109 insertions(+), 2897 deletions(-) create mode 100755 test/sql-tap/gh-3251-string-pattern-comparison.test.lua -- 2.7.4