[tarantool-patches] Re: [PATCH] sql: xfer optimization issue

  • From: Alexander Turenko <alexander.turenko@xxxxxxxxxxxxx>
  • To: "n.pettik" <korablev@xxxxxxxxxxxxx>
  • Date: Sun, 29 Jul 2018 18:16:36 +0300

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.

Other related posts: