Pavel Pereslegin created IGNITE-22197:
-----------------------------------------

             Summary: Move DDL 'IF EXISTS` flag handling inside the catalog 
command
                 Key: IGNITE-22197
                 URL: https://issues.apache.org/jira/browse/IGNITE-22197
             Project: Ignite
          Issue Type: Improvement
          Components: sql
            Reporter: Pavel Pereslegin


Currently, the catalog command itself does not handle the 'IF EXISTS' 'IF NOT 
EXISTS' flags. We handle the exception thrown by the command and set the result 
to false if the flag was set. And this result (true/false) can be obtained by 
the user using {{AsyncResultSet#wasApplied}} method.

With the current approach, a problem may arise when processing a batch command.
For example
{code:sql}
CREATE TABLE IF NOT EXISTS Person...   -- command 1
CREATE TABLE IF NOT EXISTS City...        -- command 2
{code}
If the Person table exists, the batch will not be fully executed.

To address this we can move flag handling inside the command itself.
To keep "wasApplied" working, we can rework a bit {{CatalogManager#execute}} so 
that it returns not only the catalog version, but also a flag indicating that 
something was changed when this command was executed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to