From: "n.pettik" <korablev@tarantool.org> To: tarantool-patches@freelists.org Cc: Roman Khabibov <roman.habibov@tarantool.org> Subject: [tarantool-patches] Re: [PATCH] sql: add check for <WITH> absence in <CREATE VIEW> Date: Fri, 9 Aug 2019 18:15:17 +0300 [thread overview] Message-ID: <DAA03B36-2520-4E40-AF7A-47ECAAB6FB7B@tarantool.org> (raw) In-Reply-To: <20190802125252.54621-1-roman.habibov@tarantool.org> > On 2 Aug 2019, at 15:52, Roman Khabibov <roman.habibov@tarantool.org> wrote: > > Check that <CREATE VIEW> hasn't <WITH> after <AS>: "CREATE VIEW v > AS WITH ... SELECT ...". Throw error, if it has. What is the reason for that? I run example from ticket: tarantool> \set language sql tarantool> \set delimiter ; tarantool> CREATE TABLE ts (s1 INT PRIMARY KEY); tarantool> INSERT INTO ts VALUES (1); tarantool> WITH RECURSIVE w AS ( > SELECT s1 FROM ts > UNION ALL > SELECT s1+1 FROM w WHERE s1 < 4) > SELECT * FROM w; tarantool> CREATE VIEW v AS WITH RECURSIVE w AS ( > SELECT s1 FROM ts > UNION ALL > SELECT s1+1 FROM w WHERE s1 < 4) > SELECT * FROM w; - null - Space 'W' does not exist ... So, it fails at the stage of view creation. Please, ask Peter to provide valid example. Otherwise there’s no problem and issue can be closed. > > Closes #4149 > --- > Branch: https://github.com/tarantool/tarantool/tree/romanhabibov/gh-4149-view > Issue: https://github.com/tarantool/tarantool/issues/4149 > > src/box/sql/build.c | 7 +++++++ > test/sql-tap/view.test.lua | 37 ++++++++++++++++++++++++++++++++++++- > 2 files changed, 43 insertions(+), 1 deletion(-) > > diff --git a/src/box/sql/build.c b/src/box/sql/build.c > index ccec10543..e34202c9a 100644 > --- a/src/box/sql/build.c > +++ b/src/box/sql/build.c > @@ -1320,6 +1320,13 @@ sql_create_view(struct Parse *parse_context) > &create_entity_def->name); > if (space == NULL || parse_context->is_aborted) > goto create_view_fail; > + assert(view_def->select != NULL); > + if (view_def->select->pWith != NULL) { > + diag_set(ClientError, ER_CREATE_SPACE, space->def->name, > + "can't create view as <WITH>"); > + parse_context->is_aborted = true; > + goto create_view_fail; > + } This looks like a crutch. Please, either find out if it is possible to fix this at parser level (changing grammar), or simply close issue.
next prev parent reply other threads:[~2019-08-09 15:15 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-02 12:52 [tarantool-patches] " Roman Khabibov 2019-08-09 15:15 ` n.pettik [this message] 2019-08-13 12:42 ` [tarantool-patches] " Roman Khabibov 2019-08-13 22:10 ` n.pettik 2019-08-16 19:09 ` Roman Khabibov 2019-08-19 15:39 ` Roman Khabibov 2019-08-20 19:41 ` n.pettik 2019-08-28 12:17 ` Roman Khabibov 2019-08-29 17:59 ` Nikita Pettik 2019-09-04 14:14 ` Roman Khabibov 2019-09-11 13:32 ` Nikita Pettik 2019-09-13 14:57 ` Roman Khabibov
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=DAA03B36-2520-4E40-AF7A-47ECAAB6FB7B@tarantool.org \ --to=korablev@tarantool.org \ --cc=roman.habibov@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='[tarantool-patches] Re: [PATCH] sql: add check for <WITH> absence in <CREATE VIEW>' \ /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