README.md in grumlin-1.0.0.rc1 vs README.md in grumlin-1.0.0.rc2
- old
+ new
@@ -146,12 +146,17 @@
- `drop_edge(id = nil, from: nil, to: nil, label: nil, start: g)`
- `drop_in_batches(traversal, batch_size: 10_000)`
and a few methods that emulate upserts:
- `upsert_vertex(label, id, create_properties: {}, update_properties: {}, on_failure: :retry, start: g, **params)`
+- `upsert_vertices(edges, batch_size: 100, on_failure: :retry, start: g, **params)`
- `upsert_edge(label, from:, to:, create_properties: {}, update_properties: {}, on_failure: :retry, start: g, **params)`
- `upsert_edges(edges, batch_size: 100, on_failure: :retry, start: g, **params)`
-- `upsert_vertices(edges, batch_size: 100, on_failure: :retry, start: g, **params)`
+
+**Note**: all upsert methods expect your provider has support for user supplied string ids for nodes and edges
+respectively. For edges and if `create_properties[T.id]` if nil, grumlin will generate a uuid-like id out of `from` and
+`to` vertex ids and edge's label to ensure uniqueness of the edge. If you manually provide an id, it's your
+responsibility to ensure it's uniquely identifies the edge using it's `from`, `to` and `label`.
All of them support 3 different modes for error handling: `:retry`, `:ignore` and `:raise`. Retry mode is implemented
with [retryable](https://github.com/nfedyashev/retryable). **params will be merged to the default config for upserts
and passed to `Retryable.retryable`. In case if you want to modify retryable behaviour you are to do so.