Tarantool development patches archive
 help / color / mirror / Atom feed
From: "Bulat Niatshin" <niatshin@tarantool.org>
To: tarantool-patches@freelists.org,
	"Nikita Pettik" <korablev@tarantool.org>
Subject: [tarantool-patches] Re: [tarantool-patches] Re: [PATCH] sql: remove unnecessary MakeRecord opcodes
Date: Fri, 13 Apr 2018 14:35:35 +0300	[thread overview]
Message-ID: <1523619335.646146636@f507.i.mail.ru> (raw)
In-Reply-To: <BDC06EE5-214F-4A7B-8ED5-B8D10C5AD6E5@tarantool.org>

Branch:
https://github.com/tarantool/tarantool/tree/bn/gh-3317-remove-makerecord

Issue:
https://github.com/tarantool/tarantool/issues/3317

>Среда, 11 апреля 2018, 22:32 +03:00 от n.pettik <korablev@tarantool.org>:
>
>Hello. Only minor remark concerning commit message.
>Rephrase it little bit, please. Lets mention, that you are saying about
>bytecode which is generated to process constraint checks.
>
>> On 4 Apr 2018, at 15:38, Bulat Niatshin < niatshin@tarantool.org > wrote:
>> 
>> OP_MakeRecord creates a record from a given range of registers
>> and stores that record in a specified register.
>
>This is obvious and can be dropped.

Done, see new commit message below.

>
>> But now even
>> secondary indexes with non-default ON CONFLICT clause doesn't
>> need it,
>
>Good place to explain why.

Done, new commit message with a clearer explanation:

OP_MakeRecord in INSERT/UPDATE query is required for making
insertion into Tarantool and for checking constraints with
ON CONFLICT clause. There was one OP_MakeRecord for each
constraint with ON CONFLICT, and each constraint was checked by
VDBE. But now some constraints with error actions like ABORT can
be handled by Tarantool facilities (without emitting bytecode) and
therefore MakeRecord for that index would be unnecessary if it is
not a primary key index (in that case MakeRecord is also needed
for OP_IdxInsert). This patch contains a fix, which removes
unnecessary MakeRecord opcodes from INSERT/UPDATE VDBE listings.

  reply	other threads:[~2018-04-13 11:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-04 12:38 [tarantool-patches] " Bulat Niatshin
2018-04-04 12:42 ` [tarantool-patches] " Bulat Niatshin
2018-04-11 19:32 ` [tarantool-patches] " n.pettik
2018-04-13 11:35   ` Bulat Niatshin [this message]
2018-04-22 11:20     ` n.pettik
2018-04-26  6:52       ` Kirill Yukhin

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=1523619335.646146636@f507.i.mail.ru \
    --to=niatshin@tarantool.org \
    --cc=korablev@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='[tarantool-patches] Re: [tarantool-patches] Re: [PATCH] sql: remove unnecessary MakeRecord opcodes' \
    /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