gremlin-rs icon indicating copy to clipboard operation
gremlin-rs copied to clipboard

MergeV, MergeE, & Option Steps

Open criminosis opened this issue 7 months ago • 3 comments

This PR does the following:

  • Changed property() step to key by Into<GValue>, this allows custom vertex ids to be assigned
    • Also updated property_many, property_with_cardinality, and property_many_with_cardinality
  • Added new steps: mergeV, mergeE, option
    • Added support for using option for mergeV & mergeE steps, see integration_traversal.rs for examples
    • Added support for using the to & from options for mergeE as well
  • Implemented T::id into a GKey to support injected map parameters for mergeV & mergeE
    • Also facilitates addV("some_label").properties(T::id, "string_or_integer_id_here")...
  • Added JG to docker compose environment for custom string vertex id tests
    • @wolf4ood the JG container doesn't participate in gremlin version matrix, so the custom vertex ids tests are being ran in each matrix's entry (and JG is ignoring the specified Tinkerpop version). Happy to make changes for how you'd think it'd be better to do. Thought about adding another feature flag for those tests, but figured it'd be good to get your thoughts first.
    • Added a feature to selectively run merge tests for TP versions != 3.5.6
      • Assumes != 3.5.6 will be a higher version. The merge steps don't exist in that family of Tinkerpop.
  • Added mergeV & mergeE to WRITE_OPERATORS in bytecode.rs
    • @wolf4ood this seems like an investigative call upon the bytecode so just stuck them in, lemme know if there's more to do.
  • Support choose step options with literals
  • Support g:Column via by() step
  • Reworked sideEffect() step implementation
  • Permit properties() step in an anonymous traversal

criminosis avatar Jul 13 '24 21:07 criminosis