Hi Ramin,

it was a mistake to support the EXPLAIN STATEMENT SET syntax in the first place. We support `EXPLAIN SELECT` and `EXPLAIN CREATE TABLE`, so EXPLAIN + verb, we should have done the same for `EXECUTE`.

+1 for the proposal.

Cheers,
Timo


On 30.04.25 11:55, Gustavo de Morais wrote:
I agree with Martijn. It’s just a better, consistent user experience.

Also, we keep backwards compatibility, so I see no reason for not doing it.
I’d also be +1 for this.

Am Di., 29. Apr. 2025 um 09:42 Uhr schrieb Martijn Visser <
martijnvis...@apache.org>:

Hi all,

Thanks for the FLIP Ramin. I would be +1 for this. It creates a consistent
experience for SQL users, because they only have to prefix their earlier
SQL statement with EXPLAIN in order to get the result.

@Ron I don't think it's so much about the efforts that's required to remove
the EXECUTE keyword, but it's about the mental model of users. If you can
always add EXPLAIN to begin with, it's easier to comprehend for users. We
have a lot of users who are confused and are asking questions about how
they can get the query plan for statement sets and why it's not supported.
It requires every user to go to the docs, find the documentation on EXPLAIN
and then interpret the docs. The docs [1] also don't make it clear that you
specifically need to modify the syntax for EXPLAIN, but users are required
to compare the differences between a regular statement set syntax [2] and
the one for EXPLAIN

Best regards,

Martijn

[1]

https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sql/explain/#syntax
[2]

https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sqlclient/#execute-a-set-of-sql-statements

On Tue, Apr 29, 2025 at 4:03 AM Ron Liu <ron9....@gmail.com> wrote:

Hi, Ramin

Thanks for starting this proposal.

After glancing at the content of FLIP, I have a question, how valuable is
it to introduce this new syntax, if users want to EXPLAIN STATEMENT SET,
the EXPLAIN keyword itself has to be written,
how much does it cost to remove the EXECUTE keyword at this time? From
this
point of view, I don't think it makes much sense to introduce this
syntax.

Best,
Ron

David Radley <david_rad...@uk.ibm.com> 于2025年4月28日周一 21:51写道:

Hi Ramin,
Thanks for making the changes.
As far as I can see the EXECUTE STATEMENT SET is Flink specific; so I
am
not sure this is part of the SQL standard. So, I guess adding the
explain
syntax as an alias for the existing explain would be ok.

I assume Flink decided not to use stored procedures syntax to run the
multiple inserts – which would be what I would have expected here.

    Kind regards David.

From: Ramin Gharib <rgha...@confluent.io.INVALID>
Date: Monday, 28 April 2025 at 13:41
To: dev@flink.apache.org <dev@flink.apache.org>
Subject: [EXTERNAL] Re: [DISCUSS] FLIP-527 Support EXPLAIN EXECUTE
STATEMENT SET Syntax in Flink SQL
Hello David,

Many thanks for the response! I have moved the discussion to a new
link.
The FLIP number was wrong (now it is at 528). You can find the new
link below

https://lists.apache.org/thread/28llyjdks9hrj5rvpbxhd3zd7bfqwrw8

I have fixed the inconsistency in the text.

Thanks for raising the point about SQL standard compliance with EXPLAIN
EXECUTE STATEMENT SET. I appreciate your concern.

I've checked PostgreSQL, MySQL, SQL Server, and Oracle, and found that
their EXPLAIN is designed for single queries. EXECUTE STATEMENT SET
appears
to be specific to Flink SQL.

Best,

On Mon, Apr 28, 2025 at 1:57 PM David Radley <david_rad...@uk.ibm.com>
wrote:

Hi Ramin,
Thanks for the Flip.

In the text you say
EXECUTE STATEMENT SET
BEGIN
    INSERT INTO `sales` SELECT ...;
    INSERT INTO `products` SELECT ...;
END;

Twice, I think you are intending the 2nd text to be different. Maybe
EXPLAIN STATEMENT SET

I am worried that in the SQL standard EXECUTE and EXPLAIN are at the
same
level when SQL parsing – so it would not be compliant SQL to allow
EXPLAIN
EXECUTE. Is there precedence for this in another implementation / SQL
reference?

Kind regards, David.


From: Ramin Gharib <rgha...@confluent.io> on behalf of Ramin Gharib
<rgha...@confluent.io.INVALID>
Date: Monday, 28 April 2025 at 12:04
To: dev@flink.apache.org <dev@flink.apache.org>
Subject: [EXTERNAL] [DISCUSS] FLIP-527 Support EXPLAIN EXECUTE
STATEMENT
SET Syntax in Flink SQL
Hi Flink Community,
​

I want to discuss FLIP-527: Support EXPLAIN EXECUTE STATEMENT SET
Syntax
in
Flink SQL.

This FLIP proposes to extend the EXPLAIN statement in Flink SQL to
support
the EXECUTE STATEMENT SET syntax. The goal is to provide users with a
way
to understand the execution plan of a batch of SQL statements before
they
are executed together. This will enhance debugging, optimization, and
overall understanding of how Flink processes a series of dependent
operations.
​

You can find the full proposal details on the Flink Wiki at:
​




https://cwiki.apache.org/confluence/display/FLINK/FLIP-527%3A+Support+%60EXPLAIN+EXECUTE+STATEMENT+SET%60+Syntax+in+Flink+SQL


​I'm eager to hear your thoughts, feedback, and potential concerns
regarding this proposal.

Thanks,


​Ramin Gharib

[image: Confluent] <https://www.confluent.io>

*Ramin Gharib *he/him/his

Senior Software Engineer

*Follow us: *[image: Blog]
<



https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
[image:
Twitter] <https://twitter.com/ConfluentInc>[image: LinkedIn]
<https://www.linkedin.com/company/confluent/>[image: Slack]
<https://slackpass.io/confluentcommunity>[image: YouTube]
<https://youtube.com/confluent>

[image: Try Confluent Cloud for Free]
<



https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic


Sent with Notion Mail <https://www.notion.so/product/mail>

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road,
Winchester, Hampshire SO21 2JN



--

[image: Confluent] <https://www.confluent.io>
Ramin Gharib he/him/his
Senior Software Engineer
Follow us: [image: Blog]
<


https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
[image:
Twitter] <https://twitter.com/ConfluentInc>[image: LinkedIn]
<https://www.linkedin.com/company/confluent/>[image: Slack]
<https://slackpass.io/confluentcommunity>[image: YouTube]
<https://youtube.com/confluent>

[image: Try Confluent Cloud for Free]
<


https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic


Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road,
Winchester, Hampshire SO21 2JN





Reply via email to