Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: Kirill Shcherbatov <kshcherbatov@tarantool.org>,
	tarantool-patches@freelists.org
Subject: [tarantool-patches] Re: [PATCH v6 3/4] sql: space_def* instead of Table* in Expr
Date: Wed, 16 May 2018 15:33:10 +0300	[thread overview]
Message-ID: <3d8ffe27-4d38-3d8d-eb08-d40adfc27783@tarantool.org> (raw)
In-Reply-To: <6702e8ecd47238730a4ba27e87fe7bf082a874c6.1526403792.git.kshcherbatov@tarantool.org>

Hello. See below 3 minor comments.

On 15/05/2018 20:03, Kirill Shcherbatov wrote:
> This patch allows to remove Checks from SQL to
> server as sqlite3ResolveSelfReference requires
> Expr structure pointer.
> 
> Part of #3272.
> ---
>   src/box/field_def.c     |   1 +
>   src/box/field_def.h     |  14 +++++
>   src/box/sql.c           |  20 +++---
>   src/box/sql/alter.c     |   2 +-
>   src/box/sql/analyze.c   |   2 +-
>   src/box/sql/build.c     | 100 +++++++++++-------------------
>   src/box/sql/delete.c    |   4 +-
>   src/box/sql/expr.c      | 158 ++++++++++++++++++++++++++----------------------
>   src/box/sql/fkey.c      |  18 +++---
>   src/box/sql/insert.c    |  47 ++++++++------
>   src/box/sql/pragma.c    |  10 +--
>   src/box/sql/resolve.c   |  12 ++--
>   src/box/sql/select.c    |  26 +++++---
>   src/box/sql/sqliteInt.h |  44 +++-----------
>   src/box/sql/update.c    |  35 +++++------
>   src/box/sql/vdbe.c      |  26 ++++----
>   src/box/sql/vdbeaux.c   |  37 ------------
>   src/box/sql/vdbemem.c   |  18 +++---
>   src/box/sql/where.c     |  15 +++--
>   src/box/sql/wherecode.c |  35 ++++++-----
>   src/box/sql/whereexpr.c |   6 +-
>   21 files changed, 293 insertions(+), 337 deletions(-)
> 
> diff --git a/src/box/sql/expr.c b/src/box/sql/expr.c
> index 119940c..9a8f045 100644
> --- a/src/box/sql/expr.c
> +++ b/src/box/sql/expr.c
> @@ -3519,45 +3526,48
> -/*
> +/**
>    * Generate code to extract the value of the iCol-th column of a table.
> + * @param v  The VDBE under construction.
> + * @param space_def Space definition.
> + * @param iTabCur The PK cursor.
> + * @param iCol Index of the column to extract.
> + * @param regOut  Extract the value into this register.

1. Lets move this comment to the header.

>    */
>   void
> -sqlite3ExprCodeGetColumnOfTable(Vdbe * v,	/* The VDBE under construction */
> -				Table * pTab,	/* The table containing the value */
> -				int iTabCur,	/* The PK cursor */
> -				int iCol,	/* Index of the column to extract */
> -				int regOut	/* Extract the value into this register */
> -    )
> +sqlite3ExprCodeGetColumnOfTable(Vdbe *v, struct space_def *space_def,
> +				int iTabCur, int iCol, int regOut)
>   {
>   	sqlite3VdbeAddOp3(v, OP_Column, iTabCur, iCol, regOut);
>   	if (iCol >= 0) {
> -		sqlite3ColumnDefault(v, pTab, iCol, regOut);
> +		sqlite3ColumnDefault(v, space_def, iCol, regOut);
>   	}
>   }
>   
> -/*
> +/**
>    * Generate code that will extract the iColumn-th column from
>    * table pTab and store the column value in a register.
>    *
> - * An effort is made to store the column value in register iReg.  This
> - * is not garanteeed for GetColumn() - the result can be stored in
> - * any register.  But the result is guaranteed to land in register iReg
> - * for GetColumnToReg().
> + * An effort is made to store the column value in register iReg.
> + * This is not garanteeed for GetColumn() - the result can be
> + * stored in any register.  But the result is guaranteed to land
> + * in register iReg for GetColumnToReg().
> + * @param pParse Parsing and code generating context.
> + * @param space_def Space definition.
> + * @param iColumn Index of the table column.
> + * @param iTable The cursor pointing to the table.
> + * @param iReg Store results here.
> + * @param p5 P5 value for OP_Column + FLAGS.
> + * @return iReg value.

2. Same.

>    */
>   int
> -sqlite3ExprCodeGetColumn(Parse * pParse,	/* Parsing and code generating context */
> -			 Table * pTab,	/* Description of the table we are reading from */
> -			 int iColumn,	/* Index of the table column */
> -			 int iTable,	/* The cursor pointing to the table */
> -			 int iReg,	/* Store results here */
> -			 u8 p5	/* P5 value for OP_Column + FLAGS */
> -    )
> +sqlite3ExprCodeGetColumn(Parse *pParse, struct space_def *space_def,
> +			 int iColumn, int iTable, int iReg, u8 p5)
>   {
>   	Vdbe *v = pParse->pVdbe;
>   	int i;
> @@ -3572,7 +3582,7 @@ sqlite3ExprCodeGetColumn(Parse * pParse,	/* Parsing and code generating context
>   		}
>   	}
>   	assert(v != 0);
> -	sqlite3ExprCodeGetColumnOfTable(v, pTab, iTable, iColumn, iReg);
> +	sqlite3ExprCodeGetColumnOfTable(v, space_def, iTable, iColumn, iReg);
>   	if (p5) {
>   		sqlite3VdbeChangeP5(v, p5);
>   	} else {
> @@ -3581,16 +3591,22 @@ sqlite3ExprCodeGetColumn(Parse * pParse,	/* Parsing and code generating context
>   	return iReg;
>   }
>   
> +/**
> + * Generate code that will extract the iColumn-th column from
> + * table pTab and store the column value in a register, copy the
> + * result.
> + * @param pParse Parsing and code generating context.
> + * @param space_def Space definition.
> + * @param iColumn Index of the table column.
> + * @param iTable The cursor pointing to the table.
> + * @param iReg Store results here.

3. Same.

  reply	other threads:[~2018-05-16 12:33 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-15 17:03 [tarantool-patches] [PATCH v6 0/4] sql: moved Checks to server Kirill Shcherbatov
2018-05-15 17:03 ` [tarantool-patches] [PATCH v6 1/4] sql: fix code style in sqlite3Pragma Kirill Shcherbatov
2018-05-15 17:03 ` [tarantool-patches] [PATCH v6 2/4] sql: remove SQL fields from Table and Column Kirill Shcherbatov
2018-05-17 17:25   ` [tarantool-patches] " n.pettik
2018-05-18 15:35     ` Kirill Shcherbatov
2018-05-18 17:24       ` n.pettik
2018-05-18 19:45         ` Kirill Shcherbatov
2018-05-18 20:13           ` n.pettik
2018-05-15 17:03 ` [tarantool-patches] [PATCH v6 3/4] sql: space_def* instead of Table* in Expr Kirill Shcherbatov
2018-05-16 12:33   ` Vladislav Shpilevoy [this message]
2018-05-16 13:10     ` [tarantool-patches] " Kirill Shcherbatov
2018-05-16 13:11       ` Vladislav Shpilevoy
     [not found]   ` <26E4269B-2BCB-42C3-8216-D51E290E4723@corp.mail.ru>
2018-05-18 15:26     ` Kirill Shcherbatov
2018-05-18 17:04       ` n.pettik
2018-05-21 12:48       ` [tarantool-patches] " Nikita Pettik
2018-05-15 17:03 ` [tarantool-patches] [PATCH v6 4/4] sql: remove Checks to server Kirill Shcherbatov
2018-05-16 17:59   ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-16 11:52 ` [tarantool-patches] Re: [PATCH v6 0/4] sql: moved " Vladislav Shpilevoy
2018-05-16 13:13   ` Kirill Shcherbatov
2018-05-23  5:19 ` 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=3d8ffe27-4d38-3d8d-eb08-d40adfc27783@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=kshcherbatov@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='[tarantool-patches] Re: [PATCH v6 3/4] sql: space_def* instead of Table* in Expr' \
    /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