[ 
https://issues.apache.org/jira/browse/PHOENIX-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14323331#comment-14323331
 ] 

ASF GitHub Bot commented on PHOENIX-900:
----------------------------------------

Github user elilevine commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/37#discussion_r24777348
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java ---
    @@ -488,7 +490,55 @@ public void rollback(PhoenixConnection connection) 
throws SQLException {
             numRows = 0;
         }
         
    +    private Set<Integer> getOrderOfUncommittedStatements() {
    +           Set<Integer> result = newHashSet();
    +           for (Map<ImmutableBytesPtr, RowMutationState> rowMutations : 
mutations.values()) {
    +                   for (RowMutationState rowMutationState : 
rowMutations.values()) {
    +                           
result.addAll(rowMutationState.getOrderOfStatementsInConnection());
    +                   }
    +           }
    +           return result;
    +    }
    +    
         @Override
         public void close() throws SQLException {
         }
    +    
    +    public static class RowMutationState {
    +           private Map<PColumn,byte[]> columnValues;
    +           private Set<Integer> orderOfStatementsInConnection;
    +           
    +           public RowMutationState(@NotNull Map<PColumn,byte[]> 
columnValues, int orderOfStatementInConnection) {
    +                   Preconditions.checkNotNull(columnValues);
    +                   
    +                   this.columnValues = columnValues;
    +                   this.orderOfStatementsInConnection = 
Sets.newHashSet(orderOfStatementInConnection);
    +           }
    +           
    +           public RowMutationState(@NotNull Map<PColumn,byte[]> 
columnValues, @NotNull Set<Integer> orderOfStatementsInConnection) {
    +                   Preconditions.checkNotNull(columnValues);
    +                   
Preconditions.checkNotNull(orderOfStatementsInConnection);
    +                   
    +                   this.columnValues = columnValues;
    +                   this.orderOfStatementsInConnection = 
orderOfStatementsInConnection;
    +           }
    +           
    +           public Map<PColumn, byte[]> getColumnValues() {
    +                   return columnValues;
    --- End diff --
    
    Will fix formatting


> Partial results for mutations
> -----------------------------
>
>                 Key: PHOENIX-900
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-900
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 4.0.0
>            Reporter: Eli Levine
>            Assignee: Eli Levine
>         Attachments: PHOENIX-900.patch
>
>
> HBase provides a way to retrieve partial results of a batch operation: 
> http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#batch%28java.util.List,%20java.lang.Object[]%29
> Chatted with James about this offline:
> Yes, this could be included in the CommitException we throw 
> (MutationState:412). We already include the batches that have been 
> successfully committed to the HBase server in this exception. Would you be up 
> for adding this additional information? You'd want to surface this in a 
> Phoenix-y way in a method on CommitException, something like this: ResultSet 
> getPartialCommits(). You can easily create an in memory ResultSet using 
> MaterializedResultIterator plus the PhoenixResultSet constructor that accepts 
> this (just create a new empty PhoenixStatement with the PhoenixConnection for 
> the other arg).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to