Tarantool development patches archive
 help / color / mirror / Atom feed
From: "n.pettik" <korablev@tarantool.org>
To: tarantool-patches@freelists.org
Cc: Konstantin Osipov <kostja@tarantool.org>,
	Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Subject: [tarantool-patches] Re: [PATCH 3/6] sql: pass true types of columns to Tarantool
Date: Fri, 12 Oct 2018 14:19:25 +0300	[thread overview]
Message-ID: <1F4AAE6E-2879-428B-86FA-77C9924046FF@tarantool.org> (raw)
In-Reply-To: <20180919022335.GB2386@chai>

[-- Attachment #1: Type: text/plain, Size: 2421 bytes --]


> On 19 Sep 2018, at 05:23, Konstantin Osipov <kostja@tarantool.org> wrote:
> 
> * Nikita Pettik <korablev@tarantool.org <mailto:korablev@tarantool.org>> [18/09/18 01:20]:
>> From: Georgy Kirichenko <georgy@tarantool.org>
>> 
>> As a main part of introducing strict typing in SQL it is required to
>> prohibit typeless columns in parser's grammar. Originally, SQLite simply
>> assigns typeless columns to BLOB affinity. Moreover, due to historical
>> reasons, all columns were stored with <SCALAR> type in Tarantool core
>> (except for <INTEGER> when it comes to primary key).  Column type should
>> be defined on table creation. Allowed data types are: <TEXT>, <VARCHAR>,
>> <CHAR>, <BLOB>, <INT[EGER]>, <REAL>, <FLOAT>, <NUMERIC>, <DECIMAL>,
>> <DOUBLE> <DATE> and <DATETIME>. However, still any declared data type is
>> converted to one of <BLOB>, <TEXT>, <REAL> or <INTEGER> affinities.
>> While affinity reaches space format, it is (again) converted to
>> Tarantool's field type. To be more precise, table of conversions:
>> 
>> +----------+----------+------------+
>> | SQL TYPE | AFFINITY | FIELD TYPE |
>> +----------+----------+------------+
>> | FLOAT    | REAL     | NUMBER     |
>> | REAL     | REAL     | NUMBER     |
>> | DOUBLE   | REAL     | NUMBER     |
>> | NUMERIC  | REAL     | NUMBER     |
>> | DECIMAL  | REAL     | NUMBER     |
>> | INTEGER  | INTEGER  | INTEGER    |
>> | TEXT     | TEXT     | STRING     |
>> | VARCHAR  | TEXT     | STRING     |
>> | CHAR     | TEXT     | STRING     |
>> | BLOB     | BLOB     | SCALAR     |
>> | DATETIME | REAL     | NUMBER     |
>> | DATE     | REAL     | NUMBER     |
>> | TIME     | REAL     | NUMBER     |
>> +----------+----------+------------+
> 
> How do you manage to store datetime/date/time values as numbers?
> What is your conversion procedure? Are you storing it as unix
> timestamp? Note that SQL date begins (AFAIR) at 1900-01-01.

Now we don’t have any facilities to process or store DATETIME
format in any convenient way. SQLite originally only features
DATETIME() function, which converts string to REAL type
(in the same way you mentioned).
Hence, temporary this ’type’ works simply as REAL/FLOAT without
any implicit conversions to unix timestamp or date/time validations.
Another option is remove DATETIME type at all - until it will be implemented,
in order to avoid confusions.



[-- Attachment #2: Type: text/html, Size: 7583 bytes --]

  reply	other threads:[~2018-10-12 11:19 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-17 20:32 [tarantool-patches] [PATCH 0/6] Introduce strict typing for SQL Nikita Pettik
2018-09-17 20:32 ` [tarantool-patches] [PATCH 1/6] sql: split conflict action and affinity for Expr Nikita Pettik
2018-09-19  2:16   ` [tarantool-patches] " Konstantin Osipov
2018-09-27 20:24   ` Vladislav Shpilevoy
2018-10-12 11:18     ` n.pettik
2018-09-17 20:32 ` [tarantool-patches] [PATCH 2/6] sql: annotate SQL functions with return type Nikita Pettik
2018-09-27 20:23   ` [tarantool-patches] " Vladislav Shpilevoy
2018-10-12 11:18     ` n.pettik
2018-09-17 20:32 ` [tarantool-patches] [PATCH 3/6] sql: pass true types of columns to Tarantool Nikita Pettik
2018-09-19  2:23   ` [tarantool-patches] " Konstantin Osipov
2018-10-12 11:19     ` n.pettik [this message]
2018-09-27 20:23   ` Vladislav Shpilevoy
2018-10-12 11:18     ` n.pettik
2018-10-17 21:45       ` Vladislav Shpilevoy
2018-10-23 23:28         ` n.pettik
2018-10-29 21:32           ` Vladislav Shpilevoy
2018-11-02  2:36             ` n.pettik
2018-09-17 20:32 ` [tarantool-patches] [PATCH 4/6] sql: enforce implicit type conversions Nikita Pettik
2018-09-19  2:25   ` [tarantool-patches] " Konstantin Osipov
2018-09-27 20:24   ` Vladislav Shpilevoy
2018-10-12 11:19     ` n.pettik
2018-10-17 21:45       ` Vladislav Shpilevoy
2018-10-23 23:28         ` n.pettik
2018-10-29 21:32           ` Vladislav Shpilevoy
2018-11-02  2:36             ` n.pettik
2018-11-02 11:15               ` Vladislav Shpilevoy
2018-11-02 13:26                 ` n.pettik
2018-09-17 20:32 ` [tarantool-patches] [PATCH 5/6] sql: return result-set type via IProto Nikita Pettik
2018-09-19  2:26   ` [tarantool-patches] " Konstantin Osipov
2018-09-27 20:24   ` Vladislav Shpilevoy
2018-10-12 11:19     ` n.pettik
2018-10-17 21:45       ` Vladislav Shpilevoy
2018-10-23 23:28         ` n.pettik
2018-09-17 20:32 ` [tarantool-patches] [PATCH 6/6] sql: discard numeric conversion by unary plus Nikita Pettik
2018-09-27 20:24   ` [tarantool-patches] " Vladislav Shpilevoy
2018-10-12 11:19     ` n.pettik
2018-09-27 20:24 ` [tarantool-patches] Re: [PATCH 0/6] Introduce strict typing for SQL Vladislav Shpilevoy
2018-10-12 11:18   ` n.pettik
2018-11-03  2:41 ` 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=1F4AAE6E-2879-428B-86FA-77C9924046FF@tarantool.org \
    --to=korablev@tarantool.org \
    --cc=kostja@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='[tarantool-patches] Re: [PATCH 3/6] sql: pass true types of columns to Tarantool' \
    /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