The Perl Advent Calendar needs more articles for 2022. Submit your idea today!

NAME

Neo4j::Driver::SummaryCounters - Statement statistics

VERSION

version 0.19

SYNOPSIS

 use Neo4j::Driver;
 $driver = Neo4j::Driver->new->basic_auth(...);
 
 $transaction = $driver->session->begin_transaction;
 $transaction->{return_stats} = 1;
 $query = 'MATCH (n:Novel {name:"1984"}) SET n.writer = "Orwell"';
 $result = $transaction->run($query);
 
 $counters = $result->summary->counters;
 $database_modified = $counters->contains_updates;
 die "That didn't work out." unless $database_modified;

DESCRIPTION

Contains counters for various operations that a statement triggered.

ATTRIBUTES

Neo4j::Driver::SummaryCounters implements the following read-only attributes.

 my $constraints_added     = $counters->constraints_added;
 my $constraints_removed   = $counters->constraints_removed;
 my $contains_updates      = $counters->contains_updates;
 my $indexes_added         = $counters->indexes_added;
 my $indexes_removed       = $counters->indexes_removed;
 my $labels_added          = $counters->labels_added;
 my $labels_removed        = $counters->labels_removed;
 my $nodes_created         = $counters->nodes_created;
 my $nodes_deleted         = $counters->nodes_deleted;
 my $properties_set        = $counters->properties_set;
 my $relationships_created = $counters->relationships_created;
 my $relationships_deleted = $counters->relationships_deleted;

BUGS

These counters may not be useful for verifying that writing to the database was successful. For one thing, explicit transactions may later be rolled back, rendering these statistics outdated. For another, certain error conditions produce misleading statistics: It was observed that deleting a node that has relationships fails in a Cypher shell with an obscure error message, while it succeeds when executed over HTTP with this driver. However, the HTTP response then reports that the node was deleted, but that the relationship wasn't, which is obviously inconsistent. Not quite sure what is going on there. To verify that modifying the database was successful, it would therefore probably make more sense to run a MATCH query, tedious or not.

SEE ALSO

AUTHOR

Arne Johannessen <ajnn@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016-2021 by Arne Johannessen.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)