Pourquoi ai-je une erreur lors de l'insertion des lignes avec Net :: Cassandra :: Simple et Cassandra 0,5x?

StackOverflow https://stackoverflow.com/questions/2488783

  •  21-09-2019
  •  | 
  •  

Question

Lorsque vous utilisez le module Perl Net :: Cassandra :: Facile pour l'interface avec Cassandra j'utilise le code suivant pour lire les lignes de col[123] colums row[123] dans la Standard1 colonne familiale:

my $cassandra = Net::Cassandra::Easy->new(keyspace => 'Keyspace1', server => 'localhost');
$cassandra->connect();
my $result = $cassandra->get(['row1', 'row2', 'row3'], family => 'Standard1', byname => ['col1', 'col2', 'col3']);

Cela fonctionne comme prévu.

Cependant, lorsque vous essayez d'insérer une ligne row1 avec ..

$result = $cassandra->mutate(['row1'], family => 'Standard1', insertions => { "col1" => "Value to set." });

.. Je reçois le message d'erreur Can't use string ("0") as a SCALAR ref while "strict refs" in use at .../Net/GenThrift/Thrift/BinaryProtocol.pm line 376.

Qu'est-ce que je fais mal?

Était-ce utile?

La solution 2

Le code fonctionne comme prévu sous Cassandra 0.6.x, mais échoue sous Cassandra 0.5.x.

Il semble que Net::Cassandra::Easy vise Cassandra 0.6.x seulement.

Mise à niveau vers Cassandra 0.6.x résout le problème.

Autres conseils

Il ressemble à un bug dans la bibliothèque:

sub readByte
{
    my $self  = shift;
    my $value = shift;

    my $data = $self->{trans}->readAll(1);
    my @arr = unpack('c', $data);
    $$value = $arr[0];    # <~ line 376
    return 1;
}

(de Net::GenThrift::Thrift::BinaryProtocol)

Il semble que sous est appelé à partir de quelque part dans la bibliothèque où $value est pas une variable, mais un scalaire constant. Je signaler le bug aux auteurs.

hmm, il ressemble plus à un bug de liaison Perl lors de la manipulation exception pour moi.

Je crois que 0,6 corrige ce problème pour vous parce que l'interface a bien changé, 0,6 ne soulève pas une exception Thrift plus, mais le bogue dans Thrift reste. J'ai ouvert un cas JIRA, nous verrons que l'équipe Thrift dit à ce sujet:

https://issues.apache.org/jira/browse/THRIFT-758

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top