diff --git a/dp3/database/database.py b/dp3/database/database.py index 35b17302..d6df921c 100644 --- a/dp3/database/database.py +++ b/dp3/database/database.py @@ -424,10 +424,13 @@ def insert_datapoints( with self._master_buffer_locks[etype]: if eid in self._master_buffers[etype]: for attr, push_dps in master_changes["pushes"].items(): - if attr in self._master_buffers[etype][eid]["pushes"]: - self._master_buffers[etype][eid]["pushes"][attr].extend(push_dps) - else: - self._master_buffers[etype][eid]["pushes"][attr] = push_dps + if "pushes" not in self._master_buffers[etype][eid]: + self._master_buffers[etype][eid]["pushes"] = {} + if attr not in self._master_buffers[etype][eid]["pushes"]: + self._master_buffers[etype][eid]["pushes"][attr] = [] + self._master_buffers[etype][eid]["pushes"][attr].extend(push_dps) + if "$set" not in self._master_buffers[etype][eid]: + self._master_buffers[etype][eid]["$set"] = {} self._master_buffers[etype][eid]["$set"].update(master_changes["$set"]) else: self._master_buffers[etype][eid] = master_changes