Tarantool development patches archive
 help / color / mirror / Atom feed
From: Mergen Imeev <imeevma@tarantool.org>
To: Nikita Pettik <korablev@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v5 2/5] sql: remove PRAGMA "short_column_names"
Date: Sun, 29 Dec 2019 15:58:25 +0300	[thread overview]
Message-ID: <20191229125825.GC21920@tarantool.org> (raw)
In-Reply-To: <20191227165522.GK18639@tarantool.org>

Hi! Thank you for remarks. My answers below.

On Fri, Dec 27, 2019 at 06:55:22PM +0200, Nikita Pettik wrote:
> On 27 Dec 14:18, imeevma@tarantool.org wrote:
> > The pragmas "short_column_names" and "full_column_names" allow us
> > to use three ways to display the column name in metadata:
> > 1) If both are turned off, then the column name was shown as it
> > was written by the user.
> > 2) If "short_column_names" = OFF and "full_column_names" = ON,
> > then the column name is displayed as <table name>.<column name>.
> > 3) If "short_column_names" = ON, then the column name is displayed
> > as <column name>. This is the default option.
> 
> Don't get the difference between first and last options. Also see
> https://www.sqlite.org/pragma.html#pragma_full_column_names
>  
Here you can see behaiour in the first case:

tarantool> CREATE TABLE t(i INT PRIMARY KEY);
---
- row_count: 1
...

tarantool> SELECT t     .        i from t;
---
- metadata:
  - name: t     .        i
    type: integer
  rows: []
...

As we can see, the name is "t     .        i". In the third
case:

tarantool> SELECT t     .        i from t;
---
- metadata:
  - name: I
    type: integer
  rows: []
...


> > But we need only two ways to show the column name:
> > 1) Show the column name as <column name>. This should be the
> > default option.
> > 2) Show the column name as <table name>.<column name>.
> > 
> > In this regard, we need only one of these pragmas.
> > 
> > @@ -1827,12 +1824,11 @@ generate_column_metadata(struct Parse *pParse, struct SrcList *pTabList,
> >  			assert(iCol >= 0 && iCol < (int)space_def->field_count);
> >  			zCol = space_def->fields[iCol].name;
> >  			const char *name = NULL;
> > +
> >  
> 
> Extra new line. Please, remove.
> 
Fixed.

> >			if (pEList->a[i].zName != NULL) {
> >  				name = pEList->a[i].zName;
> >  			} else {
> > -				if (!shortNames && !fullNames) {
> > -					name = pEList->a[i].zSpan;
> > -				} else if (fullNames) {
> > +				if (pParse->sql_flags & SQL_FullColNames) {
> 
> (pParse->sql_flags & SQL_FullColNames) != 0
> 
Fixed.

> >  					name = tt_sprintf("%s.%s",
> >  							  space_def->name,
> >  							  zCol);
> > @@ -2053,8 +2049,7 @@ sqlResultSetOfSelect(Parse * pParse, Select * pSelect)
> >  	sql *db = pParse->db;
> >  
> >  	uint32_t saved_flags = pParse->sql_flags;
> > -	pParse->sql_flags |= ~SQL_FullColNames;
> > -	pParse->sql_flags &= SQL_ShortColNames;
> > +	pParse->sql_flags = 0;
> 
> Why do you set sql_flags to zero?
> 
After "pParse->sql_flags &= SQL_ShortColNames;" all but
one(SQL_ShortColNames) bits will be 0. Since we remove
SQL_ShortColNames, all bits will be 0.

> >  	sqlSelectPrep(pParse, pSelect, 0);
> >  	if (pParse->is_aborted)
> >  		return NULL;
> 
> I comment your patch since I've faced the same necessity to remove
> short_column_names. So to avoid doubling work, I'am going to cherry-
> pick your patch (or push it to the master out of order).
> 

  reply	other threads:[~2019-12-29 12:58 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-27 11:18 [Tarantool-patches] [PATCH v5 0/5] Remove control pragmas imeevma
2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 1/5] sql: remove PRAGMA "count_changes" imeevma
2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 2/5] sql: remove PRAGMA "short_column_names" imeevma
2019-12-27 16:55   ` Nikita Pettik
2019-12-29 12:58     ` Mergen Imeev [this message]
2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 3/5] sql: remove PRAGMA "sql_compound_select_limit" imeevma
2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 4/5] sql: remove control pragmas imeevma
2019-12-27 15:26   ` Vladislav Shpilevoy
2019-12-29 12:44     ` Mergen Imeev
2019-12-29 12:59       ` Mergen Imeev
2019-12-29 13:23         ` Mergen Imeev
2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 5/5] sql: refactor PRAGMA-related code imeevma
2019-12-27 15:26   ` Vladislav Shpilevoy
2019-12-29 12:46     ` Mergen Imeev
2019-12-30 10:19 [Tarantool-patches] [PATCH v5 0/5] Remove control pragmas imeevma
2019-12-30 10:19 ` [Tarantool-patches] [PATCH v5 2/5] sql: remove PRAGMA "short_column_names" imeevma

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=20191229125825.GC21920@tarantool.org \
    --to=imeevma@tarantool.org \
    --cc=korablev@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v5 2/5] sql: remove PRAGMA "short_column_names"' \
    /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