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 20E5A27A97 for ; Sun, 29 Jul 2018 11:16:40 -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 c32UuuDtbEqg for ; Sun, 29 Jul 2018 11:16:40 -0400 (EDT) Received: from smtp40.i.mail.ru (smtp40.i.mail.ru [94.100.177.100]) (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 8BAA9277E7 for ; Sun, 29 Jul 2018 11:16:39 -0400 (EDT) Date: Sun, 29 Jul 2018 18:16:36 +0300 From: Alexander Turenko Subject: [tarantool-patches] Re: [PATCH] sql: xfer optimization issue Message-ID: <20180729151633.mnggrcl4jjnedhxf@tkn_work_nb> References: <605B15EF-BD1C-4B03-8A9F-6E6225076812@tarantool.org> <12B62C73-9BEC-49FA-B3FD-590C445CF25B@tarantool.org> <2123605D-8D6C-43A3-846F-735E4C2C7FC2@tarantool.org> <20180729011251.eitp7cisv6jv5opj@tkn_work_nb> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: 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: "n.pettik" Cc: Nikita Tatunov , tarantool-patches@freelists.org On Sun, Jul 29, 2018 at 02:23:30PM +0300, n.pettik wrote: > > 1. Not actual due to 2, but it would be better to use > > `pOp->p5 &= ~OPFLAG_XFER_OPT` to drop just that flag. > > 2. It is counter-intuitive, IMHO, to change operation flags during > > that operation. So, said above, vote to move it to OP_OpenWrite. > > Well, actually moving it to OP_OpenWrite seems to be bad idea. > > Even if code for xFer optimisation is generated, it > > still might not be executed. The only opcode ensuring xFer is > > under processing - OP_RowData. We have separate OpenWrite opcodes in xfer and regular insert code. We open destination space curson always (to determine whether the space is empty), but we can set the flag when open source space cursor. But this will forbid to check source space for emptiness in xfer code or will require to 'workaround' it using two cursors. By the way, I observed that the following code is dead: > if (emptySrcTest) > sqlite3VdbeJumpHere(v, emptySrcTest); WBR, Alexander Turenko.