-
Notifications
You must be signed in to change notification settings - Fork 36
Absolutely. neo4j-client is designed to provide the best experience when working with Neo4j from the command line.
Yes. neo4j-client will evaluate a cypher statement when the enter key is pressed after the terminating semicolon (;
) is present. If there is no semicolon (;
), then the enter key will start a new line.
Yes. neo4j-client provides a non-interactive (batch) mode that supports reading of input from a file (e.g. movies.cyp), specified using the --source file
argument, or streamed in via stdin. The results will be written to stdout, or to a file specified using --output file
. In non-interactive mode, the default format for results is CSV.
Yes. Simply use the standard cypher statements begin;
, commit;
or rollback;
. Use of nested transactions is possible only if supported by Neo4j server.
Yes, and no. libneo4j-client aims to provide all the basic underpinnings required for communicating with a neo4j server, but it doesn't try to provide a complete driver experience. For example, a complete driver would likely provide high-level APIs for transactions, wrapping around "BEGIN", "COMMIT" and "ROLLBACK" statements. libneo4j-client provides no such API.
It is anticipated that libneo4j-client will be of most benefit for implementing complete drivers in other languages (which can call native C libraries), and thus providing higher-level abstractions will be better done using the idioms and techniques of the target language.
Yes. All methods are re-entrant and there is no shared global state (aside from what OpenSSL has internally). Note, however, that the data structures are not synchronized: you can't share the same connection, session or result stream between multiple threads without external synchronization.
No, but you can add your own pooling. As libneo4j-client has no global state, it doesn't save and re-use connections. However, it is possible to provide your own connection factory (see neo4j_config_set_connection_factory(...)
and struct neo4j_connection_factory
to wrap the standard connection factory and thus re-use connections.
No, but you can add your own pooling. See neo4j_config_set_memory_allocator(...)
.