[ 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)