You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Siddhi Mehta (Jira)" <ji...@apache.org> on 2020/02/06 23:44:00 UTC
[jira] [Commented] (PHOENIX-5673) The mutation state is silently
getting cleared on the execution of any DDL
[ https://issues.apache.org/jira/browse/PHOENIX-5673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17032023#comment-17032023 ]
Siddhi Mehta commented on PHOENIX-5673:
---------------------------------------
Looking at the code the mutation are cleared by connection.rollback() in org.apache.phoenix.schema.MetaDataClient.createTableInternal(CreateTableStatement, byte[][], PTable, String, ViewType, PDataType, byte[][], BitSet, boolean, IndexType, Date, Map<String, Object>, Map<String, Object>)
The same code path is invoke by createIndex also. I would assume the same issue happens on view creation also.
FYI [~sandeep.guggilam]
> The mutation state is silently getting cleared on the execution of any DDL
> --------------------------------------------------------------------------
>
> Key: PHOENIX-5673
> URL: https://issues.apache.org/jira/browse/PHOENIX-5673
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.15.0
> Reporter: Sandeep Guggilam
> Assignee: Siddhi Mehta
> Priority: Critical
> Labels: beginner, newbie
> Fix For: 4.16.0
>
>
> When we execute any DDL statement, the mutations state is rolled back silently without informing the user. It should probably throw an exception saying that the mutation state is not empty when executing any DDL. See the below example:
>
> Steps to reproduce:
> create table t1 (pk varchar not null primary key, mycol varchar)
> upsert into t1 (pk, mycol) values ('x','x');
> create table t2 (pk varchar not null primary key, mycol varchar)
> When we try to execute the above statements and do a conn.commit() at the end, it would silently rollback the upsert statement when we execute the second create statement and you wouldn't see the ('x', 'x') values in the first table. Instead it should probably throw an exception saying that the mutation state is not empty
--
This message was sent by Atlassian Jira
(v8.3.4#803005)