From: "n.pettik" <korablev@tarantool.org>
To: tarantool-patches@freelists.org
Cc: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Subject: [tarantool-patches] Re: [PATCH 1/6] sql: split conflict action and affinity for Expr
Date: Fri, 12 Oct 2018 14:18:47 +0300 [thread overview]
Message-ID: <44846902-C808-4558-9F78-BA8435461B53@tarantool.org> (raw)
In-Reply-To: <0bd6c03a-20f7-7b49-31b2-429f4302bb32@tarantool.org>
> On 27 Sep 2018, at 23:24, Vladislav Shpilevoy <v.shpilevoy@tarantool.org> wrote:
>
> See 1 comment below.
>
> On 17/09/2018 23:32, Nikita Pettik wrote:
>> From: Georgy Kirichenko <georgy@tarantool.org>
>> Lets introduce separate field in struct Expr to store conflict action of
>> RAISE() function, instead of messing it with affinity.
>> ---
>> src/box/sql/expr.c | 46 ++++++++++++++++++----------------------------
>> src/box/sql/fkey.c | 2 +-
>> src/box/sql/parse.y | 4 ++--
>> src/box/sql/sqliteInt.h | 5 ++++-
>> src/box/sql/treeview.c | 6 ++++--
>> 5 files changed, 29 insertions(+), 34 deletions(-)
>> diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
>> index 1d32c9a03..5ca628aac 100644
>> --- a/src/box/sql/sqliteInt.h
>> +++ b/src/box/sql/sqliteInt.h
>> @@ -2106,7 +2106,10 @@ typedef int ynVar;
>> */
>> struct Expr {
>> u8 op; /* Operation performed by this node */
>> - char affinity; /* The affinity of the column or 0 if not a column */
>> + /** The affinity of the column or 0 if not a column. */
>> + enum affinity_type affinity;
>> + /** Conflict action for RAISE() function. */
>> + enum on_conflict_action on_conflict_action;
>
> As I understand, these two attributes are mutually
> exclusive, am I right? Could you put them into a union
> instead of the separate fields?
Yep, surely:
diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
index 5ca628aac..55d4ae96e 100644
--- a/src/box/sql/sqliteInt.h
+++ b/src/box/sql/sqliteInt.h
@@ -2106,10 +2106,12 @@ typedef int ynVar;
*/
struct Expr {
u8 op; /* Operation performed by this node */
- /** The affinity of the column or 0 if not a column. */
- enum affinity_type affinity;
- /** Conflict action for RAISE() function. */
- enum on_conflict_action on_conflict_action;
+ union {
+ /** The affinity of the column. */
+ enum affinity_type affinity;
+ /** Conflict action for RAISE() function. */
+ enum on_conflict_action on_conflict_action;
+ };
next prev parent reply other threads:[~2018-10-12 11:18 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 [this message]
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
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=44846902-C808-4558-9F78-BA8435461B53@tarantool.org \
--to=korablev@tarantool.org \
--cc=tarantool-patches@freelists.org \
--cc=v.shpilevoy@tarantool.org \
--subject='[tarantool-patches] Re: [PATCH 1/6] sql: split conflict action and affinity for 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