Tarantool development patches archive
 help / color / mirror / Atom feed
From: Kirill Shcherbatov <kshcherbatov@tarantool.org>
To: tarantool-patches@freelists.org, korablev@tarantool.org
Cc: Kirill Shcherbatov <kshcherbatov@tarantool.org>
Subject: [tarantool-patches] [PATCH v1 0/4] sql: Checks on server side
Date: Thu, 10 Jan 2019 16:54:46 +0300	[thread overview]
Message-ID: <cover.1547128310.git.kshcherbatov@tarantool.org> (raw)

Implemented SQL Checks validations on server side.
Introduced a new sql_check class containing precompiled reusable VDBE making
required validations. It has been parameterized with binding parameters to map
a tuple to be inserted in VDBE memory and to manage checks to be performed on
UPDATE operation.

http://github.com/tarantool/tarantool/tree/kshch/gh-3691-checks-on-server-side
https://github.com/tarantool/tarantool/issues/3691

Kirill Shcherbatov (4):
  box: rename space->opts checks to checks_ast
  sql: disallow use of TYPEOF in Check
  box: exported sql_bind structure and API
  sql: make sql checks on server side

 src/box/alter.cc                      |   4 +-
 src/box/execute.c                     |  48 +------
 src/box/execute.h                     |  52 ++++++++
 src/box/space.c                       |  49 +++++++
 src/box/space.h                       |   5 +
 src/box/space_def.c                   |  15 ++-
 src/box/space_def.h                   |   4 +-
 src/box/sql.c                         | 179 +++++++++++++++++++++++++-
 src/box/sql.h                         |  66 ++++++++++
 src/box/sql/build.c                   |  42 ++++--
 src/box/sql/insert.c                  | 107 ++++-----------
 src/box/sql/sqliteInt.h               |  32 +++++
 src/box/sql/vdbe.c                    |   2 +-
 src/box/sql/vdbeapi.c                 |  41 ++----
 test/sql-tap/check.test.lua           | 113 +++-------------
 test/sql-tap/fkey2.test.lua           |   4 +-
 test/sql-tap/subquery.test.lua        |   2 +-
 test/sql-tap/table.test.lua           |   8 +-
 test/sql/checks.result                |  51 ++++++++
 test/sql/checks.test.lua              |  18 +++
 test/sql/gh-2981-check-autoinc.result |   8 +-
 21 files changed, 563 insertions(+), 287 deletions(-)

-- 
2.19.2

             reply	other threads:[~2019-01-10 13:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-10 13:54 Kirill Shcherbatov [this message]
2019-01-10 13:54 ` [tarantool-patches] [PATCH v1 1/4] box: rename space->opts checks to checks_ast Kirill Shcherbatov
2019-01-11 14:05   ` [tarantool-patches] " Konstantin Osipov
2019-01-18 18:00   ` Konstantin Osipov
2019-01-10 13:54 ` [tarantool-patches] [PATCH v1 2/4] sql: disallow use of TYPEOF in Check Kirill Shcherbatov
2019-01-11 14:06   ` [tarantool-patches] " Konstantin Osipov
2019-01-11 14:07   ` Konstantin Osipov
2019-01-18 18:04   ` Konstantin Osipov
2019-01-10 13:54 ` [tarantool-patches] [PATCH v1 3/4] box: exported sql_bind structure and API Kirill Shcherbatov
2019-01-10 13:54 ` [tarantool-patches] [PATCH v1 4/4] sql: make sql checks on server side Kirill Shcherbatov
2019-01-11 14:12   ` [tarantool-patches] " Konstantin Osipov
2019-01-11 14:14   ` Konstantin Osipov
2019-01-18 18:11   ` Konstantin Osipov
2019-01-21 14:47   ` n.pettik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1547128310.git.kshcherbatov@tarantool.org \
    --to=kshcherbatov@tarantool.org \
    --cc=korablev@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='Re: [tarantool-patches] [PATCH v1 0/4] sql: Checks on server side' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox