schwartzmx / gremtune

Golang Gremlin Tinkerpop client with AWS Neptune compatibility
MIT License
26 stars 19 forks source link

Neptune bindings support #6

Closed sufiand closed 5 years ago

sufiand commented 5 years ago

the Readme says that the reason why this was forked from gremgo was to handle missing features in neptune like bindings. But I still see the method ExecuteWithBindings and it does not work as expected. The passed bindings do not get substituted in the executed query. So, how exactly is this different from gremgo?

schwartzmx commented 5 years ago

It was forked because Neptune does not (or did not when initially forked) support bindings and gremgo only supported executing with bindings. There's also been numerous other changes since the initial fork, especially involving the Response struct.

From the readme (emphasis mine)

Modifications were made to gremgo in order to "support" AWS Neptune's lack of Gremlin-specific features, like no support query bindings among others.

You can see this still listed here https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html

Variables Neptune does not support Gremlin variables and does not support the bindings property.

Also this originally was not intended to be a Neptune specific client (even though it can be inferred from the new name), so the ExecuteWithBindings function was born from the old Execute() (from gremgo) to allow users to still use bindings supported GraphDBs

sufiand commented 5 years ago

Fair enough and appreciate the response.

Given that neptune does not support bindings and this client is specifically for neptune, it would make sense to remove the method ExecuteWithBindings altogether to avoid such confusion.