[
https://issues.apache.org/jira/browse/GORA-419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14525435#comment-14525435
]
ASF GitHub Bot commented on GORA-419:
-------------------------------------
Github user renato2099 commented on the pull request:
https://github.com/apache/gora/pull/23#issuecomment-98393003
@gerhardgossen so you mean just to overwrite the value without checking if
it exists or not? I think this is also something that makes sense, but this
would still mean that you would be writing the whole map even when a single
value has been added. Thus, this means you would have to get the old map, add
the new kv pair and write the updated map. This is not so efficient but we
wouldn't loose previous values. Would you agree with this get-update-store
behaviour?
> AccumuloStore.put deletes entire row when updating map/array field
> ------------------------------------------------------------------
>
> Key: GORA-419
> URL: https://issues.apache.org/jira/browse/GORA-419
> Project: Apache Gora
> Issue Type: Bug
> Components: gora-accumulo
> Affects Versions: 0.5, 0.6
> Environment: Gora 0.5
> Accumulo 1.5.1
> Zookeeper 3.4.6
> Hadoop 1.2.1
> Reporter: Gerhard Gossen
> Priority: Critical
>
> In {{AccumuloStore.put(k, v)}} fields of type MAP or ARRAY are cleared first
> before they are set to the new value. This is done in the methods
> {{putMap}}/{{putArray}} using a call to {{deleteByQuery(q)}}. The name for
> fields to be deleted is taken from the current column. However,
> {{deleteByQuery}} tries to translate the field names of the query to column
> names again, which fails with a log message like
> {code}
> 2015-04-13 13:43:35.084 ERROR 16733 --- [ool-46-thread-1]
> o.a.gora.accumulo.store.AccumuloStore : Mapping not found for field: ol
> 2015-04-13 13:43:35.104 ERROR 16733 --- [ool-46-thread-1]
> o.a.gora.accumulo.store.AccumuloStore : Mapping not found for field: mk
> 2015-04-13 13:43:35.115 ERROR 16733 --- [ool-46-thread-1]
> o.a.gora.accumulo.store.AccumuloStore : Mapping not found for field: mtdt
> {code}
> As a result, the query is not restricted to any field and the *entire row is
> deleted*.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)