Warum bekomme ich einen Fehler beim Einfügen von Zeilen mit Net :: Cassandra :: Easy und Cassandra 0.5X?

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

  •  21-09-2019
  •  | 
  •  

Frage

Bei Verwendung des Perl -Moduls Netz :: Cassandra :: Easy Zum Schnittstellen mit Cassandra verwende ich den folgenden Code, um Colums zu lesen col[123] Aus Reihen row[123] in der Säulenfamilie Standard1:

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']);

Dies funktioniert wie erwartet.

Wenn Sie jedoch versuchen, die Zeile einzufügen row1 mit ..

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

.. Ich erhalte die Fehlermeldung Can't use string ("0") as a SCALAR ref while "strict refs" in use at .../Net/GenThrift/Thrift/BinaryProtocol.pm line 376.

Was mache ich falsch?

War es hilfreich?

Lösung 2

Der Code funktioniert wie erwartet unter Cassandra 0.6.x, fällt jedoch unter Cassandra 0.5.x.

Es scheint, als ob Net::Cassandra::Easy Zieht nur auf Cassandra 0.6.x.

Upgrade auf Cassandra 0.6.x löst das Problem.

Andere Tipps

Es sieht aus wie ein Fehler in der Bibliothek:

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;
}

(aus Netz :: Genthrift :: Thrift :: BinaryProtocol)

Anscheinend wird dieses Sub von irgendwo in der Bibliothek angerufen, wo $value ist keine Variable, sondern ein konstanter Skalar. Ich würde den Fehler den Autoren melden.

Hmm, es sieht eher aus wie ein Perl -Bindungsfehler, wenn ich ausnahmslos für mich abwickelte.

Ich glaube, dass 0,6 es für Sie behebt, weil sich die Schnittstelle tatsächlich geändert hat, sodass 0,6 keine Sparsamkeitsausnahme mehr erhöht, aber der Fehler in Sparsamkeit bleibt bestehen. Ich habe einen Jira -Fall eröffnet, wir werden sehen, dass das Secondhand -Team darüber sagt:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top