Neptune currently supports only OLTP type of graph traversal queries?
But from documentation:
Transactions Neptune opens a new transaction at the beginning of each Gremlin traversal and closes the transaction upon the successful completion of the traversal. The transaction is rolled back when there is an error.
Multiple statements separated by a semicolon (;) or a newline character (\n) are included in a single transaction. Every statement other than the last must end with a next() step to be executed. Only the final traversal data is returned.
Manual transaction logic using tx.commit() and tx.rollback() is not supported.
Multiple statements separated by semicolon or newline are executed in a single transaction. So, can you execute multiple queries per transaction? For example multiple .drop() queries in a single script?
g.V().has(id,'1').drop();
g.V().has(id,'2').drop();
By trying the above, only the last query is executed (only the vertex with id='2' is deleted).
But for adding vertices, it works:
g.addV('item').property(id,'3').next()";
g.addV('item').property(id,'4').next()";
Both vertices are added.
Is there any support for multiple delete queries in a single transaction?
Just a guess, but I think you might need to iterate()
your traversals, thus:
g.V().has(id,'1').drop().iterate();
g.V().has(id,'2').drop().iterate();
Given your example with addV()
and the behavior that your'e seeing with drop()
the last traversal is the only one that is auto-iterated, which is consistent with how Gremlin Server would typically process script requests. I'm guessing that Neptune will work in the same fashion.