Perché ricevo un errore quando si inseriscono le righe con Net :: :: Cassandra facile e Cassandra 0.5x?

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

  •  21-09-2019
  •  | 
  •  

Domanda

Quando si utilizza il modulo di Perl Net :: :: Cassandra Facile per interfacciarsi con Cassandra io uso il seguente codice per leggere colonne col[123] da file row[123] nella colonna di Standard1-family:

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

Questo funziona come previsto.

Tuttavia, quando si cerca di inserire la riga row1 con ..

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

.. ricevo il messaggio di errore Can't use string ("0") as a SCALAR ref while "strict refs" in use at .../Net/GenThrift/Thrift/BinaryProtocol.pm line 376.

Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione 2

Il codice funziona come previsto sotto Cassandra 0.6.x, ma non riesce sotto Cassandra 0.5.x.

Sembra come se Net::Cassandra::Easy si rivolge solo Cassandra 0.6.x.

Aggiornamento a Cassandra 0.6.x risolve il problema.

Altri suggerimenti

Si presenta come un bug nella libreria:

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

(da Net::GenThrift::Thrift::BinaryProtocol)

A quanto pare che sotto viene chiamato da qualche parte nella libreria dove $value non è una variabile, ma uno scalare costante. Mi piacerebbe segnalo l'insetto agli autori.

hmm, sembra più simile a un insetto vincolante Perl durante la manipolazione di eccezione a me.

Credo che 0,6 correzioni per voi perché l'interfaccia è davvero cambiato, in modo da 0.6 non sta sollevando più un'eccezione parsimonia, ma il bug in parsimonia rimane. Ho aperto un caso JIRA, vedremo che squadra parsimonia dice a questo proposito:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top